实现代码:
procedure Page1OnBeforePrint(Sender: TfrxComponent);
var
...
begin
...... i:=20;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select name,fields from items where tables=''pay'' and total=1');
ADOQuery2.Open;
while not ADOQuery2.Eof do
begin
Memo:= TfrxMemoView.Create(ColumnFooter1);
//Memo.CreateUniqueName;
//Memo.DataSet :=ADOQuery1;
Memo.Text :='[SUM( <ADOQuery1."'+Trim(ADOQuery2.FieldByName('fields').AsString)+'"> ,MasterData1)]'; //这边不知要怎么写
//ShowMessage(Memo.Text); //显示正常
Memo.Height :=20;
Memo.SetBounds(i,0,100,20);
ADOQuery2.Next;
i:=i+80;
end;
end;
说明一下:报表是动态生成的,报表填入的MEMO组件的数量是用代码根据表TIEM中的设置生成的.上次开的贴有朋友回答先放入MEMO组件,然后根据查找组件名赋值,因为组件数量不固定,也不知道要放几个组件.所以这种方法不好使,感谢那些热心的朋友,还请高手们帮帮忙.
procedure Page1OnBeforePrint(Sender: TfrxComponent);
var
...
begin
...... i:=20;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select name,fields from items where tables=''pay'' and total=1');
ADOQuery2.Open;
while not ADOQuery2.Eof do
begin
Memo:= TfrxMemoView.Create(ColumnFooter1);
//Memo.CreateUniqueName;
//Memo.DataSet :=ADOQuery1;
Memo.Text :='[SUM( <ADOQuery1."'+Trim(ADOQuery2.FieldByName('fields').AsString)+'"> ,MasterData1)]'; //这边不知要怎么写
//ShowMessage(Memo.Text); //显示正常
Memo.Height :=20;
Memo.SetBounds(i,0,100,20);
ADOQuery2.Next;
i:=i+80;
end;
end;
说明一下:报表是动态生成的,报表填入的MEMO组件的数量是用代码根据表TIEM中的设置生成的.上次开的贴有朋友回答先放入MEMO组件,然后根据查找组件名赋值,因为组件数量不固定,也不知道要放几个组件.所以这种方法不好使,感谢那些热心的朋友,还请高手们帮帮忙.
解决方案 »
- 数据量很大的情况下,大家都用什么来存储的?
- mscomm通讯问题,如何发送大于127的数字
- 重分悬赏:TClientSocket怪问题。。。
- 如何将dbgrid中的数据输出到excel或WORD?请教各位
- 请问QuickReport Master/Detail报表怎样做?。谢谢了!
- 如何由查询结果生成ACCESS文件,即生成一个新的表格然后存储成一个mdb文件!
- 如何控制打印一行记录后不走纸
- 询问delphi快速开发的书:我vc用一年,以前没学过delphi,
- 怎样初始化子窗体?
- 遇到一个比较奇怪的问题
- ADOQuery 提交数据后,不及时更新
- 用delphi7 +mapx5.0 ,一直放大的时候会出错
v: TfrView;
b: TfrBandView;
begin
// create ColumnFooter band
b := TfrBandView(frCreateObject(gtBand, ''));
b.SetBounds(0, 20, 0, 20);
b.BandType := btColumnFooter ;
b.Dataset := 'frDBDataSet1';
Page.Objects.Add(b);
// create memo
v := frCreateObject(gtMemo, '');
v.SetBounds(20, 20, 200, 16);
v.Memo.Add('[SUM( <ADOQuery1."'+Trim(ADOQuery2.FieldByName('fields').AsString)+'"> ,MasterData1)]');
Page.Objects.Add(v);
end;