以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]窗体连续打印问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65482) |
||||
-- 作者:bigeng -- 发布时间:2015/3/17 10:26:00 -- [求助]窗体连续打印问题? 甜版,我做了一个凭证打印窗体,按要求筛选,然后打印,打印按钮代码如下: If Filter > "" Then DataTables("记账凭证_主表").loadFilter = Filter DataTables("记账凭证_主表").load() Dim doc As PrintDoc = Forms("记账凭证").GernatePrintDoc() doc.Preview End If 但单击后预览显示空页,记账凭证窗体和·凭证打印窗体是分着的,不知错在哪里了·。
|
||||
-- 作者:有点甜 -- 发布时间:2015/3/17 10:45:00 -- 请注意一点,窗口的打印,所有的label、textbox控件,全部要放在窗口上,但,不能放在容器里面,容器包括 panel、picturebox等等,不然就是空白。
打印容器里面内容参考 http://www.foxtable.com/help/topics/2437.htm
|
||||
-- 作者:bigeng -- 发布时间:2015/3/17 16:03:00 -- doc.preview 在连续打印的时候,预览一张打一张,预览一张打一张。 如何实现第一张预览,设置打印机等,后面的直接就打印? 刚才试了一下: doc.preview doc.print 第一张预览设置好打印机以后打印出来没有问题,打印第二张就不按第一张设置的·打印机打印了。
|
||||
-- 作者:有点甜 -- 发布时间:2015/3/17 16:06:00 -- 判断,比如
If 数字 = 1 Then Doc.Preview Doc.Print Else Doc.Print End If |
||||
-- 作者:bigeng -- 发布时间: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 |
||||
-- 作者:有点甜 -- 发布时间:2015/3/17 16:12:00 -- 你这段代码根本就不是连续打印啊。
请参考4楼,判断是打几次打印 |
||||
-- 作者:bigeng -- 发布时间:2015/3/17 16:16:00 -- 我用的是窗体打印凭证,按凭证日期和凭证号筛选出来,然后一张一张打印。 |
||||
-- 作者:有点甜 -- 发布时间:2015/3/17 16:20:00 -- 你这段代码,只会打印一张啊。
上传例子。 |
||||
-- 作者:bigeng -- 发布时间:2015/3/18 17:42:00 -- 甜版,我这折腾好几天也没有弄出来,您给看一下吧,原来弄的代码许多
都删了。主要是连续打印凭证问题。 |
||||
-- 作者:有点甜 -- 发布时间:2015/3/18 18:00:00 --
Dim Filter As String With e.Form.Controls("textbox2") With e.Form.Controls("textbox3") For j As Integer= 0 To Tables("记账凭证_主表").Rows.count-1 |