报表中的GroupHeader,Condition为<frxDBDataset1."学年学期">,当其内容为"毕业生成绩"时隐藏此GroupHeader,但列表不隐藏,急!

解决方案 »

  1.   

    应该是可以的,顺便说一下,我的FastReport是4.7版本的
      

  2.   

    楼主用的是哪个版本,另外楼主用的是FastReport还是FreeReport
      

  3.   

    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.
      

  4.   

    给你一段脚本代码参考。不能直接解决问题。
    但是,像你这种话题。除了在 OnManualBuild 中处理,我是没有办法了的。
      

  5.   

    问题已解决!
    iamduo的代码确实不能解决我的问题,但是提供了一个方向。最终代码公布:procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
    begin
      if <frxDBDataset1."学年学期"> = '毕业成绩' then
        GroupHeader1.Visible := False
      else
        GroupHeader1.Visible := True;  
    end;
      

  6.   

    答12楼:
    因为我用2.4版本的时候,印象中是对对象的属性设置时窗口是上下分开的,下面是简单脚本,几乎是没有什么事件概念的;但现在却是有事件的,那么放在哪个事件里,对象名如何调用,数据值如何访问均与以前大不相同。
    而真正最主要的原因是:我已经三四年没动过delphi了:)