📄 grp3.pas
字号:
unit Grp3;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Grids, DBGrids, DB, DBTables, sctctrl, Sctrep, Sctvar,
ExtCtrls, StdCtrls, Buttons, Sctbtn, AcePage;
type
TGroup3 = class(TForm)
OrdSource: TDataSource;
Orders: TTable;
ItemSource: TDataSource;
Items: TTable;
SctReport1: TSctReport;
ReportPage: TSctGrouppage;
ReportHeaderBand: TSctBand;
ReportHeaderBandlevel: TSctLevel;
PageHeaderBand: TSctBand;
PageHeaderBandlevel: TSctLevel;
DetailBand: TSctBand;
DetailBandlevel: TSctLevel;
PageFooterBand: TSctBand;
PageFooterBandlevel: TSctLevel;
ReportFooterBand: TSctBand;
ReportFooterBandlevel: TSctLevel;
svarDateTime: TSctDateTimeVar;
svarPage: TSctPageVar;
DataSourceGuide: TSctDataSourceGuide;
DataSourceGuide1: TSctDataSourceGuide;
ordersORDERNO: TSctdbvar;
ordersCUSTNO: TSctdbvar;
ordersSALEDATE: TSctdbvar;
ordersSHIPDATE: TSctdbvar;
ordersEMPNO: TSctdbvar;
ordersSHIPTOCONTACT: TSctdbvar;
ordersSHIPTOADDR1: TSctdbvar;
ordersSHIPTOADDR2: TSctdbvar;
ordersSHIPTOCITY: TSctdbvar;
ordersSHIPTOSTATE: TSctdbvar;
ordersSHIPTOZIP: TSctdbvar;
ordersSHIPTOCOUNTRY: TSctdbvar;
ordersSHIPTOPHONE: TSctdbvar;
ordersSHIPVIA: TSctdbvar;
ordersPO: TSctdbvar;
ordersTERMS: TSctdbvar;
ordersPAYMENTMETHOD: TSctdbvar;
ordersITEMSTOTAL: TSctdbvar;
ordersTAXRATE: TSctdbvar;
ordersFREIGHT: TSctdbvar;
ordersAMOUNTPAID: TSctdbvar;
itemsORDERNO: TSctdbvar;
itemsITEMNO: TSctdbvar;
itemsPARTNO: TSctdbvar;
itemsQTY: TSctdbvar;
itemsDISCOUNT: TSctdbvar;
ItemBand: TSctSubDataBand;
ItemBandlevel: TSctLevel;
Cust: TSctGroup;
CustHeader: TSctBand;
CustHeaderLevel: TSctLevel;
CustFooter: TSctBand;
CustFooterLevel: TSctLevel;
TextLabel: TSctTextLabel;
varlabel1: TSctvarlabel;
TextLabel1: TSctTextLabel;
Sctvarlabel1: TSctvarlabel;
SctTextLabel1: TSctTextLabel;
SctReportButton1: TSctReportButton;
Part1: TSctExprvar;
Part0: TSctExprvar;
Part2: TSctExprvar;
varlabel: TSctvarlabel;
varlabel2: TSctvarlabel;
varlabel3: TSctvarlabel;
TotalOfitemsQTY: TSctTotalvar;
procedure ItemBandDataStart(Sender: TObject);
procedure ItemBandDataSkip(Sender: TObject);
procedure PartGetData(oVar: TSctvar);
private
{ Private declarations }
parts: array[0..2] of string;
procedure DoGroup(Sender: TObject; IsStart: Boolean);
public
{ Public declarations }
end;
var
Group3: TGroup3;
implementation
{$R *.DFM}
procedure TGroup3.ItemBandDataStart(Sender: TObject);
begin
DoGroup(Sender, True);
end;
procedure TGroup3.ItemBandDataSkip(Sender: TObject);
begin
DoGroup(Sender, False);
end;
procedure TGroup3.DoGroup(Sender: TObject; IsStart: Boolean);
var
Count: Integer;
IsDone: Boolean;
begin
For Count := 0 to 2 do parts[Count] := '';
IsDone:= False;
Count := 0;
while (Count < 3) And Not IsDone do
begin
if (IsStart and (Count = 0)) then
begin
if not items.Eof then items.First
end else
begin
items.Next;
end;
if items.Eof then
begin
IsDone := True;
if Count = 0 then TSctSubDataBand(Sender).DataIsFinished := True;
{Note that we are at end of file, so do not count on any}
{ACE table variables to be correct in the items file}
end;
if not isDone then
parts[Count] := items.FieldByName('PARTNO').AsString;
Inc(Count);
end;
end;
procedure TGroup3.PartGetData(oVar: TSctvar);
begin
oVar.AsString := Parts[oVar.Tag];
if parts[oVar.Tag] = '' then oVar.IsNull := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -