数据如下:
a1   a2
收 100
收 50
支 60
支 80
收 20在报表中有3个memo,其中memo1显示a1字段,memo2显示a1为“收”的a2数据,memo3显示a1为“支”的a2数据,如下:
memo1   memo2  memo3
收      100
收       50
支              60
支              80
收       20请问:要想实现上的报表,条件怎么给(我想在报表设计中加入条件)?在什么地方给?谢谢!!

解决方案 »

  1.   

    我在Page1的OnBeforeprint中写入:
    if [query1."a1"]='收' then memo2.text:=[query1."a2"] else memo2.text.clear;
    if [query1."a1"]='支' then memo3.text:=[query1."a2"] else memo3.text.clear;
    可就是什么都不显示了,不知道如何实现,请教各位高手!!
      

  2.   

    用一个MEMO就可以了。先在FastReport的数据字典里,定义一个变量:MemoStr,将该变量赋给MEMO,在程序外取值,然后调用FastReport就可以了。
    var TmpStr:string;
    begin
    if ADODateSet1.fields('a1').asstring='收' then Tmpstr:=Tmpstr+'收'+dupestring(' ',10)+ADODateSet1.fields('a2').asstring+#13+#10;
    if ADODateSet1.fields('a1').asstring='支' then Tmpstr:=Tmpstr+'支'+dupestring(' ',10)+dupestring(' ',10)+ADODateSet1.fields('a2').asstring+#13+#10;
    frVariables['MemoStr']:=Tmpstr;
    frReport1.ShowReport;
    end;
      

  3.   

    我想在报表中用语句实现,不知可否?
    我觉得在Page1的OnBeforeprint中写入语句应该能行的
      

  4.   

    我在master data的OnBeforeprint中已经实现了,但如何在master data的OnBeforeprint中用语句定义memo2的小数位数呢?
    现在显示是这样的:
    100
    150.12
    12.2
    需要实现:
    100.00
    150.12
    12.20
      

  5.   

    鼠标指向memo2,按右键出快捷菜单,选 "变量格式"----数字---1234.50
    就可以了.