fastreport打印时的判断条件(15分)

  • 主题发起人 主题发起人 蜉蝣小生
  • 开始时间 开始时间

蜉蝣小生

Unregistered / Unconfirmed
GUEST, unregistred user!
想按照报表对应的query的值来动态显示报表,如果query该字段的值为0则在报表里对应该字段的memo显示为空,若不为零,对应的memo显示该字段的内容应该怎么实现
 
在BAND里写,如果为0,则MEMO.VISIUAL:=FALSE;
 
怎么在报表里面判断query的值
 
不行啊,我开始把memo的visible设置为false,下面两个过程都有
procedure Memo27OnBeforePrint(Sender: TfrxComponent);
begin
if memo27.Text=0 then
memo27.visible:=true;
end;
procedure DetailData2OnBeforePrint(Sender: TfrxComponent);
begin
if memo27.Text=0 then
memo27.visible:=true;
end;
可是结果时都显示出来了....
 
可以在memo的文本编辑器里写,比喻你要显示Query的一个字段“现金收入”,则双击memo进入文本编辑器,在里面写:
[IF([Query."现金收入"]='0.00','',[Query."现金收入"])]
 
楼上说的我知道
可是我的memo的编辑器里面不只显示一个字段,还有别的,例如
[Query."现金收入"] [Query."金额单位"]
我想达到的效果时如果这个记录的现金收入为零,这个记录对应的这个memo就不显示
 
procedure Memo27OnBeforePrint(Sender: TfrxComponent);
begin
if trim(<qry.'字段名'>)='0' then
memo27.text:='';
end;
 
procedure Memo27OnBeforePrint(Sender: TfrxComponent);
begin
if <Query.&quot;现金收入&quot;
>=0 then
memo27.visible:=true
else
memo27.visible:=false
end;
 
总是会出现 unknow variable or datafield:Query.&quot;现金收入&quot;的错误
以前没哟在fastreport里面写过代码.,感觉无从下手
 
我完整的过程为:
procedure Memo27OnBeforePrint(Sender: TfrxComponent);
begin
if (<frxDBDatasetxifp.''danjianmaozhong''>=null) or (<frxDBDatasetxifp.''danjianmaozhong''>='') or( <frxDBDatasetxifp.''danjianmaozhong''>='0') then
memo27.visible:=false
else
memo27.visible:=true;
end;
其中frxDBDatasetxifp为memo27对应的dataset,我换成对应的query也同样会出现上面的错误
 
Memo27输入
[zt] 即可
如下:
var
zt : String ;
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
zt :=<test.&quot;字段名&quot;> ;
//注:test为frxDBDataset的UserName属性值
if zt = '0' then
zt := ''
end;
 
在该MEMO的band里写
IF [Query.&quot;现金收入&quot;]=0 then

MEMO.VISIBLE:=FALSE
else
MEMO.VISIBLE:=TRUE;
 
多人接受答案了。
 

Similar threads

回复
0
查看
804
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部