在程序运行时如何动态制作报表?

---- 首先,建立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><br>Goods ID 商品编号<br><br>Goods Name 商品名称 <br><br>Goods Price 商品单价 好了,准备工作完成了一半,现在写入代码。在unit1的implementation下写入uses Unit2;在button1的click事件中写入以下代码:


<br><br>在unit1中添加一个过程PreparePrint;<br><br><br><br>procedure TForm1.PreparePrint<br><br>; var LeftValue:integer; <br><br>aLabel : TQRLabel;<br><br>aText:TQRDBText; <br><br>begin LeftValue:=100;<br><br>with Form2 do<br><br>begin aLabel := TQRLabel.Create(Form2); '设置标题 <br><br>aLabel.Parent := TitleBand1;<br><br>with aLabel do <br><br>begin Width:=300;<br><br>Height:=TitleBand1.Height;<br><br>Alignment:=taCenter;<br><br>Caption := Edit1.Text;<br><br>end;<br><br>Table1.Open; <br><br>Table2.Open;<br><br>Table2.First;<br><br>while not Table2.EOF <br><br>do begin<br><br>aLabel := TQRLabel.Create(Form2); ’设置显示字段标题 <br><br>aLabel.Parent := HeaderBand1;<br><br>with aLabel do <br><br>begin AutoSize:=False;<br><br>AutoStretch:=True;<br><br>Left :=LeftValue; <br><br>Top := 0; <br><br>Width:=80; <br><br>Height:=HeaderBand1.Height;<br><br>Alignment:=taCenter;<br><br>Caption := ' '+table2.FieldbyName( 'DisplayName').AsString+' ';<br><br>end;<br><br>aText := TQRDBText.Create(Form2); '设置显示字段内容 <br><br>aText.Parent := DetailBand1;<br><br>with aText do <br><br>begin AutoSize:=False; <br><br>AutoStretch:=True;<br><br>Height:=DetailBand1.Height;<br><br>DataSet:=Table1;<br><br>DataField:=Table2.FieldbyName( 'FieldsName').AsString;<br><br>Alignment:=taCenter; <br><br>end;<br><br>LeftValue:=LeftValue+80;<br><br>Table2.Next;<br><br>end; <br><br>end;<br><br>end;

转载于:https://www.cnblogs.com/myamanda/articles/1571814.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值