Foxtable(狐表)用户栏目专家坐堂 → 打印报表问题


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

主题:打印报表问题

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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
打印报表问题  发帖心情 Post By:2016/2/23 17:33:00 [只看该作者]

以下代码:打印当前表、选定行的WORD格式报表
With Tables("XXXX")

    For i As Integer = .TopPosition To .BottomPosition     '选定行

        CurrentTable.Position = i

        Dim dr  = CurrentTable.Rows(i)

        Dim xm = dr("姓名")

        Dim fl As String = ProjectPath & "Reports\"  & xm & ".doc"

        Dim tm As String  = ProjectPath & "Attachments\.doc" '指定模板文件

        Dim wrt As New WordReport(Tables("XXXX"),tm,fl) '定义一个WordReport

        wrt.Build() '生成报表

        wrt.Quit() '显示报表

    Next

    MessageBox.Show("文件已生成")

End With


问题:

当选定一行、多行时都没有问题

但是当选定所有行时,在第一个循环时 运行到 wrt.Build() 时候很长,而且经常出错。

而将循环起始从第一行调到第二行,则没有这种情况,即将其中的两句改为:

        CurrentTable.Position = i+1

        Dim dr  = CurrentTable.Rows(i+1)


请高手指点,是什么原因啊?


[此贴子已经被作者于2016/2/23 17:34:23编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/23 17:46:00 [只看该作者]

试试这样

 

With Tables("XXXX")
    For i As Integer = .TopPosition To .BottomPosition     '选定行
       
        Dim dr As Row = .Rows(i)
       
        Dim xm = dr("姓名")
       
        Dim fl As String = ProjectPath & "Reports\"  & xm & ".doc"
       
        Dim tm As String  = ProjectPath & "Attachments\表.doc" '指定模板文件
       
        Dim wrt As New WordReport(Tables("XXXX"),tm,fl) '定义一个WordReport
       
        wrt.BuildOne(dr) '生成报表
       
        wrt.Quit() '显示报表
       
    Next
   
    MessageBox.Show("文件已生成")
   
End With


 回到顶部