Foxtable(狐表)用户栏目专家坐堂 → 用专业报表设计的piao据连续打印,怎么打印纸吐纸不太对呢?


  共有5192人关注过本帖平板打印复制链接

主题:用专业报表设计的piao据连续打印,怎么打印纸吐纸不太对呢?

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


加好友 发短信
等级:五尾狐 帖子:1085 积分:8220 威望:0 精华:4 注册:2012/3/31 18:08:00
用专业报表设计的piao据连续打印,怎么打印纸吐纸不太对呢?  发帖心情 Post By:2014/1/6 15:03:00 [只看该作者]

如题用专业报表设计的piao据连续打印,通过 代码设置了纸张的大小,如果从针式 打印机前面放纸,打一张放一张没有问题,如果从后面连续放纸,按理说打完第一纸再打第二张的时候位置会自动根据自定义纸张的大小自行调整吐纸位置,但现在打完第一张,吐很长一段纸,不知是代码的问题还是设置的问题?请大神指教。。。


 Dim Doc As new PrintDoc
    
    Dim pr As DataRow = DataTables("lsconf").Find("f_vkey = 'PRinter'") '打印机
    If pr.IsNull("f_val")
        MessageBox.Show("未设置默认打印机,请在系统参数中设置默认打印机!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Return
    Else
        Doc.PrinterName = pr("f_val") '设置默认打印机
    End If
    Dim dyzz As DataRow= DataTables("print_conf").find("F_num like '01%' and F_name='zzdx'") '打印纸张
    Dim ztpy As DataRow= DataTables("print_conf").find("F_num like '01%' and F_name='ztpyz'") ' 整体偏移
    Dim mxhg As DataRow = DataTables("print_conf").find("F_num like '01%' and F_name='SYGD'")  '明细行高度
    Dim pyz As Integer = val(ztpy("F_X"))
    Dim pys As Integer = val(ztpy("F_Y"))
    Doc.PageSetting.Width = val(dyzz("f_X")) ‘从数据库取纸张参数。
    Doc.PageSetting.Height = val(dyzz("f_Y"))
    doc.PageSetting.Landscape = True 
    Doc.PageSetting.LeftMargin=1
    Doc.PageSetting.BottomMargin =1
    Doc.PageSetting.TopMargin=1
    Doc.PageSetting.LeftMargin =1
    doc.AutoRotate = False
    Dim zbs As List(of DataRow)= DataTables("print_conf").Select("F_num like '01%'") '打印参数表
    For Each zb As DataRow In zbs
        Select Case zb("f_name")
            Case "JKR"
                Dim jkr As new prt.RenderText
                If zb.IsNull("F_P") OrElse   zb("F_P") = "1" '如果为空的话是必打项目,如果是有数  再判断是0或者1
                    jkr.Text = dr("交款人")
                    jkr.Style.FontSize =11
                    jkr.X = val(zb("F_X")) + pyz
                    jkr.y = val(zb("F_Y")) + pys
                    Doc.Body.Children.Add(jkr)
                End If
            此处为取数据库数据代码。。略
            Case "JE"
                Dim n As Integer = 0
                For Each dc As DataRow In dcs
                    Dim JE As new prt.RenderText
                    If zb.IsNull("F_P") OrElse zb("F_P") = "1"
                        JE.Text =Format(dc("金额"),"#,###.00")
                        je.Style.TextAlignHorz = prt.AlignHorzEnum.Justify
                        JE.X= val(zb("F_X"))+ pyz
                        JE.y = val(zb("F_Y"))+ pys + val(mxhg("F_Y"))*n
                        Doc.Body.Children.Add(JE)
                        n=n+1
                    End If
                Next
                
        End Select
    Next
    Dim dp As DataRow = DataTables("lsconf").Find("f_vkey = 'direct_print'")
    If dp("f_VAL") ="Y"
        Doc.Print
    Else
        Doc.Preview()
    End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.foxdb
密码:aaaaaa

[此贴子已经被作者于2014-1-20 17:47:49编辑过]

 回到顶部