Foxtable(狐表)用户栏目专家坐堂 → 关于报表打印代码


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

主题:关于报表打印代码

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


加好友 发短信
等级:婴狐 帖子:6 积分:112 威望:0 精华:0 注册:2009/12/9 9:55:00
关于报表打印代码  发帖心情 Post By:2009/12/10 15:56:00 [只看该作者]

我在设计报表打印代码时发现:doc.Preview() 和doc.Print()显示的效果不一样,前者显示的是设计所要达到的效果,而后者所显示的是缩的很小的效果,为什么,请高手帮助解决。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/12/10 17:29:00 [只看该作者]

实际打印一下试一试,要不放个例子上来。

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/12/10 18:13:00 [只看该作者]

专业代码还未完善。。。

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


加好友 发短信
等级:婴狐 帖子:6 积分:112 威望:0 精华:0 注册:2009/12/9 9:55:00
关于报表打印代码问题  发帖心情 Post By: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()

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:6 积分:112 威望:0 精华:0 注册:2009/12/9 9:55:00
  发帖心情 Post By:2009/12/11 14:39:00 [只看该作者]

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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:6 积分:112 威望:0 精华:0 注册:2009/12/9 9:55:00
  发帖心情 Post By:2009/12/11 15:34:00 [只看该作者]

用的是旧版本,新版本可以解决此问题吗?
[此贴子已经被作者于2009-12-11 16:02:21编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/12/11 16:10:00 [只看该作者]

先升级再说。

 回到顶部