📄 sctrep.pas
字号:
protected
procedure SetParent(AParent: TWinControl); override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure ChangeScale(M, D: Integer); override;
procedure Loaded; override;
procedure SetMinimized(min: Boolean);
function PromptPrint(pg: TSctPage): boolean; virtual;
procedure DefineProperties(Filer: TFiler); override;
procedure ReadIntValue( Reader: TReader);
procedure WriteIntValue( Writer: TWriter);
procedure ReadSAlign( Reader: TReader);
procedure WriteSAlign( Writer: TWriter);
procedure ReadVersion( Reader: TReader);
procedure WriteVersion( Writer: TWriter);
procedure SetPixelsPerInch(ppi: Integer);
procedure BeforePrint; virtual;
procedure AfterPrint; virtual;
function DoOnPromptPrint(pg: TSctPage): Boolean;
procedure WriteState(Writer: TWriter); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
function GetAllowDelete: Boolean;
property OkDelete: Boolean read GetAllowDelete;
procedure Run;
procedure RemovePage(pg: TSctPage);
procedure InsertPage(pg: TSctPage);
procedure ToolAddPage(Sender: TObject);
property Pages: TList read FPages write FPages;
property Page: TSctPage read FPage write FPage;
procedure UpdateStatus( pg: Integer );
property MinMaxButton: TSctNoScaleBtn read FMinMaxButton write FMinMaxButton;
property PageManButton: TSctNoScaleBtn read FPageManButton write FPageManButton;
property AutoLabelButton: TSctNoScaleBtn read FAutoLabelButton write FAutoLabelButton;
property RunButton: TSctNoScaleBtn read FRunButton write FRunButton;
property SelectButton: TSctNoScaleBtn read FSelectButton write FSelectButton;
property DataButton: TSctNoScaleBtn read FDataButton write FDataButton;
procedure MinMaxClick(Sender: TObject);
procedure PageManClick(Sender: TObject);
procedure AutoLabelClick(Sender: TObject);
procedure RunClick(Sender: TObject);
procedure AlignClick(Sender: TObject);
procedure RunButtonMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure SelectButtonMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure SelectClick(Sender: TObject);
procedure DataClick(Sender: TObject);
procedure ReportClick(Sender: TObject);
procedure PositionButtons;
property CancelPrintJob: Boolean read FCancelPrintJob write FCancelPrintJob;
property PixelsPerInch: Integer read FPixelsPerInch write SetPixelsPerInch;
property STop: Integer read FSTop write FSTop;
property SLeft: Integer read FSLeft write FSLeft;
property SWidth: Integer read FSWidth write FSWidth;
property SHeight: Integer read FSHeight write FSHeight;
property MTop: Integer read FMTop write FMTop;
property MLeft: Integer read FMLeft write FMLeft;
property SAlign: TAlign read FSAlign write FSAlign;
property Version: TSctVersion read FVersion write FVersion;
procedure AbortReport;
property Printing: Boolean read FPrinting write FPrinting;
function InitReport: Boolean;
procedure EndReport;
procedure Process;
procedure ProcessReport;
property TopRuler: TSctRuler read FTopRuler write FTopRuler;
property LeftRuler: TSctRulerContainer read FLeftRuler write FLeftRuler;
procedure Redraw;
published
property Minimized: Boolean read FMinimized write SetMinimized;
property Prompt: Boolean read FPrompt write FPrompt;
property AutoRun: Boolean read FAutoRun write FAutoRun;
property OnPromptPrint: TSctPromptPrintEvent read FOnPromptPrint write FOnPromptPrint;
property OnBeforePrint: TSctReportPrintEVent read FOnBeforePrint write FOnBeforePrint;
property OnAfterPrint: TSctReportPrintEVent read FOnAfterPrint write FOnAfterPrint;
property SuppressStatus: Boolean read FSuppressStatus write FSuppressStatus;
end;
{ TSctSubBand }
TSctSubBand = class(TSctBand)
private
FAbove: Boolean;
protected
procedure SetParent(AParent: TWinControl); override;
procedure SetAbove(ab: Boolean); virtual;
function GetMainBand: TSctBand; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Band;
property Order;
property Above: Boolean read FAbove write SetAbove;
end;
{ TSctOverlayBand }
TSctOverlayBand = class(TSctBand)
private
FFirst: Boolean;
FTopOffset, FLeftOffset: Integer;
FUseMargins: Boolean;
protected
procedure SetParent(AParent: TWinControl); override;
procedure SetFirst(f: Boolean); virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property First: Boolean read FFirst write SetFirst default True;
property Order;
property TopOffset: Integer read FTopOffset write FTopOffset default 0;
property LeftOffset: Integer read FLeftOffset write FLeftOffset default 0;
property UseMargins: Boolean read FUseMargins write FUseMargins default True;
end;
{ TSctBandAfterSkipEvent }
TSctBandAfterSkipEvent = procedure (Band: TSctSubDataBand) of object;
{ TSctSubDataBand }
TSctSubDataBand = class(TSctBand)
private
{$ifdef AceBDE}
FDataSet: TDataSet;
FDataLink: TDataLink;
{$endif}
FDataIsFinished: Boolean;
FOnDataStart, FOnDataSkip, FOnDataFinish: TNotifyEvent;
FDataRange: TSctDataRange;
FCloseDataSet: Boolean;
FOnAfterDataSkip: TSctBandAfterSkipEvent;
FOnDataFilter: TSctDataFilterEvent;
protected
procedure SetParent(AParent: TWinControl); override;
function GetMainBand: TSctBand; override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
{$ifdef AceBDE}
function GetDataSource: TDataSource;
procedure SetDataSource(Value: TDataSource);
function GetDataSet: TDataSet;
procedure DefineProperties(Filer: TFiler); override;
procedure ReadDS( Reader: TReader);
{$endif}
function DoOnDataFilter: Boolean;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure DataStart;
procedure DataSkip;
procedure DataFinish;
procedure AfterDataSkip;
property DataIsFinished: Boolean read FDataIsFinished write FDataIsFinished;
{$ifdef AceBDE}
property DataLink: TDataLink read FDataLink write FDataLink;
property DataSet: TDataSet read GetDataSet write FDataSet;
{$endif}
published
property Band;
property Order;
property CloseDataSet: Boolean read FCloseDataset write FCloseDataset;
property DataRange: TSctDataRange read FDataRange write FDataRange;
{$ifdef AceBDE}
property DataSource: TDataSource read GetDataSource write SetDataSource;
{$endif}
property OnDataStart: TNotifyEvent read FOnDataStart write FOnDataStart;
property OnDataSkip: TNotifyEvent read FOnDataSkip write FOnDataSkip;
property OnDataFinish: TNotifyEvent read FOnDataFinish write FOnDataFinish;
property OnAfterDataSkip: TSctBandAfterSkipEvent read FOnAfterDataSkip write FOnAfterDataSkip;
property OnDataFilter: TSctDataFilterEvent read FOnDataFilter write FOnDataFilter;
end;
{ TSctDataHeadBand }
TSctDataHeadBand = class(TSctBand)
private
protected
procedure SetParent(AParent: TWinControl); override;
function GetMainBand: TSctBand; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Band;
end;
{ TSctDataFootBand }
TSctDataFootBand = class(TSctDataHeadBand)
private
protected
public
published
end;
TSctDataSourceGuide = class(TSctDSGuide)
end;
{TSctPage}
TSctPage = class(TScrollBox)
private
FReport: TSctReport;
FLabels, FVars, FTotalVars, FBands, FBandHeads: TList;
FLevels: TList;
FPrintTo: TAceOutput;
FxPos, FyPos: Integer;
FAllowDelete: Boolean;
FClipLabels: Boolean;
FPageName: String;
FOrder: Integer;
FPageManager: TForm;
FPageSetup: TSctPageSetup;
FStartDateTime: TDateTime;
FPixelsPerInch: Integer;
FAbortPrinting: Boolean;
FPageNumber, FPagesPrinted, FPgNum: Integer;
FPageState: TSctPageState;
SaveUnits: TSctUnits;
FBorderType: TSctBorderType;
FOutputType: TSctOutputType;
FPercentDone: Single;
FAceViewer: TAceViewer;
FTwoPass: Boolean;
FOnPreview: TNotifyEvent;
FOnUpdateStatus: TSctOnUpdateStatus;
FOnUpdate: TNotifyEvent;
FAceFileName: String;
FDescription: String;
FPageCount: Integer;
FCanvas: TAceCanvas;
FAcePrinter: TAcePrinter;
FOnNewPage: TSctOnNewPage;
FOnBeforeNewPage: TSctOnBeforeNewPage;
FOnAfterDataSkip: TSctPageAfterSkipEvent;
{$ifdef AceBDE}
FDataSet: TDataSet;
FDataLink: TDataLink;
{$endif}
FDetail, FHead, FFoot, FPageHead, FPageFoot: TSctBand;
FDataSourceList: TList;
FGroups: TList;
FDataIsFinished: Boolean;
FOnDataStart, FOnDataSkip, FOnDataFinish: TNotifyEvent;
FOnDataFilter: TSctDataFilterEvent;
FOmitLastPgFt: Boolean;
FDataRange: TSctDataRange;
FCloseDataSet: Boolean;
FGroupList, FPageList, FMainList: TList;
FPFHeight: Integer;
FSubBands, FSubDataBands, FDataHFBands: TList;
FOverLayBands: TList;
FOverLayList: TList;
FirstNewPage: Boolean;
FirstBorder, PrintedHead: Boolean;
FLastPagePos: Integer;
FGroupPageState: TSctGroupPageState;
FAtGroupLevel: Integer;
FPrintDataList: TList;
FPrintList: TList;
FUpdateBandLevelList: TList;
FPen: TPen;
FContinuous: Boolean;
FRtf: TSctRtfFile;
FRtfFile: String;
FFullDSList: TList;
FFullDSNames: TStringList;
FNoDsgList: TStringList;
FInUpdateDataLists: Boolean;
FSkipped: LongInt;
FRecords: LongInt;
FLetUpdateDataList: Boolean;
FPrinting: Boolean;
FFirstTime: Boolean;
FInProcess: Boolean;
FNoDataQuit: Boolean;
FOnNoData: TNotifyEvent;
FNoRecordCount: Boolean;
{$ifdef AceBDE}
FDataSourceManager: TAceDataSourceManager;
FCloseDataSources: Boolean;
{$endif}
FGroupPageBreaks: Boolean;
procedure BandListSaveNewPage(Band: TSctBand; Value: Boolean);
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
procedure WMSize(var Message: TWMSize); message WM_SIZE;
procedure GPUpdateVarList(var Message: TGPUpdateVarList); message GP_UpdateVarList;
procedure SCTAddBands( var Message: TSctAddBands ); message SCT_AddBands;
protected
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure Loaded; override;
function getpagewidth: Integer;
function getpageheight: Integer;
function getppi: Integer;
procedure SetParent(AParent: TWinControl); override;
function GetPrintOk: Boolean;
procedure DefineProperties(Filer: TFiler); override;
procedure ReadOrder(Reader: TReader);
procedure WriteOrder( Writer: TWriter);
procedure ReadNoDsgList(Reader: TReader);
procedure WriteNoDsgList( Writer: TWriter);
function GetUnits: TSctUnits;
function GetCanvas: TAceCanvas;
procedure Preview;
procedure PrintingStatus(Sender: TObject);
procedure SetBandLabels(bd: TSctBand; bh: TSctBandHead);
procedure AfterDataSkip;
procedure DataStart;
procedure DataSkip;
procedure DataFinish;
{$ifdef AceBDE}
function GetDataSource: TDataSource;
procedure SetDataSource(Value: TDataSource);
function GetDataSet: TDataSet;
procedure ReadDS( Reader: TReader);
{$endif}
function DoOnDataFilter: Boolean;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Redraw; virtual;
procedure Run; virtual;
procedure PaintArrow(Sender: TObject); virtual;
procedure FlipNewPage( Sender: TObject );
procedure FlipNewPageRepeat( Sender: TObject );
procedure FlipStretch( Sender: TObject );
procedure PageStart;
procedure PageEnd;
property Canvas: TAceCanvas read GetCanvas write FCanvas;
procedure BeginDoc;
procedure EndDoc;
procedure MoveTo(x,y: Integer);
procedure LineTo(x,y: Integer);
procedure FillRect(Rect: TRect);
{ procedure SetTextAlign(Flags: Word);
procedure TextOut(x,y: Integer; const Text: string);
procedure ExtTextOut(x,y: Integer; Options: Word; Rect: TRect; Text: PChar; Count: word);
procedure PTextOut(x,y: Integer; Text: PChar; Count: LongInt);
procedure TextRect(rect: TRect; x,y: Integer; const Text: string; Clip: Boolean);
procedure SetFont(Font: TFont);
procedure SetBrush(Brush: TBrush);
procedure SetPen(Pen: TPen);
procedure Rectangle(x1,y1,x2,y2: Integer);
procedure LineRect(x1,y1,x2,y2: Integer);
procedure RoundRect(x1,y1,x2,y2,x3,y3: Integer);
procedure Ellipse(x1,y1,x2,y2: Integer);
procedure Draw(x,y: Integer; Graphic: TGraphic);
procedure StretchDraw(Rect: TRect; Graphic: TGraphic);
}
property XPos: Integer read FxPos write FxPos;
property YPos: Integer read FyPos write FyPos;
property PageNumber: Integer read FPageNumber write FPageNumber;
property PagesPrinted: Integer read FPagesPrinted write FPagesPrinted;
property PrintOk: Boolean read GetPrintOk;
procedure Position(x, y: Integer);
procedure NewPage; virtual;
procedure InsertLabel(oLabel: TSctLabel);
procedure RemoveLabel(oLabel: TSctLabel);
procedure InsertVar(oVar: TSctvar);
procedure RemoveVar(oVar: TSctvar);
procedure InsertLevel(level: TSctLevel);
procedure RemoveLevel(level: TSctLevel);
procedure InsertBand(bd: TSctBand); virtual;
procedure RemoveBand(bd: TSctBand); virtual;
property Labels: TList read FLabels write FLabels;
procedure UpdateVars(Level: TSctLevel); virtual;
property PrintTo: TAceOutput read FPrintTo write FPrintTo;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
procedure ArrangeBands; virtual;
procedure OrderBands; virtual;
procedure FlipVisible( sender: TObject); virtual;
property Bands: TList read FBands write FBands;
property BandHeads: TList read FBandHeads write FBandHeads;
property Levels: TList read FLevels write FLevels;
procedure SafeDelete;
function GetAllowDelete: Boolean;
property AllowDelete: Boolean read FAllowDelete write FAllowDelete;
property OkDelete: Boolean read GetAllowDelete;
procedure SetPageName(Name: String); virtual;
procedure SetOrder(Pos: Integer); virtual;
property PageName: String read FPageName write SetPageName;
property TotalVars: TList read FTotalVars write FTotalVars;
property VarList: TList read FVars write FVars;
procedure UpdateVarList; virtual;
property PageWidth: Integer read GetPageWidth;
property PageHeight: Integer read GetPageHeight;
property PageManager: TForm read FPageManager write FPageManager;
procedure VarMarkUpdate(Level: TSctLevel; Update: TSctUpdateMode);
procedure UpdateData;
property StartDateTime: TDateTime read FStartDateTime write FStartDateTime;
procedure UpdateStatus(Stat: TSctStatus); virtual;
property PixelsPerInch: Integer read GetPPI write FPixelsPerInch;
property AbortPrinting: Boolean read FAbortPrinting write FAbortPrinting;
property Order: Integer read FOrder write SetOrder;
property PageState: TSctPageState read FPageState write FPageState;
property Units: TSctUnits read GetUnits;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -