社区
Delphi
帖子详情
如何动态改变字段,打印报表
wsf
2000-08-14 06:00:00
实际应用中灵活设置报表的字段是经常遇到的,如果你是用
1TCanvas类画报表,请你给出代码
2控件,请你给我发一个此控件
3用word,也请给出代码
谢谢
...全文
145
4
打赏
收藏
如何动态改变字段,打印报表
实际应用中灵活设置报表的字段是经常遇到的,如果你是用 1TCanvas类画报表,请你给出代码 2控件,请你给我发一个此控件 3用word,也请给出代码 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wzs
2001-02-28
打赏
举报
回复
做这个麻烦。找找控件吧。
chenh1234
2001-02-28
打赏
举报
回复
说难也难,说不难也不难。这要看你的要求是什么。
简单的,动态生成TQRDBText控件就可以了。
wsf
2000-08-15
打赏
举报
回复
奇怪为什么没有人回答?是太简单吗
yqbwork
2000-08-15
打赏
举报
回复
由答案时,请传一份给我..
一个具备
打印
功能的VB
报表
设计器源代码.rar
一个具备
打印
功能的VB
报表
设计器源代码,VB
报表
打印
设计器控件源码及实例,如上图所示,可以用来设计复杂的
报表
,包括
报表
标头、页面标头、
报表
细节、页面页脚部分、
报表
注脚等,每一部分之间都可以鼠标拖动
改变
大小,并可以像Word一样设置字体、页面
打印
设置等,并可以连接到数据表和查询数据,支持常规
报表
设计的一些元素,如数据库
字段
放置、计算公式、汇总等,当前只适用于Access数据库,控件源码也是学习的好资料。
RePrint表格
打印
控件(
打印
datasource,dbgrid,stringgrid)
功能更加强劲,增加多行表头的功能,新增更多事件,加强了
打印
期间对
报表
样式 的控制,可随意
改变
打印
内容。 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
AC Report中式
报表
控件V1.83
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程序和相关文档有变动。
Delphi
报表
控件
数据库
报表
设计系统(以下简称为
报表
系统),是专用于对访问远程数据库服务器所得的数据,如:SQL Server2000、Oracle等进行
报表
设计、预览和
打印
的系统。它设计自由、样式多样、操作简单,和通常的字处理排版类似。
报表
系统主要包括系统菜单、工具栏、设计区和预览区四大部分。其中系统菜单中的主要功能都能在工具栏中实现,工具栏以包括系统工具、表头元件、数据元件、排版工具、位置调整工具,具体功能如下: 1)系统工具:主要有新建
报表
、打开
报表
、保存
报表
、
打印
设置、
打印
预览、剪切、复制、粘帖等; 2)表头元件:主要有标签、文本标签(用于多行标签)、系统数据(用于显示
打印
日期、页码、页数等)、图象、直线、矩形(用于制作表格)和条形码等工具。 3)数据元件:主要有数据标签(用于显示数据
字段
值)、数据文本(用于显示TXT数据)、数据RTF(用于显示RTF数据)、求和(用于对
字段
求和)、图象(用于显示图象
字段
)、数据条形码、区域框(用于制作表格)以及数据
字段
框(用于选择要显示的数据
字段
名称)。 4)排版工具:主要有对文字进行加粗、斜体、下画线、居左、居中、居右,
改变
字体及大小、颜色,置前、置后工具用于对重合的元件进行调整。 5)位置调整工具:主要有上下左右移动元件,对元件上下左右对齐(同时选择多个元件就可使用此工具选择对齐方式)和
改变
元件大小工具,即选择两个以上的元件,使用此工具对基于参照元件进行放大和缩小其它元件。 设计区主要用于
报表
版面设计,包括表头(用于设计
报表
标题)、内容(用于设计
报表
表格)、页脚(用于设计
报表
落款);预览区主要用于
报表
预览,即可进行实时预览,也就是在设计区中修改了
报表
,立刻就可以在预览区显示效果,预览区上还有
打印
按钮、预览比例按钮和翻页按钮等。
ACReport中国式
报表
控件2011(Ver2.3)
包含使用和开发接口文档,及Delphi、VB、VC++、C#.net、VB.net和WEB下的demo。 ACReport简介 Anycell Report(简称AC Report)是一款中国式
报表
组件,是国内最早的基于表格,支持图文混排、公式和脚本的中国式
报表
工具之一。就如Anycell Report的名称那样,灵活强大的表格功能一直是AC Report区别于其它软件或控件最显著的特征之一,AC Report 表格取消了传统表格概念中“列”的概念,每一行上的单元格数量可以不等,且可以自由活动,勿须上下对齐,在制作复杂的中国式
报表
时可以避免很多不必要的合并拆分操作,制作表格更加方便和随心所欲,并且省时省力。AC Report单元格支持多种丰富的形态,例如格式化文本、图片、图表、条码、OLE容器等。 AC Report的一些基本特点: 1.独具特色的表格,风格与Word表格相似,但可以做出比Word或Excel更灵活的表格来。 2. 功能全面、专业的中国式
报表
设计器,中国用户更易于学习和接受。 3.支持多种单元格样式,可以
打印
图像、图表(直方图、折线图等)、Rich文本、 条形码、中式财务帐薄、支持在
报表
中嵌入Word、Excel文档等。 4. 强大的计算和合计功能。内置表达式解析系统和函数库。 5. 可扩充性,可以在应用程序中给
报表
引擎扩充函数库、
报表
样式和单元格样式。 6.支持多种
报表
样式,如清单式、分组、交叉表、以及子
报表
等。 7. 支持多栏式
报表
。 8. 和应用程序完美结合,支持windows下所有的开发工具和程序语言(例如Delphi、C++、VB、PB、.NET、易语言),最终用户在设计器里可直接选择
打印
字段
,生成表达式,
报表
设计器用户容易学习理解。 9. 支持脚本和窗体编程,
报表
设计人员可以编写脚本、在
报表
设计器里为
报表
添加窗体,为最终用户提供更丰富的交互功能。 10. 既可以使用应用程序中的数据集,也支持在
报表
中直接连接各种数据库,通过SQL直接获得
报表
需要的数据。 11.无失真导出为Excel、Word、Html格式的文档 Ver 2.3主要新增或修改的功能 一、增加的功能: 1、支持二维条码 2、图片单元格支持gif格式 4、增加了一边生成
报表
一边预览的选项,减少用户的等待感 5、清单
报表
增加了明细分栏功能。 6、分组
报表
增加每组分页补充空行功能。 7、清单和分组
报表
中,补充空行时,可以选择是否显示横线和竖线条。 8、页面选项中增加“保持页脚在页面底部”、“是否套打模板”、“不
打印
背景图”等选项。 9、增加了批量设置
字段
别名的方法:SetDataFieldAliasName,使得英文
字段
在
报表
中可以用中文展现,更便于最终用户设计
报表
。 10、在设计器页面左边“
报表
样式”显示区中单击
报表
样式标签可以直接调出
报表
样式设置窗口 11、增加了Delphi下专用的VCL控件(对COM的再次封装,Delphi开发人员使用AC更加简单方便)。 12、Delphi的接口源码中增加了LoadFromCommonBlobField和SaveToCommonBlobField函数,可以直接从一个非ADO的Dataset中装入或保存模板文件。 13、函数优化,在同一页中如果两个或多个公式有公共子公式,则此公共子公式只会执行一次,例如:有以下两个公式: NumToCnText(sum(DocLines, DocLines.LineTotal)/10000, 1) NumToCnText(sum(DocLines, DocLines.LineTotal) * 100, 1) 在运行
报表
时,sum(DocLines, DocLines.LineTotal) 函数在同页中只会被执行一次。 二、bug修正和功能变动 1、修正了右对齐单元格时,不能及时刷新的问题。 2、修正了调用Init方法后,退出应用程序报错的问题。 3、修正了退出“
报表
页面选项”窗口后,右下脚属性列表没有及时刷新的问题。 4、在设计器中,如果某行的上边线不可见,则不覆盖上一行单元格的下边线(旧版中会覆盖)。 5、修正了不能撤销粘贴单元格操作的bug 6、修正了页面属性中
打印
机名称不能保存的问题 三、demo 1、增加了“保存模板到数据库”的demo 2、增加了自定义预览界面的demo 3、增加了分组合并
报表
demo 4、增加了清单
报表
在一页中分多栏
打印
的demo 5、增加了web下的demo 四、其它 1、界面的优化,工具栏风格
改变
、增加了所选单元格在标尺上的位置标注等。 2、AcRptEngine新增了一些方法,如ClearContents、ExportAcrToStream等
Delphi
5,392
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章