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

wsf 2000-08-14 06:00:00
实际应用中灵活设置报表的字段是经常遇到的,如果你是用
1TCanvas类画报表,请你给出代码
2控件,请你给我发一个此控件
3用word,也请给出代码
谢谢
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzs 2001-02-28
  • 打赏
  • 举报
回复
做这个麻烦。找找控件吧。
chenh1234 2001-02-28
  • 打赏
  • 举报
回复
说难也难,说不难也不难。这要看你的要求是什么。
简单的,动态生成TQRDBText控件就可以了。
wsf 2000-08-15
  • 打赏
  • 举报
回复
奇怪为什么没有人回答?是太简单吗
yqbwork 2000-08-15
  • 打赏
  • 举报
回复
由答案时,请传一份给我..
功能更加强劲,增加多行表头的功能,新增更多事件,加强了打印期间对报表样式 的控制,可随意改变打印内容。 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程序和相关文档有变动。
数据库报表设计系统(以下简称为报表系统),是专用于对访问远程数据库服务器所得的数据,如:SQL Server2000、Oracle等进行报表设计、预览和打印的系统。它设计自由、样式多样、操作简单,和通常的字处理排版类似。 报表系统主要包括系统菜单、工具栏、设计区和预览区四大部分。其中系统菜单中的主要功能都能在工具栏中实现,工具栏以包括系统工具、表头元件、数据元件、排版工具、位置调整工具,具体功能如下: 1)系统工具:主要有新建报表、打开报表、保存报表打印设置、打印预览、剪切、复制、粘帖等; 2)表头元件:主要有标签、文本标签(用于多行标签)、系统数据(用于显示打印日期、页码、页数等)、图象、直线、矩形(用于制作表格)和条形码等工具。 3)数据元件:主要有数据标签(用于显示数据字段值)、数据文本(用于显示TXT数据)、数据RTF(用于显示RTF数据)、求和(用于对字段求和)、图象(用于显示图象字段)、数据条形码、区域框(用于制作表格)以及数据字段框(用于选择要显示的数据字段名称)。 4)排版工具:主要有对文字进行加粗、斜体、下画线、居左、居中、居右,改变字体及大小、颜色,置前、置后工具用于对重合的元件进行调整。 5)位置调整工具:主要有上下左右移动元件,对元件上下左右对齐(同时选择多个元件就可使用此工具选择对齐方式)和改变元件大小工具,即选择两个以上的元件,使用此工具对基于参照元件进行放大和缩小其它元件。 设计区主要用于报表版面设计,包括表头(用于设计报表标题)、内容(用于设计报表表格)、页脚(用于设计报表落款);预览区主要用于报表预览,即可进行实时预览,也就是在设计区中修改了报表,立刻就可以在预览区显示效果,预览区上还有打印按钮、预览比例按钮和翻页按钮等。

5,388

社区成员

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

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