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.
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.
但是,像你这种话题。除了在 OnManualBuild 中处理,我是没有办法了的。
iamduo的代码确实不能解决我的问题,但是提供了一个方向。最终代码公布:procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
if <frxDBDataset1."学年学期"> = '毕业成绩' then
GroupHeader1.Visible := False
else
GroupHeader1.Visible := True;
end;
因为我用2.4版本的时候,印象中是对对象的属性设置时窗口是上下分开的,下面是简单脚本,几乎是没有什么事件概念的;但现在却是有事件的,那么放在哪个事件里,对象名如何调用,数据值如何访问均与以前大不相同。
而真正最主要的原因是:我已经三四年没动过delphi了:)