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.
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.
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',结果就是空的了
有一个分组的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张或更多,我只在每一张报表的第一条打印一次
部门名称(一个部门的资料有很多张)这个问题如何解决。
我想要的格式
-------------------------------------(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
-----------------------------------------------------