社区
数据库相关
帖子详情
程序运行中动态制作报表代码 需求啊!!
lanwu2636
2003-06-20 03:50:18
谁有!!!给分拉~~~
...全文
35
1
打赏
收藏
程序运行中动态制作报表代码 需求啊!!
谁有!!!给分拉~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ttoth
2003-06-20
打赏
举报
回复
---- 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数据库中填入以下信息。
———————————————————————— <br>
Goods ID 商品编号<br>
Goods Name 商品名称 <br>
Goods Price 商品单价
---
- 好了,准备工作完成了一半,现在写入代码。在unit1的implementation下写入uses Unit2;在button1的click事件中写入以下代码:
begin PreparePrint; <br>
with Form2 do <br>
begin Preview;<br>
Table1.Close;<br>
Table2.Close; <br>
end; <br>
end;<br>
<br>
在unit1中添加一个过程PreparePrint;<br>
<br>
procedure TForm1.PreparePrint<br>
; var LeftValue:integer; <br>
aLabel : TQRLabel;<br>
aText:TQRDBText; <br>
begin LeftValue:=100;<br>
with Form2 do<br>
begin aLabel := TQRLabel.Create(Form2); '设置标题 <br>
aLabel.Parent := TitleBand1;<br>
with aLabel do <br>
begin Width:=300;<br>
Height:=TitleBand1.Height;<br>
Alignment:=taCenter;<br>
Caption := Edit1.Text;<br>
end;<br>
Table1.Open; <br>
Table2.Open;<br>
Table2.First;<br>
while not Table2.EOF <br>
do begin<br>
aLabel := TQRLabel.Create(Form2); ’设置显示字段标题 <br>
aLabel.Parent := HeaderBand1;<br>
with aLabel do <br>
begin AutoSize:=False;<br>
AutoStretch:=True;<br>
Left :=LeftValue; <br>
Top := 0; <br>
Width:=80; <br>
Height:=HeaderBand1.Height;<br>
Alignment:=taCenter;<br>
Caption := ' '+table2.FieldbyName( 'DisplayName').AsString+' ';<br>
end;<br>
aText := TQRDBText.Create(Form2); '设置显示字段内容 <br>
aText.Parent := DetailBand1;<br>
with aText do <br>
begin AutoSize:=False; <br>
AutoStretch:=True;<br>
Height:=DetailBand1.Height;<br>
DataSet:=Table1;<br>
DataField:=Table2.FieldbyName( 'FieldsName').AsString;<br>
Alignment:=taCenter; <br>
end;<br>
LeftValue:=LeftValue+80;<br>
Table2.Next;<br>
end; <br>
end;<br>
end;
---- 好了,运行程序可以看到报表预览的效果,显示了Goods中的ID,Name,Price。在运行时完全可以控制table1和table2中的数据内容。显示不同数据库的不同信息,改变table2中的记录顺序可改变报表中的显示顺序。而且,由于报表的各部分,甚至包括各band和system data均可在程序运行时依据上述方法动态生成。其属性也可动态设置。所以我们完全可以制作一个类似于Dephi中Form Wizard一样的报表精灵,还可提供一个灵活而且强大的打印设置功能。
ASP.NET
中
动态
控制RDLC
报表
Rdlc优点: 1:Rdlc
报表
设计简单 2:结果存成xml,易于控制 3:导出格式作的很不错 这里所说的
动态
控制
报表
所指的是:在一些时候,
制作
了
报表
之后希望在运行
中
可以
动态
的做一些小修改,比如说列的位置,用户...
JAVA上百实例源码以及开源项目源
代码
Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序
代码
实例,本例
中
使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...
Java/Web
报表
开发工具/
报表
工具-FineReport初级入门教程
介绍
报表
的相关知识和基本概念,以及
报表
工具FineReport初级
报表
的
制作
,分组
报表
、自由
报表
、多源
报表
、交叉
报表
、主子
报表
原理及
制作
,图表、参数查询模块,数据钻取的介绍,填报、多sheet填报、数据上报等填报...
java源码包2
Java非对称加密源程序
代码
实例,本例
中
使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
java源码包---java 源码 大量 实例
Java非对称加密源程序
代码
实例,本例
中
使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
数据库相关
2,497
社区成员
88,445
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章