rm_class.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,744 行 · 第 1/5 页

PAS
1,744
字号
    property RotationType;
    property ScaleFontType;
    property FontScaleWidth;
    property WordWrap;
    property WordBreak;
    property AutoWidth;
    property RepeatedOptions;
    property PrintAtAppendBlank;
    property ExportAsNumber;
    property DataField;
  end;

  { TRMCalcOptions }
  TRMCalcOptions = class(TPersistent)
  private
    FParentView: TRMView;
    FCalcType: TRMDBCalcType;
    FAggrBandName: string;
    FResetAfterPrint: Boolean;
    FFilter: string;
    FIntalizeValue: string;
    FAggregateValue: string;
    FResetGroupName: string;

    function GetTotalCalc: Boolean;
    procedure SetTotalCalc(Value: Boolean);
    function GetCalcNoVisible: Boolean;
    procedure SetCalcNoVisible(Value: Boolean);
    function GetMemo: TStrings;
    procedure SetMemo(Value: TStrings);
  public
    constructor Create(aView: TRMView);
  published
    property CalcType: TRMDBCalcType read FCalcType write FCalcType;
    property Filter: string read FFilter write FFilter;
    property ResetAfterPrint: Boolean read FResetAfterPrint write FResetAfterPrint;
    property ResetGroupName: string read FResetGroupName write FResetGroupName;
    property AggrBandName: string read FAggrBandName write FAggrBandName;
    property TotalCalc: Boolean read GetTotalCalc write SetTotalCalc;
    property CalcNoVisible: Boolean read GetCalcNoVisible write SetCalcNoVisible;
    property IntalizeValue: string read FIntalizeValue write FIntalizeValue;
    property AggregateValue: string read FAggregateValue write FAggregateValue;
    property Memo: TStrings read GetMemo write SetMemo;
  end;

  { TRMCalcMemoView }
  TRMCalcMemoView = class(TRMCustomMemoView)
  private
    FValueIndex: Integer;
    FValues: TStringList;
    FOPZFilter: string;
    FResAssigned: Boolean;
    FValue: Double;
    FCurrencyValue: Currency;
    FSum: Double;
    FCount: Integer;
    FExpression: string;
    FCalcOptions: TRMCalcOptions;
    FResultExpression: string;
    FResetGroupBand: TRMView;
    //dejoy added begin
    FLastMasterViewValue: Variant; //masterview的最后一个值
    FLastAggValue: Double; //合计文本框的最后一个值
    //dejoy added end

    function GetValue: Double;
    procedure AfterPrint(aIsHeaderBand: Boolean);
    procedure ResetValues;
    procedure OnResetAfterPrintClick(Sender: TObject);

    procedure SetResultExpression(Value: string);
    function GetOutBigNum: Boolean;
    procedure SetOutBigNum(Value: Boolean);
  protected
    function GetPropValue(aObject: TObject; aPropName: string;
      var aValue: Variant; Args: array of Variant): Boolean; override;
    function SetPropValue(aObject: TObject; aPropName: string;
      aValue: Variant): Boolean; override;

    procedure Prepare; override;
    procedure ExpandMemoVariables; override;
    procedure PlaceOnEndPage(aStream: TStream); override;
    procedure Reset;
    procedure DoAggregate;

    property Expression: string read FExpression write FExpression;
  public
    constructor Create; override;
    destructor Destroy; override;

    procedure LoadFromStream(aStream: TStream); override;
    procedure SaveToStream(aStream: TStream); override;
    procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;
  published
    property CalcOptions: TRMCalcOptions read FCalcOptions write FCalcOptions;

    property IsCurrency;
    property RotationType;
    property ScaleFontType;
    property FontScaleWidth;
    property WordWrap;
    property WordBreak;
    property AutoWidth;
    property RepeatedOptions;
    property PrintAtAppendBlank;
    property ExportAsNumber;
    property OutBigNum: Boolean read GetOutBigNum write SetOutBigNum;
    property ResultExpression: string read FResultExpression write SetResultExpression;
  end;

  TRMBlobType = (rmbtBitmap, rmbtMetafile, rmbtIcon, rmbtJPEG, rmbtGIF, rmbtAuto);
  TRMPictureFormat = (rmpfBorland, rmpfMicrosoft, rmpfAuto);

  { TRMPictureView }
  TRMPictureView = class(TRMReportView)
  private
    FPicture: TPicture;
    FPictureSource: TRMPictureSource;
    FBlobType: TRMBlobType;
    FPictureFormat: TRMPictureFormat;

    procedure OnPictureStretchedClick(Sender: TObject);
    procedure OnPictureCenterClick(Sender: TObject);
    procedure OnKeepAspectRatioClick(Sender: TObject);

    function GetPictureCenter: Boolean;
    procedure SetPictureCenter(const value: Boolean);
    function GetPictureRatio: Boolean;
    procedure SetPictureRatio(value: Boolean);
    function GetPictureStretched: Boolean;
    procedure SetPictureStretched(value: Boolean);
    function GetDirectDraw: Boolean;
    procedure SetDirectDraw(Value: Boolean);
  protected
    function GetPropValue(aObject: TObject; aPropName: string; var aValue: Variant;
      Args: array of Variant): Boolean; override;
    function SetPropValue(aObject: TObject; aPropName: string; aValue: Variant): Boolean; override;

    procedure ClearContents; override;
    procedure PlaceOnEndPage(aStream: TStream); override;
    procedure GetBlob; override;
    function GetViewCommon: string; override;
  public
    constructor Create; override;
    destructor Destroy; override;

    procedure LoadFromStream(aStream: TStream); override;
    procedure SaveToStream(aStream: TStream); override;
    procedure Draw(aCanvas: TCanvas); override;
    procedure ShowEditor; override;
    procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;
  published
    property BlobType: TRMBlobType read FBlobType write FBlobType;
    property PictureFormat: TRMPictureFormat read FPictureFormat write FPictureFormat;
    property DataField;
    property Picture: TPicture read FPicture;
    property PictureCenter: Boolean read GetPictureCenter write SetPictureCenter;
    property PictureRatio: Boolean read GetPictureRatio write SetPictureRatio;
    property PictureStretched: Boolean read GetPictureStretched write SetPictureStretched;
    property Transparent;
    property DirectDraw: Boolean read GetDirectDraw write SetDirectDraw;
    property PictureSource: TRMPictureSource read FPictureSource write FPictureSource;
    property ReprintOnOverFlow;
    property ShiftWith;
    property BandAlign;
    property FillColor;
    property LeftFrame;
    property TopFrame;
    property RightFrame;
    property BottomFrame;
    property ExpressionDelimiters;
    property Url;
  end;

  { TRMShapeView }
  TRMShapeView = class(TRMReportView)
  private
    FShape: TRMShapeType;
    FPen: TPen;
    FBrush: TBrush;

    procedure DrawShape;
    procedure SetPen(Value: TPen);
    procedure SetBrush(Value: TBrush);
  protected
    function GetViewCommon: string; override;
  public
    class function CanPlaceOnGridView: Boolean; override;
    constructor Create; override;
    destructor Destroy; override;
    procedure Draw(aCanvas: TCanvas); override;
    procedure LoadFromStream(aStream: TStream); override;
    procedure SaveToStream(aStream: TStream); override;
    procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;
  published
    property Shape: TRMShapeType read FShape write FShape;
    property Pen: TPen read FPen write SetPen;
    property Brush: TBrush read FBrush write SetBrush;
    property ReprintOnOverFlow;
    property ShiftWith;
    property StretchWith;
    property FillColor;
    property LeftFrame;
    property TopFrame;
    property RightFrame;
    property BottomFrame;
    property Printable;
    property Url;
  end;

  { TRMOutlineView }
  TRMOutlineView = class(TRMReportView)
  private
    FCaption: string;
    FPageNo: Integer;
    FLevel: Integer;

    function GetOutlineText: string;
  protected
    procedure Prepare; override;
    procedure PlaceOnEndPage(aStream: TStream); override;
  public
    constructor Create; override;
    destructor Destroy; override;

    procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;
    procedure LoadFromStream(aStream: TStream); override;
    procedure SaveToStream(aStream: TStream); override;
    procedure Draw(aCanvas: TCanvas); override;

    property OutlineText: string read GetOutlineText;
  published
  end;

  { TRMSubReportView }
  TRMSubReportView = class(TRMReportView)
  private
    FSubPage: Integer;
    FSubReportType: TRMSubReportType;
    FCanPrint: Boolean;

    function GetPage: TRMReportPage;
    function GetReprintLastPage: Boolean;
    procedure SetReprintLastPage(Value: Boolean);
  protected
    procedure Prepare; override;
    function GetViewCommon: string; override;
  public
    class function CanPlaceOnGridView: Boolean; override;
    constructor Create; override;
    destructor Destroy; override;
    procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;

    procedure LoadFromStream(aStream: TStream); override;
    procedure SaveToStream(aStream: TStream); override;
    procedure Draw(aCanvas: TCanvas); override;
    property SubPage: Integer read FSubPage write FSubPage;
    property Page: TRMReportPage read GetPage;
  published
    property SubReportType: TRMSubReportType read FSubReportType write FSubReportType;
    property ReprintLastPage: Boolean read GetReprintLastPage write SetReprintLastPage;
  end;

  { TRMCustomBandView }
  TRMCustomBandView = class(TRMReportView)
  private
    FFont: TFont;
    FBandType: TRMBandType;
    FIsVirtualDataSet: Boolean;
    FIsVirtualCrossDataSet: Boolean;
    FDataSetName: string;
    FCrossDataSetName: string;
    FLinesPerPage: Integer;
    FNewPageCondition: string;
    FRangeBegin: TRMRangeBegin;
    FRangeEnd: TRMRangeEnd;
    FRangeEndCount: Integer;
    FmmColumnGap: Integer;
    FColumns: Integer;
    FmmColumnWidth, FmmColumnOffset: Integer;
    FGroupCondition: string;
    FChildBandName: string;
    FOnAfterPrint: TNotifyEvent;
    FFlags1: LongWord;
    FMasterBand: string;
    FDataBandName: string;
    FOutlineText: string;

    procedure OnNewPageAfterClick(Sender: TObject);
    procedure OnPrintIfSubsetEmptyClick(Sender: TObject);
    procedure OnPageBreakedClick(Sender: TObject);
    procedure OnPrintOnFirstPageClick(Sender: TObject);
    procedure OnPrintOnLastPageClick(Sender: TObject);
    procedure OnReprintOnNewPageClick(Sender: TObject);
    procedure OnAutoAppendBlankClick(Sender: TObject);
    procedure OnStretchedClick(Sender: TObject);
    procedure OnKeepFooterClick(Sender: TObject);
    procedure OnKeepTogetherClick(Sender: TObject);
    procedure OnKeepChildClick(Sender: TObject);

    procedure SetCrossDataSetName(Value: string);
    procedure SetFont(Value: TFont);
    function GetPrintOnFirstPage: Boolean;
    procedure SetPrintOnFirstPage(Value: Boolean);
    function GetPrintOnLastPage: Boolean;
    procedure SetPrintOnLastPage(Value: Boolean);
    function GetPrintIfSubsetEmpty: Boolean;
    procedure SetPrintIfSubsetEmpty(Value: Boolean);
    function GetAutoAppendBlank: Boolean;
    procedure SetAutoAppendBlank(Value: Boolean);
    function GetNewPageAfter: Boolean;
    procedure SetNewPageAfter(Value: Boolean);
    function GetNewPageBefore: Boolean;
    procedure SetNewPageBefore(Value: Boolean);
    function GetPageBreaked: Boolean;
    procedure SetPageBreaked(Value: Boolean);
    function GetHideIfEmpty: Boolean;
    procedure SetHideIfEmpty(Value: Boolean);
    function GetReprintOnNewPage: Boolean;
    procedure SetReprintOnNewPage(Value: Boolean);
    function GetReprintOnNewColumn: Boolean;
    procedure SetReprintOnNewColumn(Value: Boolean);
    function GetKeepFooter: Boolean;
    procedure SetKeepFooter(Value: Boolean);
    function GetKeepTogether: Boolean;
    procedure SetKeepTogether(Value: Boolean);
    function GetKeepChild: Boolean;
    procedure SetKeepChild(Value: Boolean);
    function GetPrintatDesignPos: Boolean;
    procedure SetPrintatDesignPos(Value: Boolean);
    function GetspColumnGap(index: Integer): Integer;
    procedure SetspColumnGap(index: Integer; Value: Integer);
    function GetColumnGap(index: Integer): Double;
    procedure SetColumnGap(index: Integer; Value: Double);
    function GetPrintColumnFirst: Boolean;
    procedure SetPrintColumnFirst(Value: Boolean);
    function GetPrintBeforeSummaryBand: Boolean;
    procedure SetPrintBeforeSummaryBand(Value: Boolean);
    function GetPrintChildIfInvisible: Boolean;
    procedure SetPrintChildIfInvisible(Value: Boolean);
    procedure SetChildBandName(Value: string);
    function GetAdjustColumns: Boolean;
    procedure SetAdjustColumns(Value: Boolean);

    procedure SetGroupHeaderBandName(Value: string);
    procedure SetDataSetName(Value: string);
    procedure SetMasterBand(Value: string);
    procedure SetDataBandName(Value: string);
    procedure SetGroupCondition(Value: string);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?