⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sctrep.pas

📁 suite component ace report
💻 PAS
📖 第 1 页 / 共 5 页
字号:
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 + -