rm_dsggridreport.pas

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

PAS
2,209
字号
    // PopMenu
    SelectionMenu: TRMPopupMenu;
    PopupMenu1: TRMPopupMenu;
    PopupMenuBands: TRMPopupMenu;

    itmGridMenuBandProp: TRMMenuItem;
    itmCellProp: TRMMenuItem;
//    itmSplit1: TRMSeparatorMenuItem;
    itmMergeCells: TRMMenuItem;
    itmSplitCells: TRMMenuItem;
    N3: TRMSeparatorMenuItem;
    itmInsert: TRMSubmenuItem;
    itmInsertLeftColumn: TRMMenuItem;
    itmInsertRightColumn: TRMMenuItem;
    N10: TRMSeparatorMenuItem;
    itmInsertTopRow: TRMMenuItem;
    itmInsertBottomRow: TRMMenuItem;
    itmSep1: TRMSeparatorMenuItem;
    itmInsertLeftCell: TRMMenuItem;
    itmInsertTopCell: TRMMenuItem;
    itmDelete: TRMSubmenuItem;
    itmDeleteColumn: TRMMenuItem;
    itmDeleteRow: TRMMenuItem;
    itmDeleteSep1: TRMSeparatorMenuItem;
    itmDeleteLeftCell: TRMMenuItem;
    itmDeleteTopCell: TRMMenuItem;
    N6: TRMSeparatorMenuItem;
    itmCellType: TRMSubmenuItem;
    itmMemoView: TRMMenuItem;
    itmCalcMemoView: TRMMenuItem;
    itmPictureView: TRMMenuItem;
    itmSubReportView: TRMMenuItem;
    itmInsertBand: TRMSubmenuItem;
    itmSelectBand: TRMSubmenuItem;
    N4: TRMSeparatorMenuItem;
    itmFrameType: TRMMenuItem;
    itmEdit: TRMMenuItem;
    padpopClearContents: TRMMenuItem;
    padpopOtherProp: TRMMenuItem;
    N100: TRMSeparatorMenuItem;
    SelectionMenu_popCut: TRMMenuItem;
    SelectionMenu_popCopy: TRMMenuItem;
    SelectionMenu_popPaste: TRMMenuItem;
