Foxtable(狐表)用户栏目专家坐堂 → printdoc 如何写到自定义函数


  共有2693人关注过本帖树形打印复制链接

主题:printdoc 如何写到自定义函数

帅哥哟,离线,有人找我吗?
有点蓝
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/11 22:46:00 [只看该作者]

这个没有办法。除非新建一个项目专门做打印

 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2020/10/11 22:46:00 [只看该作者]

上在调用例子写漏了
Functions.AsyncExecute("table1",r,dr,ct,doc)
doc的参数没办法正常传递

 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2020/10/11 22:48:00 [只看该作者]

你意思是重新做一个打印项目来负责打印的任务?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/11 23:20:00 [只看该作者]

都说了专业报表不支持异步。另外表格也不支持异步:http://www.foxtable.com/mobilehelp/topics/277.htm

是的,重新做一个打印项目,专门用来打印

 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2020/10/12 0:39:00 [只看该作者]

刚刚那个是手工打上去的打错了,打成异步函数了!

Functions.Execute("table1",r,dr,ct,doc)

但是DOC这个参数还是无法正确传递
仍然是没有调用到自定义函数中的DOC参数

Dim rs As Row = Tables("Mainsale").Current
Dim Rows As List(Of DataRow)
Rows = Tables("Mainsale").Current.DataRow.GetChildRows("Detailesale")
Dim ct As Integer = Tables("Mainsale").Current("qtytotal")
Dim doc As New PrintDoc() '定义一个报表
Rows = Tables("Mainsale").Current.DataRow.GetChildRows("Detailesale")
For Each r As DataRow In Rows
    For i1 As Integer = 1 To r("Qty")
        Dim dr As DataRow = DataTables("label").Find("item = '"& r("Item") &"'")   'tbl.compute("Sum(数量)")
        If dr IsNot Nothing Then
            If dr("监造商") = Nothing Then
                Functions.Execute("table1",r,dr,ct,doc)
                
            End If
        End If
    Next
Next

Doc.PrinterName = "Xprinter XP-DT426B"
DoC.Print()

[此贴子已经被作者于2020/10/12 0:39:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/12 8:32:00 [只看该作者]

我测试没有问题,请上传实例说明

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2020/10/12 9:54:00 [只看该作者]

你的自定义函数是这样写的?
Dim doc As PrintDoc = args(0) '定义一个报表

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/12 10:08:00 [只看该作者]

Dim doc As PrintDoc = args(0) '定义一个报表
Dim rt As New prt.RenderTable() '定义一个表格对象
doc.Body.Children.Add(rt) '将表格对象加入到报表中
rt.Style.GridLines.All = New prt.Linedef(Color.DarkGray) '将表格的颜色设为深灰色
rt.Rows.Count = 3 '设置行数
rt.Cols.Count = 3 '设置列数
rt.Width = 150 '设置表格的宽度
rt.Height = 150 '设置表格的高度
rt.Cells(1, 2).Style.BackColor = Color.Crimson
rt.Cells(0, 1).Style.BackColor = Color.BlueViolet

 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2020/10/12 10:09:00 [只看该作者]

好的,我再测试一下

 回到顶部
帅哥哟,离线,有人找我吗?
xietan417
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:721 积分:6391 威望:0 精华:0 注册:2011/6/26 11:45:00
  发帖心情 Post By:2020/10/12 10:16:00 [只看该作者]

测试没有问题,再问一个问题

以下代码是甜版以前的帖子这个多线程方案可行吗?我测试了一下,好像也不能多线程处理啊!
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=113066

使用多线程处理,比如

 

全局代码

 

Public Sub thread_sub1(ByVal obj As Object)
    functions. Execute("多线程操作", obj)
End Sub

 

内部函数(多线程操作)

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(args(0))
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
'App.Visible = True
'Ws.PrintPreview
ws.printout
App.Quit

 

调用代码

 

Dim nthread As New System.Threading.Thread(AddressOf thread_sub1)
nthread.start("d:\test.xls")



 回到顶部
总数 22 上一页 1 2 3 下一页