FastReport中根据条件隐藏GroupHeader?急!

li_zhifu 2009-06-16 08:02:46
报表中的GroupHeader,Condition为<frxDBDataset1."学年学期">,当其内容为"毕业生成绩"时隐藏此GroupHeader,但列表不隐藏,急!
...全文
347 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuihan20e 2009-06-16
  • 打赏
  • 举报
回复
楼主用的是哪个版本,另外楼主用的是FastReport还是FreeReport
bdmh 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 li_zhifu 的回复:]
以前用2.4版本的时候,直接在下面输入脚本就行了,但现在这个,我不太明白它的机制,所以还没有
[/Quote]
我没用过4版本以上的,不过我想脚本的功能应该不会变吧
shuihan20e 2009-06-16
  • 打赏
  • 举报
回复
分数很高,先接分,再看问题
li_zhifu 2009-06-16
  • 打赏
  • 举报
回复
以前用2.4版本的时候,直接在下面输入脚本就行了,但现在这个,我不太明白它的机制,所以还没有
骑牛上铂金 2009-06-16
  • 打赏
  • 举报
回复
把脚本贴出来看看!
li_zhifu 2009-06-16
  • 打赏
  • 举报
回复
应该是可以的,顺便说一下,我的FastReport是4.7版本的
bdmh 2009-06-16
  • 打赏
  • 举报
回复
脚本不能解决你的问题吗
li_zhifu 2009-06-16
  • 打赏
  • 举报
回复
答12楼:
因为我用2.4版本的时候,印象中是对对象的属性设置时窗口是上下分开的,下面是简单脚本,几乎是没有什么事件概念的;但现在却是有事件的,那么放在哪个事件里,对象名如何调用,数据值如何访问均与以前大不相同。
而真正最主要的原因是:我已经三四年没动过delphi了:)
bdmh 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 li_zhifu 的回复:]
问题已解决!
iamduo的代码确实不能解决我的问题,但是提供了一个方向。最终代码公布:

Delphi(Pascal) code
procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
if <frxDBDataset1."学年学期"> = '毕业成绩' then
GroupHeader1.Visible := False
else
GroupHeader1.Visible := True;
end;
[/Quote]
这和低版本的脚本编写有何区别呢,楼主当初怎会弄不出呢
li_zhifu 2009-06-16
  • 打赏
  • 举报
回复
问题已解决!
iamduo的代码确实不能解决我的问题,但是提供了一个方向。最终代码公布:

procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
if <frxDBDataset1."学年学期"> = '毕业成绩' then
GroupHeader1.Visible := False
else
GroupHeader1.Visible := True;
end;
iamduo 2009-06-16
  • 打赏
  • 举报
回复
给你一段脚本代码参考。不能直接解决问题。
但是,像你这种话题。除了在 OnManualBuild 中处理,我是没有办法了的。
iamduo 2009-06-16
  • 打赏
  • 举报
回复
procedure ClearAll;
var i:Integer;
begin
for i:=1 to 20 do
begin
TfrxMemoView(MasterData1.FindObject('mm'+IntToStr(i*10+2))).Text:='';
TfrxMemoView(MasterData1.FindObject('mm'+IntToStr(i*10+3))).Text:='';
TfrxMemoView(MasterData1.FindObject('mm'+IntToStr(i*10+4))).Text:='';
TfrxMemoView(MasterData1.FindObject('mm'+IntToStr(i*10+5))).Text:='';
end;
end;

procedure Page1OnManualBuild(Sender: TfrxComponent);
var i,TheCurID:Integer;sMaster,sDetail,s:String;m2,m3,m4,m5:TfrxMemoView;
begin
MasterData1.DataSet.First;
i:=0;
while not MasterData1.DataSet.Eof do
begin
sMaster:=<成品发货单主表."STIID">;
DetailData1.DataSet.First;
while not DetailData1.DataSet.Eof do
begin
sDetail:=<成品发货单明细."STIID">;
if sMaster=sDetail then
begin
inc(i);
TheCurID:=i;
TfrxMemoView(MasterData1.FindObject('mm'+IntToStr(i*10+2))).Text:=<成品发货单明细."Alias">;
TfrxMemoView(MasterData1.FindObject('mm'+IntToStr(i*10+3))).Text:=<成品发货单明细."BaseUnit">;
TfrxMemoView(MasterData1.FindObject('mm'+IntToStr(i*10+4))).Text:=<成品发货单明细."NeedQty">;
TfrxMemoView(MasterData1.FindObject('mm'+IntToStr(i*10+5))).Text:=<成品发货单明细."TrueQty">;
if i=20 then
begin
Engine.ShowBand(MasterData1);
ClearAll;
i:=0;
end;
end;
DetailData1.DataSet.Next;
end;
if TheCurID<>20 then
begin
Engine.ShowBand(MasterData1);
ClearAll;
i:=0;
end;
MasterData1.DataSet.Next;
end;
end;

begin
end.
li_zhifu 2009-06-16
  • 打赏
  • 举报
回复
问题还没解决!提前一下!

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