说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Delphi编制的程序运行中动态制作报表

HTML文档下载 WORD文档下载 PDF文档下载
Delphi编制的程序运行中动态制作报表

Delphi中的quickreport是挪威的QuSoft AS公司专门为Delphi设计的用于制作报表的组件,具有很强的访问数据库的能力。但是,从我个人的使用经验来看,这个组件的帮助写的不够详尽,例程也不多。因而一般编程人员都是在设计期间设计好报表的所有格式,并在运行时连上数据源(即delphi中的dataset)运行程序的。显然,这种方法不具备很强的灵活性。在这里我想向大家介绍一种在程序运行时如何动态制作报表的方法。

---- 首先,建立form1;unit1(调用窗体),其中放入button1:caption为‘预览’,用以查看报表,再加入label1:caption为‘报表标题’;edit1用以接收用户输入的标题。再建立form2(放置quickreport元件的窗体)

其中放入quickrep元件和三个qrband元件,其bandtype分别为rbTitle

rbColumnHeader

rbDetail.但其中无须放入qrlabel和qrdbtext元件,由程序中自动生成。再在form2;unit2中放入table1

table2。在databasename属性中填入数据库所在的Alias Name.在tablename中分别填入Goods

TableInformation.其中Goods中存放商品信息,可以设置以下字段:ID;Name;Unit;Price。TableInformation中的字段为TableName; FieldsName; DisplayName数据库中填入以下信息。

————————————————————————

Goods ID 商品编号

Goods Name 商品名称

Goods Price 商品单价

---- 好了,准备工作完成了一半,现在写入代码。在unit1的implementation下写入uses Unit2;在button1的click事件中写入以下代码:

begin

PreparePrint;

with Form2 do

begin

Preview;

Table1.Close;

Table2.Close;

end;

end;

在unit1中添加一个过程PreparePrint;

procedure TForm1.PreparePrint;

var LeftValue:integer;

aLabel : TQRLabel;

aText:TQRDBText;

begin

LeftValue:=100;

with Form2 do

begin

aLabel := TQRLabel.Create(Form2); '设置标题

aLabel.Parent := TitleBand1;

with aLabel do

begin

Width:=300;

Height:=TitleBand1.Height;

Alignment:=taCenter;

Caption := Edit1.Text;

end;

Table1.Open;

Table2.Open;

Table2.First;

while not Table2.EOF do

begin

aLabel := TQRLabel.Create(Form2);

’设置显示字段标题

aLabel.Parent := HeaderBand1;

with aLabel do

begin

AutoSize:=False;

AutoStretch:=True;

Left :=LeftValue;

Top := 0;

Width:=80;

Height:=HeaderBand1.Height;

Alignment:=taCenter;

Caption := ' '+table2.FieldbyName(

'DisplayName').AsString+' ';

end;

aText := TQRDBText.Create(Form2);

'设置显示字段内容

aText.Parent := DetailBand1;

with aText do

begin

AutoSize:=False;

AutoStretch:=True;

Height:=DetailBand1.Height;

DataSet:=Table1;

DataField:=Table2.FieldbyName(

'FieldsName').AsString;

Alignment:=taCenter;

end;

LeftValue:=LeftValue+80;

Table2.Next;

end;

end;

end;

---- 好了,运行程序可以看到报表预览的效果,显示了Goods中的ID

Name

Price。在运行时完全可以控制table1和table2中的数据内容。显示不同数据库的不同信息,改变table2中的记录顺序可改变报表中的显示顺序。而且,由于报表的各部分,甚至包括各band和system data均可在程序运行时依据上述方法动态生成。其属性也可动态设置。所以我们完全可以制作一个类似于Dephi中Form Wizard一样的报表精灵,还可提供一个灵活而且强大的打印设置功能。

---- 以上代码在delphi3中运行通过。

