private
    tdept,tflag,tpage:string;
    isprint :boolean;
  public
    { Public declarations }
  end;var
  ccardrpt: Tccardrpt;implementationuses frmpwork, frmccardrpt;{$R *.DFM}procedure Tccardrpt.QRDBText2Print(sender: TObject; var Value: String);
begin
  if value<>tdept then
  begin
    tdept:=value;
    tflag:='Y';
  end;
  if tflag='Y' then
  begin
     value:=value;
     tflag:='N';
  end
  else value:='';
//報表上面有數,但打印不出來!非常急!
{
  if isprint=true then
  value :='';
}
end;procedure Tccardrpt.QRSysData2Print(sender: TObject; var Value: String);
begin   if value<>tpage then
   begin
      tpage:=value;
      tflag:='Y';
   end
   else tflag:='N';end;procedure Tccardrpt.QRLabel14Print(sender: TObject; var Value: String);
begin
  if ccardrptfrm.checkbox2.checked=false then value:='';
end;procedure Tccardrpt.DetailBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
{
  ccardrptfrm.work.Open ;
  if tdept=ccardrptfrm.work.fieldByName('d_desc').AsString then
    isprint :=true
  else
  begin
    tdept:=ccardrptfrm.work.fieldByName('d_desc').AsString ;
    isprint :=false ;
  end;
}
end;end.

解决方案 »

  1.   

    这个有问题吧:
      if value<>tdept then
      begin
        tdept:=value;
        tflag:='Y';
      end;
      if tflag='Y' then
      begin
         value:=value;
         tflag:='N';
      end
      else value:='';
    如果tdept=value and tflag='N',结果就是空的了
      

  2.   

    遇到问题如下:
    有一个分组的RQGROUP对部门分组。
    比如报表上有20条同一个部门的数据,我只想让第一条显示部门,其它的19条都不显示部门,
    也就是说,同部门只打印出一次,我的代码如下:
    procedure Tccardrpt.QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    begin
      tdept :='';
      isprint :=false ;
    end;procedure Tccardrpt.DetailBand1BeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
    begin
      if tdept=frmccardrpt.ccardrptfrm.Query2.FieldByName('d_desc').AsString then
      isprint :=true
      else
      begin
        isprint:=false;
        tdept:=frmccardrpt.ccardrptfrm.Query2.FieldByName('d_desc').AsString;
      end;
    end;end.
    当报表是一页的话就可以,但是假如这个部门的资料有两张报表那么多,那么第二张
    报表第一条没有打印部门名称,也就是说只有第一张报表的第一条记录会打印出部门名称,
    第二张报表的第一条没有打印出部门名称,
    而我现在想实现的是,假如该部门的资料有2张或更多,我只在每一张报表的第一条打印一次
    部门名称(一个部门的资料有很多张)这个问题如何解决。
      

  3.   

    我是把组头里面的 ForceNewPage设为TRUE.的確按部門分頁,但到了第二頁,就打不出來.
    我想要的格式
    -------------------------------------(page 1)
    部門       姓名           工號
    -------------------------------
    c          aaaa           aaaa
               bbbb           bbbb 
               dddd           dddd
    ---------------------------------------(page 2)
    部門       姓名           工號
    -------------------------------
    c          aef           aaaa
               bbefbb        efebbbb 
               dddefed       efedddd
    ---------------------------------------(page 3)部門       姓名           工號
    -------------------------------
    e          aaaa           aaaa
               bbbb           bbbb 
               dddd           dddd
    -----------------------------------------(page 4)
    部門       姓名           工號
    -------------------------------
    e          aasdfsdaa       aaaasdf
               bdfdsbbb        sdfbbbb 
               dsdfddd         dsfdddd現在出問題后的格式
    ------------------------------------------
    -------------------------------------(page 1)
    部門       姓名           工號
    -------------------------------
    c          aaaa           aaaa
               bbbb           bbbb 
               dddd           dddd
    ---------------------------------------(page 2)
    部門       姓名           工號
    -------------------------------
              aef           aaaa
               bbefbb        efebbbb 
               dddefed       efedddd
    ---------------------------------------(page 3)部門       姓名           工號
    -------------------------------
    e          aaaa           aaaa
               bbbb           bbbb 
               dddd           dddd
    -----------------------------------------(page 4)
    部門       姓名           工號
    -------------------------------
               aasdfsdaa       aaaasdf
               bdfdsbbb        sdfbbbb 
               dsdfddd         dsfdddd
    -----------------------------------------------------