以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]专业报表多表连续打印问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=40832)
|
-- 作者:hzcaqjf
-- 发布时间:2013/10/1 10:44:00
-- [求助]专业报表多表连续打印问题
在附件中,想达到这样的效果:选取多行时,如果支票类型为现金支票,则打印现金支票(预览1); 如果支票类型为转账支票,则打印转账支票(预览2),并继续打印进账单(预览3) .........
|
-- 作者:有点甜
-- 发布时间:2013/10/1 11:42:00
--
加一句代码就行了
Dim doc As New PrintDoc \'定义一个报表 Dim rx As prt.RenderText \'定义一个文本对象 Dim CurRow As Row = Tables("支票").Current Dim tbl As Table = Tables("支票") For i As Integer = tbl.TopRow To tbl.BottomRow If currow("支票类型") = "现金支票" 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("支票类型") = "转账支票" 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
-- 发布时间:2013/10/1 12:16:00
--
有点甜老师:
加了一句代码"doc = new PrintDoc"之后,打印任意一行,没有问题了.
但是,选定多行(比喻3行),按连续打印之后,还是出现错误提示.
此主题相关图片如下:360截图2.jpg
有空的时候,请指正.
|
-- 作者:有点甜
-- 发布时间:2013/10/1 12:22:00
--
多行的话,你把doc定义在每一个需要打印设置的前面。也就是把下面的代码写在循环里。
Dim doc As New PrintDoc \'定义一个报表
|
-- 作者:hzcaqjf
-- 发布时间:2013/10/1 14:19:00
--
多谢老师指点,问题已解决.
|