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


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

主题:[求助]窗体连续打印问题?

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


加好友 发短信
等级:四尾狐 帖子:852 积分:5875 威望:0 精华:0 注册:2014/5/20 17:56:00
[求助]窗体连续打印问题?  发帖心情 Post By:2015/3/17 10:26:00 [只看该作者]

甜版,我做了一个凭证打印窗体,按要求筛选,然后打印,打印按钮代码如下:
If Filter > "" Then
    DataTables("记账凭证_主表").loadFilter = Filter
    DataTables("记账凭证_主表").load()
    Dim doc As PrintDoc = Forms("记账凭证").GernatePrintDoc()
    doc.Preview
End If

但单击后预览显示空页,记账凭证窗体和·凭证打印窗体是分着的,不知错在哪里了·。

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


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

请注意一点,窗口的打印,所有的label、textbox控件,全部要放在窗口上,但,不能放在容器里面,容器包括 panel、picturebox等等,不然就是空白。

 

打印容器里面内容参考 http://www.foxtable.com/help/topics/2437.htm

 


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


加好友 发短信
等级:四尾狐 帖子:852 积分:5875 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2015/3/17 16:03:00 [只看该作者]

doc.preview
在连续打印的时候,预览一张打一张,预览一张打一张。
如何实现第一张预览,设置打印机等,后面的直接就打印?
刚才试了一下:
doc.preview
doc.print
第一张预览设置好打印机以后打印出来没有问题,打印第二张就不按第一张设置的·打印机打印了。

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


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

 判断,比如

 

If 数字 = 1 Then

    Doc.Preview

    Doc.Print

Else

    Doc.Print

End If


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


加好友 发短信
等级:四尾狐 帖子:852 积分:5875 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2015/3/17 16:09:00 [只看该作者]

甜版,是不是我的代码有问题:
If Filter > "" Then
    DataTables("记账凭证_主表").loadFilter = Filter
    DataTables("记账凭证_主表").load()
    Dim doc As PrintDoc = e.Form.GernatePrintDoc()
    Dim d As Date
    For Each c As object In Doc.Body.Children
        If c.Gettype.Name Like "*Table*" Then
            Dim t As prt.RenderTable = c
            t.Rows(0).Height = 10
            t.Rows(0).Style.BackColor = Color.white
            t.Rows(0).Style.Font = New Font("宋体", 12, FontStyle.Bold) '设置字体
            For i As Integer = 0 To t.Cols.Count - 1
                t.Cells(0,i).Style.TextAlignHorz = prt.AlignHorzEnum.Center
            Next
        Else If c.Gettype.name Like "*Text*" AndAlso Date.TryParse(c.text,d) Then
            c.text = Format(cdate(c.text), "yyyy年MM月dd日")
        End If
    Next
    doc.Preview
    doc.print
End If


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


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

你这段代码根本就不是连续打印啊。

 

请参考4楼,判断是打几次打印


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


加好友 发短信
等级:四尾狐 帖子:852 积分:5875 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2015/3/17 16:16:00 [只看该作者]

我用的是窗体打印凭证,按凭证日期和凭证号筛选出来,然后一张一张打印。

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


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

 你这段代码,只会打印一张啊。

 

 上传例子。


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


加好友 发短信
等级:四尾狐 帖子:852 积分:5875 威望:0 精华:0 注册:2014/5/20 17:56:00
  发帖心情 Post By:2015/3/18 17:42:00 [只看该作者]

甜版,我这折腾好几天也没有弄出来,您给看一下吧,原来弄的代码许多
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.rar

都删了。主要是连续打印凭证问题。

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


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

 

Dim Filter As String

With e.Form.Controls("textbox2")
    If .Value IsNot Nothing Then
        Filter = "凭证期间>= #" & .Value & "#"
    End If
End With
With e.Form.Controls("textbox5")
    If .Value IsNot Nothing Then
        Filter = "凭证期间<= #" & .Value & "#"
    End If
End With

With e.Form.Controls("textbox3")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "凭证号>= " & .Value & ""
    End If
End With
With e.Form.Controls("textbox4")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "凭证号 <= " & .Value & ""
    End If
End With
msgbox(filter)
If Filter > "" Then
    DataTables("记账凭证_主表").loadFilter = Filter
    DataTables("记账凭证_主表").load()
End If

For j As Integer= 0 To Tables("记账凭证_主表").Rows.count-1
    Tables("记账凭证_主表").Position = j
    Dim doc As PrintDoc = e.Form.GernatePrintDoc()
    Dim d As Date
    For Each c As object In Doc.Body.Children
        If c.Gettype.Name Like "*Table*" Then
            Dim t As prt.RenderTable = c
            t.Rows(0).Height = 10
            t.Rows(0).Style.BackColor = Color.white
            t.Rows(0).Style.Font = New Font("宋体", 12, FontStyle.Bold) '设置字体
            For i As Integer = 0 To t.Cols.Count - 1
                t.Cells(0,i).Style.TextAlignHorz = prt.AlignHorzEnum.Center
            Next
        Else If c.Gettype.name Like "*Text*" AndAlso Date.TryParse(c.text,d) Then
            c.text = Format(cdate(c.text), "yyyy年MM月dd日")
        End If
    Next
    If j=0 Then
        doc.Preview()
        'doc.print
    Else
        'doc.print
    End If
Next


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