//    N101: TRMSeparatorMenuItem;
    N102: TRMSeparatorMenuItem;

    Popup1: TRMPopupMenu;
    padpopCut: TRMMenuItem;
    padpopCopy: TRMMenuItem;
    padpopPaste: TRMMenuItem;
    padpopDelete: TRMMenuItem;
    padpopSelectAll: TRMMenuItem;
    MenuItem1: TRMSeparatorMenuItem;
    padpopEdit: TRMMenuItem;

    // ToolbarPopMenu
    ToolbarPopMenu: TRMPopupMenu;

    ToolbarPopStandard: TRMMenuItem;
    ToolbarPopEdit: TRMMenuItem;
    ToolbarPopBorder: TRMMenuItem;
    ToolbarPopInsp: TRMMenuItem;
    ToolbarPopInsDBField: TRMMenuItem;
    ToolbarPopGrid: TRMMenuItem;
    ToolbarPopCellEdit: TRMMenuItem;

    //dejoy add end
    ToolbarStandard: TRMToolbarStandard;
    ToolbarEdit: TRMToolbarEdit;
    ToolbarBorder: TRMToolbarBorder;
    ToolbarGrid: TRMToolbarGrid;
    ToolbarCellEdit: TRMToolbarCellEdit;

    FUndoBusy: Boolean;
    FUndoBuffer, FRedoBuffer: TRMUndoBuffer;
    FUndoBufferLength, FRedoBufferLength: Integer;

    procedure padSearchFindClick(Sender: TObject);
    procedure padSearchReplaceClick(Sender: TObject);
    procedure padSearchFindAgainClick(Sender: TObject);
    //    procedure FindNext;
    //    procedure Replace_FindNext;

    procedure ToolBarPopMenuPopup(Sender: TObject);
    procedure itmInsertLeftCellClick(Sender: TObject);
    procedure itmInsertTopCellClick(Sender: TObject);
    procedure itmDeleteLeftCellClick(Sender: TObject);
    procedure itmDeleteTopCellClick(Sender: TObject);

    procedure SetObjectsID;
    procedure ClearUndoBuffer;
    procedure ClearRedoBuffer;
    procedure ReleaseAction(aActionRec: PRMUndoRec);
    procedure AddAction(aBuffer: PRMUndoBuffer; aAction: TRMUndoAction; aObject: TObject; aRec: PRMUndoRec);
    procedure Undo(aBuffer: PRMUndoBuffer);

    procedure btnColumnMinClick(Sender: TObject);
    procedure btnColumnMaxClick(Sender: TObject);
    procedure btnRowMinClick(Sender: TObject);
    procedure btnRowMaxClick(Sender: TObject);
    procedure btnDBFieldClick(Sender: TObject);
    procedure btnExpressionClick(Sender: TObject);
    procedure DoClick(Sender: TObject);

    function HaveBand(aBandType: TRMBandType): Boolean;
    procedure SetGridProp;
    procedure SetGridNilProp;
    procedure RefreshProp;
    procedure Localize;
    procedure SaveIni;
    procedure LoadIni;
    procedure Pan5Click(Sender: TObject);
    procedure OnDockRequestDockEvent(Sender: TObject; Bar: TRMCustomDockableWindow; var Accept: Boolean);

    procedure SelectObject(aObjName: string);
    procedure OnInspBeforeModify(Sender: TObject; const aPropName: string);
    procedure OnInspAfterModify(Sender: TObject; const aPropName, aPropValue: string);
    procedure InspSelectionChanged(ObjName: string);
    procedure InspGetObjects(aList: TStrings);
    procedure FillInspFields;
    procedure SetGridHeader;
    procedure OnGridDblClickEvent(Sender: TObject);
    procedure OnGridClick(Sender: TObject);
    procedure OnGridChange(Sender: TObject);
    procedure OnGridDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure OnGridDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState;
      var Accept: Boolean);
    procedure OnGridRowHeaderClick(Sender: TObject);
    procedure OnGridRowHeaderDblClick(Sender: TObject);
    procedure OnGridBeginSizingCell(Sender: TObject);
    procedure OnGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure OnGridBeforeChangeCell(aGrid: TRMGridEx; aCell: TRMCellInfo);
    procedure Popup1Popup(Sender: TObject);
    procedure SelectionMenuPopup(Sender: TObject);
    procedure itmGridMenuBandClick(Sender: TObject);
    procedure OnAddBandEvent(Sender: TObject);

    function _GetSelectionStatus: TRMSelectionStatus;
    function _DelEnabled: Boolean;
    function _CutEnabled: Boolean;
    function _CopyEnabled: Boolean;
    function _PasteEnabled: Boolean;
    procedure OpenFile(aFileName: string);
    function FileSave: Boolean;
    function FileSaveAs: Boolean;
    procedure SetOpenFileMenuItems(const aNewFile: string);

    function GetScript: TStrings;
    procedure SetScript(Value: TStrings);
    procedure SetCurDocName(Value: string);
    function GetUnitType: TRMUnitType;
    procedure SetUnitType(aValue: TRMUnitType);
  protected
    procedure EnableControls; override;
    procedure ShowPosition; override;
    procedure DoFormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); override;

    function GetModified: Boolean; override;
    procedure SetModified(Value: Boolean); override;
    procedure SetFactor(Value: Integer); override;
    function GetDesignerRestrictions: TRMDesignerRestrictions; override;
    procedure SetDesignerRestrictions(Value: TRMDesignerRestrictions); override;
    procedure SetCurPage(Value: Integer); override;
    procedure RefreshData; override;
  public
    { Public declarations }
    procedure BeforeChange; override;
    procedure AfterChange; override;
    function InsertDBField: string; override;
    function InsertExpression: string; override;
    procedure MemoViewEditor(t: TRMView); override;
    procedure RMFontEditor(Sender: TObject); override;
    procedure RMDisplayFormatEditor(Sender: TObject); override;
    procedure PictureViewEditor(t: TRMView); override;
    procedure RMCalcMemoEditor(Sender: TObject); override;
    function PageObjects: TList; override;
    procedure AddUndoAction(aAction: TRMUndoAction); override;

    procedure UnSelectAll; override;
    procedure SelectionChanged(aRefreshInspProp: Boolean); override;
    procedure SetPageTabs; override;
    procedure ResetSelection; override;
    procedure ShowContent; override;

    property Script: TStrings read GetScript write SetScript;
    property CurDocName: string read FCurDocName write SetCurDocName;
    property AutoOpenLastFile: Boolean read FAutoOpenLastFile write FAutoOpenLastFile;
    property UnitType: TRMUnitType read GetUnitType write SetUnitType;
  end;