突破SendKeys的限制 -VB资料 圖面背景透明的技巧-VB资料 退出并关闭 Windows-VB资料 托盘程序详解(二) -VB资料 托盘程序详解(一) -VB资料 我怎样确定我的程序是否在运行?-VB资料 无重复随机数序列产生器 -VB资料 显示打开方式对话框建立文件的关联 -VB资料 显示动画鼠标图标-VB资料 修复VB5启动时可能出现的一个bug 修改IE的环境菜单-VB资料 修改安装向导生成的缺省安装目录 -VB资料 修改屏保口令 -VB资料 修改屏幕保护的口令 -VB资料 旋转字体 -VB资料 延时函数-VB资料 一个关于乘法溢出问题的探讨 -VB资料 一组VB实用小程序 一组VB应用技巧 隐藏和显示任务栏-VB资料 应用 WSH 读写注册表和建立快捷方式 -VB资料 VB用 IIF 和 SWITCH 以精减代码 VB用BASIC语言设计Windows风格的用户接口 VB用Form 的 Mouse_Move事件来检查鼠标是否在窗口内: VB用RND()函数加密 VB用SendKeys来捉屏 用VB4.0制作软件封面 用VB5 对Windows 95 任务栏提示区进行编程 用VB5读写注册表实例 用VB5开发商品软件的经验谈 用VB5设计多功能计时器 如何从recordset得到数据库的行号 用<%@ include file="xxx.jsp"%>出现的怪问题!求教 有关server.mappath()的问题 J2EE基础问题两三问,追加200分。 问题很简单,但我很急,请帮忙各位。 可用的UDDI 急救!自动隐藏Panel 帮忙 哪里有数据库系统开发的文档下载 急待解决的问题 请问从socket发信息,连续发送几个小数据包出错的情况!! 紧急问题,在线等待! 救命——存取违例 请问在VB中使用DAO控件怎样打开ACCESS数据库? 请问装vc6的sp5主要有什么作用啊 双网卡的局域网,如何让 CSocket 使用指定的网卡与另一电脑通讯? SQL删除不了相同的记录 JBuilder7中的中文问题 谁知道计算机的本地时间与系统时间有什么区别? 请问如何实现垂直显示文字?` JDOM高手看过来! 请问怎么在vb中调用纯c接口的api并实现多线程 如何实现任意长整数的运算? 程序移植,有多大的工作量??? 哪里有InstallShield Express的中文包D6自带的那个。 HELP ME! 请教:API中的数据类型与pb中的数据类型的对应关系 第一个进来给100分!哈哈,高兴!! 高分求翻译, 高手请进,就一句 TeeChart在那个组件栏中?我怎么找不到?(我是6.0的版本) 在哪里下载KPT7.0? 存储过程问题讨论!高手请进. 高人指点几行代码不难,只是我不懂 紧急问题,在线等待! 急问:在DROPDOWNLIST中如果只有一个下拉选择项怎么无法相应SelectedIndexChanged事件?该怎么做? 关于用DataGrid显示数据的问题 请高手相助 示例解析sqlDataAdapter中tablemappings的使用(在线给分)急!!! 我想让一条记录的其中四个字段成为ComboBox中的四个选项,如何做啊? 请问.netFrameWork里面没有提供Chart的类。 关于驱动编译的一个问题!100分! 十行小程序 想做一个VC6.0那样的WorkSpace,谁有这方面的经验或代码? 我现在做一个考试系统,它的客户端怎样操作服务器端的数据库? 还是web打印的问题,特别是票据打印,要求比较高(还要免费的),据说可以用Applet+数字签名+JNI+XML的形式? mshflexgrid同步更新问题===请高手做答 我想在CDocument中控制CDialogBar,如何控制? Easy,简单的开始问题!!! 谁有Antechinus C# Editor的注册码呀? 随缘 99高程的最后一题c语言题目的编程原理是什么?什么图理论?数据结构?不明白? 美参议院情报委员会主席:白宫将停止监美国白宫:美国同意对搜集情报方式加强飓风桑迪周年前夕 美联邦政府再拨50美国监听风波陷两难 白宫急灭火共和党“叙利亚电子军”称其控制奥巴马社交网卢旺达等四国成立单一关税区推动贸易发白宫网页万人请愿辱华节目被删除新交所将推亚洲外汇期货郎朗获任联合国和平使者吴建民:21世纪,世界需要“读懂中国欧洲多国遭强飓风袭击 已共致13人遇评论:平等对话才能改善美伊两国关系伊朗和国际机构就伊核问题对话 外界期美国监听借口难服众 欧洲回应着手协调美国制造业和楼市数据显示经济成长动力美参议院情报委员会主席:白宫将停止监韩国向美国求证是否监听朴槿惠 美方尚伊朗和国际原子能机构继续就伊核问题对郎朗被任命为联合国和平使者 成第二位西班牙对美国监听表不满 闭门召见美大墨西哥自2001年以来首现霍乱疫情 11项职业资格许可被取消 大学生考男子满脸血在郑拦车乞讨 交警:遇强行公积金最高80万元贷款额北京买房不够8部门追捕外逃贪官 曾被外国要求做不中国追捕外逃贪官揭秘:被要求做不判死曝考研保录班巨额收费主要用于打通报考王儒林:太原三任书记、公安局长出事因政治衰败的美国只有“死路一条”外媒称中国首艘国产航母去年底已开工建柯文哲曾撕身份证主张“台独” 现被质“伊斯兰国”西方女成员有家难回牌坊上的长寿佳话普京确认参加G20峰会每年差额补助每市斤1.5元海南古来多寿者网友热赞夫妻恩爱美名传“师德”红线应持久“通电”第十届金鹰节暨第27届金鹰奖落幕取消“骚扰”女学生三亚市第八届 职工运动会举行
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