以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于报表打印代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=5429)

--  作者:yzsjaq
--  发布时间:2009/12/10 15:56:00
--  关于报表打印代码
我在设计报表打印代码时发现:doc.Preview() 和doc.Print()显示的效果不一样,前者显示的是设计所要达到的效果,而后者所显示的是缩的很小的效果,为什么,请高手帮助解决。
--  作者:mr725
--  发布时间:2009/12/10 17:29:00
--  
实际打印一下试一试,要不放个例子上来。
--  作者:菜鸟foxtable
--  发布时间:2009/12/10 18:13:00
--  
专业代码还未完善。。。
--  作者:yzsjaq
--  发布时间:2009/12/11 9:52:00
--  关于报表打印代码问题
两个打印效果不一样,如: 报表打印代码1: Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderTable() \'定义一个表格对象 doc.Body.Children.Add(rt) \'将表格对象加入到报表中 rt.Style.GridLines.All = New prt.LineDef \'将网格线类型设为默认类型 rt.Width = 150 \'表宽为150毫米 rt.Height = 150 \'表高为150毫米 rt.Rows.Count = 3 \'设置行数 rt.Cols.Count = 3 \'设置列数 doc.Preview() \'预览 报表打印代码2: Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderTable() \'定义一个表格对象 doc.Body.Children.Add(rt) \'将表格对象加入到报表中 rt.Style.GridLines.All = New prt.LineDef \'将网格线类型设为默认类型 rt.Width = 150 \'表宽为150毫米 rt.Height = 150 \'表高为150毫米 rt.Rows.Count = 3 \'设置行数 rt.Cols.Count = 3 \'设置列数 doc.Print()
--  作者:狐狸爸爸
--  发布时间:2009/12/11 10:02:00
--  
 

禁止自动旋转

打印报表的时候,系统默认会自动根据实际纸张的大小,判断是否需要旋转打印内容,以便更好地配合纸张。
如果不需要自动旋转打印内容,可以将AutoRotate属性设为False。

例如:

Dim doc As New PrintDoc
Dim
ra As New prt.RenderArea
doc.PageSetting.Width =
150
doc.PageSetting.Height =
80
doc.AutoRotate =
False \'禁止自动旋转打印内容
ra.Width =
"Parent.Width"
ra.Height =
"Parent.Height"
ra.Style.Borders.All = New prt.Linedef(
5
, Color.Red)
doc.Body.Children.Add(ra)
doc.Print()

你可以删除下面这一行代码,重新打印一张,看看结果有什么不同:

doc.AutoRotate = False \'禁止自动旋转打印内容


--  作者:yzsjaq
--  发布时间:2009/12/11 14:39:00
--  
删除doc.AutoRotate = False 后,还是效果不一样,doc.Preview() 大于doc.Print()。您不妨试试。
[此贴子已经被作者于2009-12-11 14:42:22编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/12/11 15:19:00
--  
你是不是用的旧版本啊?

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderTable() \'定义一个表格对象
doc.Body.Children.Add(rt) \'将表格对象加入到报表中
rt.Style.GridLines.All = New prt.LineDef \'将网格线类型设为默认类型
rt.Width = 150 \'表宽为150毫米
rt.Height = 150 \'表高为150毫米
rt.Rows.Count = 3 \'设置行数
rt.Cols.Count = 3 \'设置列数
doc.AutoRotate = False
doc.Print()
--  作者:yzsjaq
--  发布时间:2009/12/11 15:34:00
--  
用的是旧版本,新版本可以解决此问题吗?
[此贴子已经被作者于2009-12-11 16:02:21编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/12/11 16:10:00
--  
先升级再说。