implementation

{$R *.DFM}

uses
  Math, Registry, RM_Const, RM_Const1, RM_Utils, RM_PageSetup, RM_EditorMemo,
  RM_EditorPicture, RM_EditorHilit, RM_EditorFrame, RM_EditorField, RM_EditorExpr,
  RM_EditorReportProp, RM_Printer, RM_About, RM_EditorFormat,
  RM_EditorDictionary, RM_EditorCalc, RM_EditorGroup, RM_EditorCellProp, RM_EditorGridCols,
  RM_EditorCellWidth, RM_EditorBand, RM_DesignerOptions, RM_EditorHF,
  RM_Wizard, RM_WizardNewReport, RM_wzGridStd;

const
  AddInObjectOffset = 4;

  TAG_SetFrameTop = 1;
  TAG_SetFrameLeft = 2;
  TAG_SetFrameBottom = 3;
  TAG_SetFrameRight = 4;
  TAG_BackColor = 5;
  TAG_FrameStyle = 6;

  TAG_SetFontName = 7;
  TAG_SetFontSize = 8;

  TAG_FontBold = 9;
  TAG_FontItalic = 10;
  TAG_FontUnderline = 11;

  TAG_HAlignLeft = 12;
  TAG_HAlignCenter = 13;
  TAG_HAlignRight = 14;
  TAG_HAlignEuqal = 15;

  TAG_FrameSize = 16;
  TAG_FontColor = 17;
  TAG_FrameColor = 19;

  TAG_SetFrame = 20;
  TAG_NoFrame = 21;
  TAG_Frame1 = 22;
  TAG_Frame2 = 23;
  TAG_Frame3 = 24;
  TAG_Frame4 = 25;
  TAG_DecWidth = 26;
  TAG_IncWidth = 27;
  TAG_DecHeight = 28;
  TAG_IncHeight = 29;

  TAG_VAlignTop = 31;
  TAG_VAlignCenter = 32;
  TAG_VAlignBottom = 33;

type
  THackView = class(TRMView)
  end;

  THackReportView = class(TRMReportView)
  end;

  THackPage = class(TRMCustomPage)
  end;

  THackGridEx = class(TRMGridEx)
  end;

var
  FDesignerComp: TRMGridReportDesigner;
  FUnitType: TRMUnitType;

  {------------------------------------------------------------------------------}
  {------------------------------------------------------------------------------}
  { TRMToolbarStandard }

