王 王淳霞 Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-28 #1 我利用QuickReport来动态制作报表,BAND中的QRDBtext个数不确定,名称也不确定,但是我要为其中某几个(具体哪一个也不确定)写onprint事件,请教诸位大侠我该如何做,另求QuickReport2.0x的源码,地址是cxwang@163.net.万望施以援手,急!小女子这厢有"分"了!
我利用QuickReport来动态制作报表,BAND中的QRDBtext个数不确定,名称也不确定,但是我要为其中某几个(具体哪一个也不确定)写onprint事件,请教诸位大侠我该如何做,另求QuickReport2.0x的源码,地址是cxwang@163.net.万望施以援手,急!小女子这厢有"分"了!
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-28 #2 天气好,说几句 1.推荐换个REPORT工具,ACE REPORT/REPORT BUILDER都不错,特别推荐"坏人"的 EREPORT. 2.你可以动态生成QLABEL也动态分配事件 3.如果情况允许,先把所有QLABEL放上,把VISIBLE设置为FALSE,写好事件,需要时 把它TRUE出来 http://www.netease.com/~bozhi/有不少好东西.
天气好,说几句 1.推荐换个REPORT工具,ACE REPORT/REPORT BUILDER都不错,特别推荐"坏人"的 EREPORT. 2.你可以动态生成QLABEL也动态分配事件 3.如果情况允许,先把所有QLABEL放上,把VISIBLE设置为FALSE,写好事件,需要时 把它TRUE出来 http://www.netease.com/~bozhi/有不少好东西.
王 王淳霞 Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-28 #3 是这样的,我要根据QRdbtext中的内容,例如0/1来 转换成成性别男/女,QRexpr中常直接出现design时的 公式 如sum(table.salary)诸如此类,我希望在onprint 中判别后置0,但是动态制表时,Qrexpr尚未确定, 也未定对象名称,如何为其订制Onprint事件,难!难!难! 注:老板指定要用QR作报表,且已做了几十个,总不能 一个系统中用两种工具作报表吧.
是这样的,我要根据QRdbtext中的内容,例如0/1来 转换成成性别男/女,QRexpr中常直接出现design时的 公式 如sum(table.salary)诸如此类,我希望在onprint 中判别后置0,但是动态制表时,Qrexpr尚未确定, 也未定对象名称,如何为其订制Onprint事件,难!难!难! 注:老板指定要用QR作报表,且已做了几十个,总不能 一个系统中用两种工具作报表吧.
曹 曹晓钢 Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-30 #4 >是这样的,我要根据QRdbtext中的内容,例如0/1来 > 转换成成性别男/女,QRexpr中常直接出现design时的 > 公式 如sum(table.salary)诸如此类,我希望在onprint > 中判别后置0,但是动态制表时,Qrexpr尚未确定, 再说清楚一点。
>是这样的,我要根据QRdbtext中的内容,例如0/1来 > 转换成成性别男/女,QRexpr中常直接出现design时的 > 公式 如sum(table.salary)诸如此类,我希望在onprint > 中判别后置0,但是动态制表时,Qrexpr尚未确定, 再说清楚一点。
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-30 #5 事件确定吧?先写完事件,在程序中分配 procedure myonprint....; .... Qlabel1.onprint := myonprint;
王 王淳霞 Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-31 #6 cj好象有点懂我的意思了,可是不好办就在于QRLabel1... 之类的控件的个数的名称在设计时是不确定的,是在界面中留给 用户来选择的,所以也就没有确切名称,没办法使用 Qlabel1.onprint := myonprint; ---- (onprint前的对象不确定,个数和名称均不确定) 顺便问一下,对象名可以是变量吗?或数组元素? 不知我说明白了没有?
cj好象有点懂我的意思了,可是不好办就在于QRLabel1... 之类的控件的个数的名称在设计时是不确定的,是在界面中留给 用户来选择的,所以也就没有确切名称,没办法使用 Qlabel1.onprint := myonprint; ---- (onprint前的对象不确定,个数和名称均不确定) 顺便问一下,对象名可以是变量吗?或数组元素? 不知我说明白了没有?
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-01 #7 把多个QRLABLE的ONPRINT设置为一个 ONPRINT事件是否有SENDER? IF SENDER IS TQRLABEL then begin IF TQRLABLE。NAME = ‘XXX’ then begin ... OK? MAIL地址也不发,没法回复!!
把多个QRLABLE的ONPRINT设置为一个 ONPRINT事件是否有SENDER? IF SENDER IS TQRLABEL then begin IF TQRLABLE。NAME = ‘XXX’ then begin ... OK? MAIL地址也不发,没法回复!!
S SeaSky Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-01 #9 你可以往quickreport中动态的添加Tqrlable,TqrDBText之类的组件 例子1 ; procedure TForm1.Button1Click(Sender: TObject); var Hj:TQRDBText ; begin HJ:=TQRDBText.Create(self); HJ.ParentReport := QuickRep1 ; HJ.Parent := QRdetailBand; //所属区 HJ.Left := 200 ; HJ.Top := 12 ; HJ.DataSet := Table1; HJ.DataField := 'CTableName'; HJ.Visible := true ; HJ.onprint := QRDBText1Print; end; procedure TForm1.QRDBText1Print(sender: TObject; var Value: String); begin Value:= 'HJDSD'; end; 例子2 procedure TForm1.Button2Click(Sender: TObject); var i:integer begin for i:=0 to Table1.FieldCount-1do begin with TQRDBText.Create(self)do begin ParentReport := QuickRep1 ; Parent := QRBand2 ; Left := i*100+20 ; Top := 12 ; DataSet := Table1; DataField := Table1.fields.FieldName ; Visible := true ; onprint := QRDBText1Print; end; end; end;
你可以往quickreport中动态的添加Tqrlable,TqrDBText之类的组件 例子1 ; procedure TForm1.Button1Click(Sender: TObject); var Hj:TQRDBText ; begin HJ:=TQRDBText.Create(self); HJ.ParentReport := QuickRep1 ; HJ.Parent := QRdetailBand; //所属区 HJ.Left := 200 ; HJ.Top := 12 ; HJ.DataSet := Table1; HJ.DataField := 'CTableName'; HJ.Visible := true ; HJ.onprint := QRDBText1Print; end; procedure TForm1.QRDBText1Print(sender: TObject; var Value: String); begin Value:= 'HJDSD'; end; 例子2 procedure TForm1.Button2Click(Sender: TObject); var i:integer begin for i:=0 to Table1.FieldCount-1do begin with TQRDBText.Create(self)do begin ParentReport := QuickRep1 ; Parent := QRBand2 ; Left := i*100+20 ; Top := 12 ; DataSet := Table1; DataField := Table1.fields.FieldName ; Visible := true ; onprint := QRDBText1Print; end; end; end;