如何动态改变字段,打印报表

wsf 2000-08-14 06:00:00
实际应用中灵活设置报表的字段是经常遇到的,如果你是用
1TCanvas类画报表,请你给出代码
2控件,请你给我发一个此控件
3用word,也请给出代码
谢谢
...全文
135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzs 2001-02-28
  • 打赏
  • 举报
回复
做这个麻烦。找找控件吧。
chenh1234 2001-02-28
  • 打赏
  • 举报
回复
说难也难,说不难也不难。这要看你的要求是什么。
简单的,动态生成TQRDBText控件就可以了。
wsf 2000-08-15
  • 打赏
  • 举报
回复
奇怪为什么没有人回答?是太简单吗
yqbwork 2000-08-15
  • 打赏
  • 举报
回复
由答案时,请传一份给我..
QReportMaker是一个自动生成QuickRep报表的VCL控件包,适用于数据表打印、表单、票据打印、文档打印及自绘的报表打印,包含TQMPrintDataSet、TQMPrintEhGrid、TQMPrintDBGrid、TQMPrintStringGrid、TQMPrintControl、TQMPrintRichText、TQMPrintQuickRep等组件,可以在Delphi5,6,7和C++Builder5,6中使用。1.快速制作报表,只需要指定所需打印的控件就基本完成了报表的制作。 2.提供丰富的页面设置功能,所有设置都可以保存,包括: >>常规的纸张高、宽、边距、方向设置; >>提供打印栏数设置,支持多栏打印; >>可设置整个报表的颜色模式、色彩浓度; >>提供横向压缩、扩展到一页的功能,也可以对报表按比例整体缩放; >>其他设置:报表页面居中,整体改变字体等。 3.提供简洁、朴素且功能齐全的打印预览界面。 4.提供页眉、页脚、表头、注脚、报表标题、子标题、公司微标等设置。 5.提供多种参数、变量,如页码{#PageNumber}、自定义参数,你甚至可以直接取控件的属性值,如{Label1.Caption}。 6.在设计期就可以将报表绘制到QuickRep上(如果你用QuickRep做过报表一定会觉得这个功能很神奇)。 7.运行期可设置数据列的属性(是否显示、列宽、对齐方式),这些设置同样可以保存。 8.提供数据列(Columns)的多种设置,如格式化、是否隐藏零等,在字段属性中还可以使用QuickRep的函数及表达式。 9.支持多重表头打印,可轻松设置成套打报表、统计类报表、英文报表等多种格式的数据报表。 10.提供多种语言版本,英文、中文简体、中文繁体版。
功能更加强劲,增加多行表头的功能,新增更多事件,加强了打印期间对报表样式 的控制,可随意改变打印内容。 reprint 使用说明 本控件可打印 datasource,dbgrid,stringgrid. 一 、控件属性: 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、dbgrid 绑定 dbgrid 4、stringgrid 绑定 stringgrid PrintObject 选择打印的对象(datasource 、dbgrid、 stringgrid ) 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
V1.83新增特性1.增加了TACFormReport控件,可以打印Form上的对象,目前支持打印DBGrid和Dataset,可以轻易扩充。 可以动态设置以下属性: HeaderFont: 列头字体 GridFont: 表格字体 PageHeader: 页眉(Rich文本) PageFooter: 页脚(Rich文本) PageTitle: 页头设置,含文字和字体。 ReportTitle: 表头设置,含文字和字体。 PrintControl: 要打印的控件。 PageInfo: 页面纸张、边距设置。 使用方法: 1) 将对应的TPrintDBGridObj或TPrintDataset控件拖到Form上。 2) 通过设置ACFormReport的以上各属性,并调用Prevew、Print、ShowDesigner等方法实现打印或设计功能。2.报表新增了"预览时可改变表格线"和"预览时可以编辑表格内容"选项。 "预览时可改变表格线"为默认选项,如果选取了此选项,则在预览时可以重新调整表格的栏宽。3.预览时可以临时设置页面纸张和页边距。4.新增了"页码#"和"总页数#"两个系统变量,因此可以在报表任何位置显示这两个值,而不限于页眉页脚,前提是报表必须在"页面属性"中选取"两遍报表"选项5.其它较重要的修改 1) 预览时可以输入页码直接跳转到某一页。 2) 如果在字段对象后面加上"$",如 "表.字段$",则将返回 "表.字段"的DisplayText值,而不是value值。 3) TACReport新增了TPaperInfo属性,制作动态报表时可以用来动态设置纸张。 4) TACReportCtrl新增了 ReadOnly和GridReset属性。 5) TACReportCell新增了SetFont方法。 6) 如果Field.Visible=false,则在报表字段选择中不会出现,但仍然可以使用。注: 1.TACFormReport等新增的几个控件都含源码。2.Demo程序和相关文档有变动。

5,385

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