constructor TRMToolbarStandard.CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
begin
  inherited Create(AOwner);
  BeginUpdate;
  Dockedto := DockTo;
  FDesignerForm := TRMGridReportDesignerForm(AOwner);
  DockRow := 0;
  DockPos := 0;
  Name := 'GridReport_ToolbarStandard';
  CloseButton := False;

  btnFileNew := TRMToolbarButton.Create(Self);
  with btnFileNew do
  begin
    ShowHint := True;
    ImageIndex := 0;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnFileNewClick;
    AddTo := Self;
  end;
  {$IFDEF USE_TB2K}
  btnFileOpen := TRMSubmenuItem.Create(Self);
  {$ELSE}
  btnFileOpen := TRMToolbarButton.Create(Self);
  {$ENDIF}
  with btnFileOpen do
  begin
    ImageIndex := 1;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuFileOpenClick;
    AddTo := Self;
    DropdownCombo := True;
    {$IFNDEF USE_TB2k}
    DropdownMenu := FDesignerForm.PopupMenu1;
    {$ENDIF}
  end;
  btnFileSave := TRMToolbarButton.Create(Self);
  with btnFileSave do
  begin
    ImageIndex := 2;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuFileSaveClick;
    AddTo := Self;
  end;
  ToolbarSep971 := TRMToolbarSep.Create(Self);
  with ToolbarSep971 do
  begin
    AddTo := Self;
  end;

  btnPrint := TRMToolbarButton.Create(Self);
  with btnPrint do
  begin
    ImageIndex := 3;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuFilePrintClick;
    AddTo := Self;
  end;
  btnPreview := TRMToolbarButton.Create(Self);
  with btnPreview do
  begin
    ImageIndex := 4;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuFilePreviewClick;
    AddTo := Self;
  end;
  btnPreview1 := TRMToolbarButton.Create(Self);
  with btnPreview1 do
  begin
    ImageIndex := 29;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuFilePreview1Click;
    AddTo := Self;
  end;
  ToolbarSep972 := TRMToolbarSep.Create(Self);
  with ToolbarSep972 do
  begin
    AddTo := Self;
  end;

  btnCut := TRMToolbarButton.Create(Self);
  with btnCut do
  begin
    ImageIndex := 5;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuEditCutClick;
    AddTo := Self;
  end;
  btnCopy := TRMToolbarButton.Create(Self);
  with btnCopy do
  begin
    ImageIndex := 6;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuEditCopyClick;
    AddTo := Self;
  end;
  btnPaste := TRMToolbarButton.Create(Self);
  with btnPaste do
  begin
    ImageIndex := 7;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuEditPasteClick;
    AddTo := Self;
  end;
  ToolbarSep974 := TRMToolbarSep.Create(Self);
  with ToolbarSep974 do
  begin
    AddTo := Self;
  end;

  btnRedo := TRMToolbarButton.Create(Self);
  with btnRedo do
  begin
    ImageIndex := 9;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuEditRedoClick;
    AddTo := Self;
  end;
  btnUndo := TRMToolbarButton.Create(Self);
  with btnUndo do
  begin
    ImageIndex := 8;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuEditUndoClick;
    AddTo := Self;
  end;
  ToolbarSep2 := TRMToolbarSep.Create(Self);
  with ToolbarSep2 do
  begin
    AddTo := Self;
  end;

  btnAddPage := TRMToolbarButton.Create(Self);
  with btnAddPage do
  begin
    ImageIndex := 13;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnAddPageClick;
    AddTo := Self;
  end;
  btnAddForm := TRMToolbarButton.Create(Self);
  with btnAddForm do
  begin
    ImageIndex := 14;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuEditAddFormClick;
    AddTo := Self;
  end;
  btnDeletePage := TRMToolbarButton.Create(Self);
  with btnDeletePage do
  begin
    ImageIndex := 15;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnDeletePageClick;
    AddTo := Self;
  end;
  btnPageSetup := TRMToolbarButton.Create(Self);
  with btnPageSetup do
  begin
    ImageIndex := 16;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuFilePageSetupClick;
    AddTo := Self;
  end;
  ToolbarSep973 := TRMToolbarSep.Create(Self);
  with ToolbarSep973 do
  begin
    AddTo := Self;
  end;

  btnExit := TRMToolbarButton.Create(Self);
  with btnExit do
  begin
    ImageIndex := 20;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.MenuFileExitClick;
    AddTo := Self;
  end;

⌨️ 快捷键说明

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