Foxtable(狐表)用户栏目专家坐堂 → [求助]专业报表多表连续打印问题


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

主题:[求助]专业报表多表连续打印问题

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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
[求助]专业报表多表连续打印问题  发帖心情 Post By:2013/10/1 10:44:00 [只看该作者]

在附件中,想达到这样的效果:
选取多行时,如果支piao类型为现金支piao,则打印现金支piao(预览1);
               如果支piao类型为转账支piao,则打印转账支piao(预览2),并继续打印进账单(预览3)
               .........
希望改正错误代码,多谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目12.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/1 11:42:00 [只看该作者]

 加一句代码就行了

 

Dim doc As New PrintDoc '定义一个报表
Dim rx As prt.RenderText '定义一个文本对象
Dim CurRow As Row = Tables("支piao").Current
Dim tbl As Table = Tables("支piao")
For i As Integer = tbl.TopRow To tbl.BottomRow
    If currow("支piao类型") = "现金支piao"  Then   
        doc.PageSetting.Width = 230 '纸张宽度为230毫米
        doc.PageSetting.Height = 80 '纸张高度为100毫米
        Doc.PageSetting.LeftMargin = 10
        Doc.PageSetting.TopMargin = 10
        Doc.PageSetting.RightMargin = 10
        Doc.PageSetting.BottomMargin = 10
        doc.AutoRotate = False
        rx = new prt.RenderText
        rx.Text = CUNum(CurRow("日期").year)
        Dim dr1 As DataRow = DataTables("调整").DataRows(0)
        Dim dy1 As Integer = dr1("左")
        Dim du1 As Integer = dr1("上")
        rx.x = dy1
        rx.y = du1
        doc.body.Children.Add(rx)
        Doc.Preview() '预览报表1
   
   
    ElseIf currow("支piao类型") = "转账支piao" Then
        doc.PageSetting.Width = 230 '纸张宽度为230毫米
        doc.PageSetting.Height = 180 '纸张高度为100毫米
        Doc.PageSetting.LeftMargin = 10
        Doc.PageSetting.TopMargin = 10
        Doc.PageSetting.RightMargin = 10
        Doc.PageSetting.BottomMargin = 10
        doc.AutoRotate = False
        rx = new prt.RenderText
        rx.Text = CUNum(CurRow("日期").year)
        Dim dr1 As DataRow = DataTables("调整").DataRows(0)
        Dim dy1 As Integer = dr1("左")
        Dim du1 As Integer = dr1("上")
        rx.x = dy1
        rx.y = du1
        doc.body.Children.Add(rx)
       doc.Preview() '预览报表2

 

        doc = new PrintDoc
        doc.PageSetting.Width = 200 '纸张宽度为200毫米
        doc.PageSetting.Height = 150 '纸张高度为150毫米
        Doc.PageSetting.LeftMargin = 10
        Doc.PageSetting.TopMargin = 10
        Doc.PageSetting.RightMargin = 10
        Doc.PageSetting.BottomMargin = 10
        doc.AutoRotate = False
        rx = new prt.RenderText
        rx.Text = CurRow("日期").year
        Dim dr18 As DataRow = DataTables("调整").DataRows(0)
        Dim dy18 As Integer = dr18("左")
        Dim du18 As Integer = dr18("上")
        rx.x = dy18
        rx.y = du18
        doc.body.Children.Add(rx)
        doc.Preview() '预览报表3
    End If
Next


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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2013/10/1 12:16:00 [只看该作者]

有点甜老师:

加了一句代码"doc = new PrintDoc"之后,打印任意一行,没有问题了.

但是,选定多行(比喻3行),按连续打印之后,还是出现错误提示.


图片点击可在新窗口打开查看此主题相关图片如下:360截图2.jpg
图片点击可在新窗口打开查看

有空的时候,请指正.


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/1 12:22:00 [只看该作者]

 多行的话,你把doc定义在每一个需要打印设置的前面。也就是把下面的代码写在循环里。

 

Dim doc As New PrintDoc '定义一个报表


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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2013/10/1 14:19:00 [只看该作者]

多谢老师指点,问题已解决.

 回到顶部