社区
Delphi
帖子详情
如何直接打印DBGRID中的数据,不通过其它报表控件.
cnsolonet
2003-10-16 09:09:35
如何直接打印DBGRID中的数据,不通过其它报表控件.
...全文
50
4
打赏
收藏
如何直接打印DBGRID中的数据,不通过其它报表控件.
如何直接打印DBGRID中的数据,不通过其它报表控件.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yaoyongchao
2003-10-17
打赏
举报
回复
通过Printer可以打印,但我还没解决画表格问题
http://expert.csdn.net/Expert/topic/2234/2234113.xml?temp=.2517969
cnsolonet
2003-10-16
打赏
举报
回复
谢谢你
hthunter(核桃) (
hthunter
2003-10-16
打赏
举报
回复
不用其它控件恐怕不好实现,有一套EhLib控件,里面包含一个叫DBGridEh的控件,该控件就是直接在DBGrid的基础上扩展出来的,基本上所有的属性和方法都跟DBGrid一样,但是多了打印数据的功能(还有一些外观设置方面的属性),用来替换DBGrid不需要多大的工作量,又可以很简单的实现你要的打印功能。
sixgj
2003-10-16
打赏
举报
回复
昏,无法。
表格
打印
控件
,轻松做
报表
(可
打印
datasource,
db
grid
,string
reprint 使用说明
直接
从datasource,
db
grid
,string
grid
导入
数据
, 只需简单设置,不用手工制作,即可生成您需要的
报表
,具有预览功能。即可自定义纸张,又可适应
打印
机默认纸张。各种
打印
设置,功能更强大。 一 、
控件
属性: 1、colstitle 设置
报表
的列标题属性 (1)alignment 列标题对齐方式。 (2)font 列标题字体 (3)print 设置是否
打印
列标题 (4)rowspace 列标题行的高度 2、datasource 选择要
打印
的datasource 3、
db
grid
选择要
打印
的
db
grid
4、string
grid
选择要
打印
的string
grid
5、detail 设置要
打印
的明细
数据
属性 (1)arrange 设置明细字段排列方向 Horizontal 横向
打印
(默认的一般
打印
) Vertical 竖向
打印
(字段竖向排列适合
打印
字段内容较长的
报表
如“会议纪录”) (2)aotureturn
打印
明细字段时,如果字段超过列的宽度是否允许自动换行 (3)colsline 设置竖线属性引用tpen类 (4)footer 设置明细尾 (5)frame 设置明细边框属性引用tpen类 (6)head 设置明细头同footer (7)rowsline 设置横线属性引用tpen类 (8)rowspace 设置明细行的高度 (9)top 明细与标题的距离 6、page 设置纸张的上下左右边距 7、pagefooter 设置页脚同明细尾 8、pageheader 设置页眉同页脚 9、printobject 选择要
打印
的对象 (datasource 、
db
grid
、 string
grid
) 10、title 设置标题类页眉、页脚 二 、
控件
方法: (1) preview 预览 (2) print
打印
(3) SaveToFile() 保存为
报表
文件 (4) SaveToStream() 保存为流(然后就可把整个
报表
存到
数据
库了很方便哦! ~_~) (5) PrintFile()
打印
报表
文件 (6) PrintStream()
打印
流(流的
数据
库存取就不用多说了吧) (7) PreviewFile() 预览文件 (8) PreviewStream() 预览流 (9) OptionToStream()
报表
的属性保存为流 (10) OptionFromStream() 从流
中
得到
报表
属性 三、
控件
事件: AfterPrint
打印
后 BeforePrint
打印
前 (本来很多事件,但没有预览,后来加上预览以及一些方法后实现很困难就去掉了!) 四、注意事项 (1) text 属性,输入“¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;”
打印
页码值,如果想
打印
页码可输入“第¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;页” 输入“¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RecordCount¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;”
打印
记录数 (2) 不同的
打印
机,
打印
和预览效果可能有一点点不同(保证
数据
打印
完全正确一致)。本人用一台针式和一台激光
打印
机做测试,开始差别较大后经过调试基本一致,不知其他
打印
机如何。 就这些个吧基本满足了我的软件开发需要,解决了很多问题,关键是做
报表
省了很大力气,当然了很复杂的
报表
还是要其它
报表
控件
来解决。如果有其他问题或好的建议可与我联系。 程序设计:吴进昊
打印
软件(
打印
datasource,
db
grid
,string
grid
)
reprint 使用说明 本人长期使用delphi做
数据
库的开发,
报表
控件
使用Quickrpt,在
打印
上经常遇到一些问题,于是自己经常编写一部分
打印
的程序,经过总结开发了这个
控件
。 本
控件
可
打印
datasource,
db
grid
,string
grid
. 一 、
控件
属性: 1、colstitle 设置
报表
的列标题属性 (1)alignment 列标题对齐方式。 (2)font 列标题字体 (3)print 设置是否
打印
列标题 (4)rowspace 列标题行的高度 2、datasource 选择要
打印
的datasource 3、
db
grid
选择要
打印
的
db
grid
4、string
grid
选择要
打印
的string
grid
5、detail 设置要
打印
的明细
数据
属性 (1)arrange 设置明细字段排列方向 Horizontal 横向
打印
(默认的一般
打印
) Vertical 竖向
打印
(字段竖向排列适合
打印
字段内容较长的
报表
如“会议纪录”) (2)aotureturn
打印
明细字段时,如果字段超过列的宽度是否允许自动换行 (3)colsline 设置竖线属性引用tpen类 (4)footer 设置明细尾 (5)frame 设置明细边框属性引用tpen类 (6)head 设置明细头同footer (7)rowsline 设置横线属性引用tpen类 (8)rowspace 设置明细行的高度 (9)top 明细与标题的距离 6、page 设置纸张的上下左右边距 7、pagefooter 设置页脚同明细尾 8、pageheader 设置页眉同页脚 9、printobject 选择要
打印
的对象 (datasource 、
db
grid
、 string
grid
) 10、title 设置标题类页眉、页脚 二 、
控件
方法: (1) preview 预览 (2) print
打印
(3) SaveToFile() 保存为
报表
文件 (4) SaveToStream() 保存为流(然后就可把整个
报表
存到
数据
库了很方便哦! ~_~) (5) PrintFile()
打印
报表
文件 (6) PrintStream()
打印
流(流的
数据
库存取就不用多说了吧) (7) PreviewFile() 预览文件 (8) PreviewStream() 预览流 (9) OptionToStream()
报表
的属性保存为流 (10) OptionFromStream() 从流
中
得到
报表
属性 三、
控件
事件: AfterPrint
打印
后 BeforePrint
打印
前 (本来很多事件,但没有预览,后来加上预览以及一些方法后实现很困难就去掉了!) 四、注意事项 (1) text 属性,输入“¦;;;;;;;#¦;;;;;;;”
打印
页码值,如果想
打印
页码可输入“第¦;;;;;;;#¦;;;;;;;页” 输入“¦;;;;;;;RecordCount¦;;;;;;;”
打印
记录数 (2) 不同的
打印
机,
打印
和预览效果可能有一点点不同(保证
数据
打印
完全正确一致)。本人用一台针式和一台激光
打印
机做测试,开始差别较大后经过调试基本一致,不知其他
打印
机如何。 就这些个吧基本满足了我的软件开发需要,解决了很多问题,关键是做
报表
省了很大力气,当然了很复杂的
报表
还是要其它
报表
控件
来解决。如果有其他问题或好的建议可与我联系。 程序设计:吴进昊 E-mail :jinhaowu@hotmail.com qq :54254770 2003.01.03
RePrint 表格
打印
轻松做
报表
打印
datasource,
db
grid
,string
reprint 使用说明
直接
从datasource,
db
grid
,string
grid
导入
数据
, 只需简单设置,不用手工制作,即可生成您需要的
报表
,具有预览功能。即可自定义纸张,又可适应
打印
机默认纸张。各种
打印
设置,功能更强大。 一 、
控件
属性: 1、colstitle 设置
报表
的列标题属性 (1)alignment 列标题对齐方式。 (2)font 列标题字体 (3)print 设置是否
打印
列标题 (4)rowspace 列标题行的高度 2、datasource 选择要
打印
的datasource 3、
db
grid
选择要
打印
的
db
grid
4、string
grid
选择要
打印
的string
grid
5、detail 设置要
打印
的明细
数据
属性 (1)arrange 设置明细字段排列方向 Horizontal 横向
打印
(默认的一般
打印
) Vertical 竖向
打印
(字段竖向排列适合
打印
字段内容较长的
报表
如“会议纪录”) (2)aotureturn
打印
明细字段时,如果字段超过列的宽度是否允许自动换行 (3)colsline 设置竖线属性引用tpen类 (4)footer 设置明细尾 (5)frame 设置明细边框属性引用tpen类 (6)head 设置明细头同footer (7)rowsline 设置横线属性引用tpen类 (8)rowspace 设置明细行的高度 (9)top 明细与标题的距离 6、page 设置纸张的上下左右边距 7、pagefooter 设置页脚同明细尾 8、pageheader 设置页眉同页脚 9、printobject 选择要
打印
的对象 (datasource 、
db
grid
、 string
grid
) 10、title 设置标题类页眉、页脚 二 、
控件
方法: (1) preview 预览 (2) print
打印
(3) SaveToFile() 保存为
报表
文件 (4) SaveToStream() 保存为流(然后就可把整个
报表
存到
数据
库了很方便哦! ~_~) (5) PrintFile()
打印
报表
文件 (6) PrintStream()
打印
流(流的
数据
库存取就不用多说了吧) (7) PreviewFile() 预览文件 (8) PreviewStream() 预览流 (9) OptionToStream()
报表
的属性保存为流 (10) OptionFromStream() 从流
中
得到
报表
属性 三、
控件
事件: AfterPrint
打印
后 BeforePrint
打印
前 (本来很多事件,但没有预览,后来加上预览以及一些方法后实现很困难就去掉了!) 四、注意事项 (1) text 属性,输入“¦;#¦;”
打印
页码值,如果想
打印
页码可输入“第¦;#¦;页” 输入¦;RecordCount¦;”
打印
记录数 (2) 不同的
打印
机,
打印
和预览效果可能有一点点不同(保证
数据
打印
完全正确一致)。本人用一台针式和一台激光
打印
机做测试,开始差别较大后经过调试基本一致,不知其他
打印
机如何。 就这些个吧基本满足了我的软件开发需要,解决了很多问题,关键是做
报表
省了很大力气,当然了很复杂的
报表
还是要其它
报表
控件
来解决。如果有其他问题或好的建议可与我联系。 程序设计:吴进昊 E-mail :jinhaowu@hotmail.com qq :54254770 2003.01.03 新增明细栏的左右对齐. 纸张类型、
打印
方向设置! 标题的每页
打印
设置。 列标题的每页,每行
打印
设置。 修改了
打印
时的错误!
reprint
打印
控件
(
打印
datasource,
db
grid
,string
grid
)
reprint 使用说明 本人长期使用delphi做
数据
库的开发,
报表
控件
使用Quickrpt,在
打印
上经常遇到一些问题,于是自己经常编写一部分
打印
的程序,经过总结开发了这个
控件
。 本
控件
可
打印
datasource,
db
grid
,string
grid
. 一 、
控件
属性: 1、colstitle 设置
报表
的列标题属性 (1)alignment 列标题对齐方式。 (2)font 列标题字体 (3)print 设置是否
打印
列标题 (4)rowspace 列标题行的高度 2、datasource 选择要
打印
的datasource 3、
db
grid
选择要
打印
的
db
grid
4、string
grid
选择要
打印
的string
grid
5、detail 设置要
打印
的明细
数据
属性 (1)arrange 设置明细字段排列方向 Horizontal 横向
打印
(默认的一般
打印
) Vertical 竖向
打印
(字段竖向排列适合
打印
字段内容较长的
报表
如“会议纪录”) (2)aotureturn
打印
明细字段时,如果字段超过列的宽度是否允许自动换行 (3)colsline 设置竖线属性引用tpen类 (4)footer 设置明细尾 (5)frame 设置明细边框属性引用tpen类 (6)head 设置明细头同footer (7)rowsline 设置横线属性引用tpen类 (8)rowspace 设置明细行的高度 (9)top 明细与标题的距离 6、page 设置纸张的上下左右边距 7、pagefooter 设置页脚同明细尾 8、pageheader 设置页眉同页脚 9、printobject 选择要
打印
的对象 (datasource 、
db
grid
、 string
grid
) 10、title 设置标题类页眉、页脚 二 、
控件
方法: (1) preview 预览 (2) print
打印
(3) SaveToFile() 保存为
报表
文件 (4) SaveToStream() 保存为流(然后就可把整个
报表
存到
数据
库了很方便哦! ~_~) (5) PrintFile()
打印
报表
文件 (6) PrintStream()
打印
流(流的
数据
库存取就不用多说了吧) (7) PreviewFile() 预览文件 (8) PreviewStream() 预览流 (9) OptionToStream()
报表
的属性保存为流 (10) OptionFromStream() 从流
中
得到
报表
属性 三、
控件
事件: AfterPrint
打印
后 BeforePrint
打印
前 (本来很多事件,但没有预览,后来加上预览以及一些方法后实现很困难就去掉了!) 四、注意事项 (1) text 属性,输入“¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;”
打印
页码值,如果想
打印
页码可输入“第¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;页” 输入“¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;RecordCount¦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;”
打印
记录数 (2) 不同的
打印
机,
打印
和预览效果可能有一点点不同(保证
数据
打印
完全正确一致)。本人用一台针式和一台激光
打印
机做测试,开始差别较大后经过调试基本一致,不知其他
打印
机如何。 就这些个吧基本满足了我的软件开发需要,解决了很多问题,关键是做
报表
省了很大力气,当然了很复杂的
报表
还是要其它
报表
控件
来解决。如果有其他问题或好的建议可与我联系。 程序设计:吴进昊 E-mail :jinhaowu@hotmail.com qq :54254770 2003.01.03
RePrint表格
打印
控件
(
打印
datasource,
db
grid
,string
grid
)
功能更加强劲,增加多行表头的功能,新增更多事件,加强了
打印
期间对
报表
样式 的控制,可随意改变
打印
内容。 reprint 使用说明 本
控件
可
打印
datasource,
db
grid
,string
grid
. 一 、
控件
属性: 1、colstitle 设置
报表
的列标题属性 (1) Print:boolean;;是否
打印
(2) Font:tfont;;字体 (3) Rowsline:tpen;;横线样式 (4) Colsline:tpen;;竖线样式 (5) Alignment:talignment;;对齐方式 (6) Rowspace:integer;;行间距 (7) EveryPage:boolean;;是否每页
打印
(8) EveryRow:boolean;;是否每行
打印
(9) titlearray:tstrings;;怎加标题组 (使用方法见附带demo) (10) rows:integer;;设置默认列标题
打印
行数 2、datasource 绑定 datasource 3、
db
grid
绑定
db
grid
4、string
grid
绑定 string
grid
PrintObject 选择
打印
的对象(datasource 、
db
grid
、 string
grid
) 5、pagefooter 页脚 pageheader 页眉 (1) Text:string;;内容 (2) Font:tfont;;字体 (3) Print:boolean;;是否
打印
(4) Alignment:talignment;;对齐方式 6、detail 设置要
打印
的明细
数据
属性 (1)arrange 设置明细字段排列方向 Horizontal 横向
打印
(默认的一般
打印
) Vertical 竖向
打印
(字段竖向排列适合
打印
字段内容较长的
报表
如“会议纪录”) (2)aotureturn
打印
明细字段时,如果字段超过列的宽度是否允许自动换行 (3)colsline 设置竖线属性引用tpen类 (4)footer 设置明细尾 (设置同pagefooter 页脚 pageheader 页眉) (5)frame 设置明细边框属性引用tpen类 (6)head 设置明细头(设置同pagefooter 页脚 pageheader 页眉) (7)rowsline 设置横线属性引用tpen类 (8)rowspace 设置明细行的高度 (9)top 明细与标题的距离 (10)Alignment对齐方式 7、page 设置纸张 (1) leftmargin:real;;左边距 (2) rightmargin:real;;右边距 (3) topmargin:real;;顶边距 (4) bottommargin:real;;底边距 (5) pagesize:TPageSize;;纸张类型 (6) Height:real;;高度 (7) width:real;;宽度 (8) Orientation:TPrinterOrientation;;
打印
方向 注意:设置纸张的宽度和高度需把pagesize设为Custom 8、title 设置标题 (1) Print:boolean;; 是否
打印
(2) Text:tstrings;; 内容可设置多行 (3) Font:tfont;;字体 (4) Alignment:talignment;;对齐方式 (5) top:integer;; 距纸张顶部距离 (6) Rowspace:integer;;行距 (7) EveryPage:boolean;;是否每页
打印
二 、
控件
方法: (1) preview 预览 (2) print
打印
(3) SaveToFile() 保存为
报表
文件 (4) SaveToStream() 保存为流(然后就可把整个
报表
存到
数据
库了很方便哦! ~_~) (5) PrintFile()
打印
报表
文件 (6) PrintStream()
打印
流(流的
数据
库存取就不用多说了吧) (7) PreviewFile() 预览文件 (8) PreviewStream() 预览流 (9) OptionToStream()
报表
的属性保存为流 (10) OptionFromStream() 从流
中
得到
报表
属性 (11) OptionPost()在
打印
期间改变了
报表
属性,要想立即生效调用此方法。 (12) PaintText(Text:string) 覆盖原有
打印
的字符,一般在能返回当前
打印
的内容的事件
中
使用。(见
控件
事件) 三、
控件
事件: (1) AfterPrint
打印
后 (2) BeforePrint
打印
前 (3) OnPrintDetail(RecordNumber: Integer)在
打印
每一栏明细前触发此事件, 返回参数:RecordNumber返回当前
打印
行数。 (4) OnPrintDetailField(RecordNumber,FieldIndex: Integer;; FieldText: String);; 在
打印
明细的每个字段都会触发此事件。 返回参数:RecordNumber返回当前
打印
行数。 FieldIndex 字段索引 FieldText字段内容 (5) OnPrintTitle(Row: Integer;; Text: String)
打印
每行标题都会触发此事件。 返回参数:row当前
打印
的行 Text当前
打印
的内容 (6) OnPrintColsTitleField(Row, FieldIndex: Integer;; FieldName: String);;
打印
列标题字段时触发此事件 返回参数:row当前
打印
的行 FieldIndex当前
打印
的字段索引 FieldName当前
打印
的字段名称 (7) OnPrintColsTitle(Row: Integer)
打印
每行列标题时触发此事件 返回参数:row当前
打印
的行 四、注意事项 (1) text 属性,输入“¦#¦”
打印
页码值,如果想
打印
页码可输入“第¦#¦页” 输入“¦RecordCount¦”
打印
记录数 (2) 不同的
打印
机,
打印
和预览效果可能有一点点不同(保证
数据
打印
完全正确一致)。本人用一台针式和一台激光
打印
机做测试, 开始差别较大后经过调试基本一致,不知其他
打印
机如何。 (3) 纸张大小以及横向、竖向自动适应系统默认也可设置。 (4) 各列的宽度按比例,适应纸张宽度
打印
。 程序设计:吴进昊 E-mail :jinhaowu@hotmail.com qq :54254770 2003.01.03
Delphi
5,391
社区成员
262,736
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章