rm_dsggridreport.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 2,209 行 · 第 1/5 页
PAS
2,209 行
unit RM_DsgGridReport;
interface
{$I RM.inc}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, Menus, Commctrl, Clipbrd, Buttons,
RM_Class, RM_Preview, RM_Common, RM_DsgCtrls, RM_Ctrls, RM_Insp, RM_EditorInsField,
RM_GridReport, RM_Grid, RM_DsgForm, rm_ZlibEx
{$IFDEF USE_TB2K}
, TB2Item, TB2Dock, TB2Toolbar
{$ELSE}
{$IFDEF USE_INTERNALTB97}
, RM_TB97Ctls, RM_TB97Tlbr, RM_TB97
{$ELSE}
, TB97Ctls, TB97Tlbr, TB97
{$ENDIF}
{$ENDIF}
{$IFDEF Delphi4}, ImgList{$ENDIF}
{$IFDEF Delphi6}, Variants{$ENDIF};
const
MaxUndoBuffer = 100;
type
TRMGridReportLoadReportEvent = procedure(Report: TRMReport; var ReportName: string; var Opened: Boolean) of object;
TRMGridReportSaveReportEvent = procedure(Report: TRMReport; var ReportName: string; SaveAs: Boolean; var Saved: Boolean) of object;
TRMGridReportNewReportEvent = procedure(Report: TRMReport; var ReportName: string) of object;
TRMUndoObject = record
ObjID: Integer;
end;
TRMUndoObject1 = record
Row, Col: Integer;
end;
TRMUndoRec = record
Action: TRMUndoAction;
Page: Integer;
Stream: TMemoryStream;
Objects: array of TRMUndoObject;
Objects1: array of TRMUndoObject1;
end;
PRMUndoRec = ^TRMUndoRec;
TRMUndoBuffer = array[0..MaxUndoBuffer - 1] of TRMUndoRec;
PRMUndoBuffer = ^TRMUndoBuffer;
TRMSelectionType = (rmssMemo, rmssOther, rmssMultiple);
TRMSelectionStatus = set of TRMSelectionType;
{ TRMGridReportDesigner }
TRMGridReportDesigner = class(TRMCustomDesigner) // fake component
private
FOpenFileCount: Integer;
FTemplDir, FOpenDir, FSaveDir: string;
FDesignerRestrictions: TRMDesignerRestrictions;
FDefaultDictionaryFile: string;
FUseUndoRedo: Boolean;
procedure SetOpenFileCount(Value: Integer);
procedure SetDesignerRestrictions(Value: TRMDesignerRestrictions);
protected
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property OpenFileCount: Integer read FOpenFileCount write SetOpenFileCount default 4;
property OpenDir: string read FOpenDir write FOpenDir;
property SaveDir: string read FSaveDir write FSaveDir;
property TemplateDir: string read FTemplDir write FTemplDir;
property DesignerRestrictions: TRMDesignerRestrictions read FDesignerRestrictions write SetDesignerRestrictions;
property DefaultDictionaryFile: string read FDefaultDictionaryFile write FDefaultDictionaryFile;
property UseUndoRedo: Boolean read FUseUndoRedo write FUseUndoRedo default True;
end;
TRMGridReportDesignerForm = class;
{ TRMToolbarStandard }
TRMToolbarStandard = class(TRMToolbar)
private
FDesignerForm: TRMGridReportDesignerForm;
BtnFileNew: TRMToolbarButton;
btnFileSave: TRMToolbarButton;
{$IFDEF USE_TB2K}
btnFileOpen: TRMSubmenuItem;
{$ELSE}
btnFileOpen: TRMToolbarButton;
{$ENDIF}
ToolbarSep971: TRMToolbarSep;
btnPreview1: TRMToolbarButton;
btnPreview: TRMToolbarButton;
btnPrint: TRMToolbarButton;
ToolbarSep972: TRMToolbarSep;
btnCut: TRMToolbarButton;
btnCopy: TRMToolbarButton;
btnPaste: TRMToolbarButton;
ToolbarSep974: TRMToolbarSep;
btnRedo: TRMToolbarButton;
btnUndo: TRMToolbarButton;
ToolbarSep2: TRMToolbarSep;
btnAddPage: TRMToolbarButton;
btnAddForm: TRMToolbarButton;
btnDeletePage: TRMToolbarButton;
btnPageSetup: TRMToolbarButton;
ToolbarSep973: TRMToolbarSep;
btnExit: TRMToolbarButton;
procedure Localize;
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMToolbarEdit }
TRMToolbarEdit = class(TRMToolbar)
private
FDesignerForm: TRMGridReportDesignerForm;
FcmbFont: TRMFontComboBox;
FcmbFontSize: TRMComboBox97;
ToolbarSep971: TRMToolbarSep;
btnFontBold: TRMToolbarButton;
btnFontItalic: TRMToolbarButton;
btnFontUnderline: TRMToolbarButton;
ToolbarSep972: TRMToolbarSep;
FBtnFontColor: TRMColorPickerButton;
FBtnBackColor: TRMColorPickerButton;
FBtnFrameColor: TRMColorPickerButton;
FCmbFrameWidth: TRMComboBox97;
ToolbarSep973: TRMToolbarSep;
btnHLeft: TRMToolbarButton;
btnHCenter: TRMToolbarButton;
btnHRight: TRMToolbarButton;
btnHSpaceEqual: TRMToolbarButton;
ToolbarSep974: TRMToolbarSep;
btnVTop: TRMToolbarButton;
btnVCenter: TRMToolbarButton;
btnVBottom: TRMToolbarButton;
ToolbarSep975: TRMToolbarSep;
procedure Localize;
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMToolbarBorder }
TRMToolbarBorder = class(TRMToolbar)
private
FDesignerForm: TRMGridReportDesignerForm;
btnFrameTop: TRMToolbarButton;
btnFrameLeft: TRMToolbarButton;
btnFrameBottom: TRMToolbarButton;
btnFrameRight: TRMToolbarButton;
ToolbarSep971: TRMToolbarSep;
btnNoBorder: TRMToolbarButton;
btnSetBorder: TRMToolbarButton;
btnTopBorder: TRMToolbarButton;
btnBottomBorder: TRMToolbarButton;
ToolbarSep972: TRMToolbarSep;
btnBias1Border: TRMToolbarButton;
btnBias2Border: TRMToolbarButton;
ToolbarSep973: TRMToolbarSep;
btnDecWidth: TRMToolbarButton;
btnIncWidth: TRMToolbarButton;
btnDecHeight: TRMToolbarButton;
btnIncHeight: TRMToolbarButton;
ToolbarSep974: TRMToolbarSep;
btnColumnMin: TRMToolbarButton;
btnColumnMax: TRMToolbarButton;
btnRowMin: TRMToolbarButton;
btnRowMax: TRMToolbarButton;
ToolbarSep975: TRMToolbarSep;
cmbBands: TRMComboBox97;
{$IFDEF USE_TB2K}
btnAddBand: TRMSubmenuItem;
{$ELSE}
btnAddBand: TRMToolbarButton;
{$ENDIF}
btnDeleteBand: TRMToolbarButton;
procedure Localize;
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMToolbarGrid }
TRMToolbarGrid = class(TRMToolbar)
private
FDesignerForm: TRMGridReportDesignerForm;
btnInsertColumn: TRMToolbarButton;
btnInsertRow: TRMToolbarButton;
btnAddColumn: TRMToolbarButton;
btnAddRow: TRMToolbarButton;
ToolbarSep1: TRMToolbarSep;
btnDeleteColumn: TRMToolbarButton;
btnDeleteRow: TRMToolbarButton;
btnSetRowsAndColumns: TRMToolbarButton;
ToolbarSep2: TRMToolbarSep;
btnMerge: TRMToolbarButton;
btnSplit: TRMToolbarButton;
btnMergeRow: TRMToolbarButton;
btnMergeColumn: TRMToolbarButton;
procedure Localize;
procedure OnAddColumnClick(Sender: TObject);
procedure OnAddRowClick(Sender: TObject);
procedure OnMergeColumnClick(Sender: TObject);
procedure OnMergeRowClick(Sender: TObject);
procedure OnBtnSetRowsAndColumnsClick(Sender: TObject);
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMToolbarCellEdit }
TRMToolbarCellEdit = class(TRMToolbar)
private
FDesignerForm: TRMGridReportDesignerForm;
FlblCell: TRMToolbarButton;
FToolbarSep1: TRMToolbarSep;
FBtnDBField: TRMToolbarButton;
FBtnExpression: TRMToolbarButton;
FEdtMemo: TEdit;
procedure Localize;
procedure CellEditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMGridViewForm }
TRMGridReportDesignerForm = class(TRMCustomDesignerForm)
ImageListFont: TImageList;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
ImageListFrame: TImageList;
StatusBar1: TStatusBar;
ImageListGrid: TImageList;
ImageListStand: TImageList;
ImageListSize: TImageList;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure btnMergeClick(Sender: TObject);
procedure btnSplitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure itmMemoViewClick(Sender: TObject);
procedure itmDeleteColumnClick(Sender: TObject);
procedure itmDeleteRowClick(Sender: TObject);
procedure itmInsertLeftColumnClick(Sender: TObject);
procedure itmInsertRightColumnClick(Sender: TObject);
procedure itmInsertTopRowClick(Sender: TObject);
procedure itmInsertBottomRowClick(Sender: TObject);
procedure itmEditClick(Sender: TObject);
procedure itmFrameTypeClick(Sender: TObject);
procedure MenuFileSaveasClick(Sender: TObject);
procedure MenuFileOpenClick(Sender: TObject);
procedure MenuFileSaveClick(Sender: TObject);
procedure Tab1Change(Sender: TObject);
procedure MenuFileDictClick(Sender: TObject);
procedure MenuFileImportDictClick(Sender: TObject);
procedure MenuFileMergeDictClick(Sender: TObject);
procedure MenuFileExportDictClick(Sender: TObject);
procedure MenuFilePageSetupClick(Sender: TObject);
procedure MenuFileHeaderFooterClick(Sender: TObject);
procedure MenuFilePreviewClick(Sender: TObject);
procedure MenuFilePreview1Click(Sender: TObject);
procedure MenuFilePrintClick(Sender: TObject);
procedure MenuFilePropClick(Sender: TObject);
procedure MenuFileNewClick(Sender: TObject);
procedure btnFileNewClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure btnAddPageClick(Sender: TObject);
procedure btnDeletePageClick(Sender: TObject);
procedure Tab1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure Tab1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Tab1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Tab1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure Tab1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure cmbBandsDropDown(Sender: TObject);
procedure cmbBandsClick(Sender: TObject);
procedure btnDeleteBandClick(Sender: TObject);
procedure PopupMenuBandsPopup(Sender: TObject);
procedure MenuFileExitClick(Sender: TObject);
procedure MenuHelpAboutClick(Sender: TObject);
procedure MenuEditToolbarClick(Sender: TObject);
procedure itmToolbarStandardClick(Sender: TObject);
procedure MenuEditAddFormClick(Sender: TObject);
procedure MenuEditCutClick(Sender: TObject);
procedure MenuEditCopyClick(Sender: TObject);
procedure MenuEditPasteClick(Sender: TObject);
procedure MenuEditDeleteClick(Sender: TObject);
procedure MenuEditSelectAllClick(Sender: TObject);
procedure padpopEditClick(Sender: TObject);
procedure padpopClearContentsClick(Sender: TObject);
procedure MenuCellPropertyClick(Sender: TObject);
procedure MenuCellTableSizeClick(Sender: TObject);
procedure itmAverageRowHeightClick(Sender: TObject);
procedure itmAverageColumnWidthClick(Sender: TObject);
procedure itmRowHeightClick(Sender: TObject);
procedure itmColumnHeightClick(Sender: TObject);
procedure MenuEditUndoClick(Sender: TObject);
procedure MenuEditRedoClick(Sender: TObject);
procedure MenuFileFile9Click(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure MenuEditCopyPageClick(Sender: TObject);
procedure MenuEditPastePageClick(Sender: TObject);
procedure MenuEditOptionsClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
FList: TList;
FFileName: string;
FGrid: TRMGridEx;
FAddinObjects: TStringList;
FBusy, FInspBusy: Boolean;
FCurDocName, FCaption: string;
FMouseDown: Boolean;
FInspForm: TRMInspForm;
FAutoOpenLastFile: Boolean;
FOpenFiles: TStringList;
FPageStream: TMemoryStream;
Dock971: TRMDock;
Dock972: TRMDock;
Dock973: TRMDock;
Dock974: TRMDock;
//dejoy add begin
Panel2: TRMPanel;
MenuBar: TRMMenuBar;
MenuFile: TRMSubmenuItem;
MenuFileNew: TRMmenuItem;
MenuFileOpen: TRMmenuItem;
MenuFileSave: TRMmenuItem;
MenuFileSaveas: TRMmenuItem;
N2: TRMSeparatorMenuItem;
MenuFileDict: TRMmenuItem;
MenuFileImportDict: TRMmenuItem;
MenuFileMergeDict: TRMmenuItem;
MenuFileExportDict: TRMmenuItem;
N1: TRMSeparatorMenuItem;
MenuFilePageSetup: TRMmenuItem;
MenuFileHeaderFooter: TRMMenuItem;
MenuFilePreview: TRMmenuItem;
MenuFilePreview1: TRMMenuItem;
MenuFilePrint: TRMmenuItem;
N7: TRMSeparatorMenuItem;
MenuFileProp: TRMmenuItem;
N13: TRMSeparatorMenuItem;
MenuFileFile1: TRMmenuItem;
MenuFileFile2: TRMmenuItem;
MenuFileFile3: TRMmenuItem;
MenuFileFile4: TRMmenuItem;
MenuFileFile5: TRMmenuItem;
MenuFileFile6: TRMmenuItem;
MenuFileFile7: TRMmenuItem;
MenuFileFile8: TRMmenuItem;
MenuFileFile9: TRMmenuItem;
N5: TRMSeparatorMenuItem;
MenuFileExit: TRMmenuItem;
MenuEdit: TRMSubmenuItem;
MenuEditUndo: TRMmenuItem;
MenuEditRedo: TRMmenuItem;
N12: TRMSeparatorMenuItem;
MenuEditCut: TRMmenuItem;
MenuEditCopy: TRMmenuItem;
MenuEditPaste: TRMmenuItem;
MenuEditDelete: TRMmenuItem;
MenuEditSelectAll: TRMmenuItem;
N11: TRMSeparatorMenuItem;
MenuEditCopyPage: TRMmenuItem;
MenuEditPastePage: TRMmenuItem;
N14: TRMSeparatorMenuItem;
MenuEditAddPage: TRMmenuItem;
MenuEditAddForm: TRMmenuItem;
MenuEditDeletePage: TRMmenuItem;
N9: TRMSeparatorMenuItem;
MenuEditToolbar: TRMSubmenuItem;
itmToolbarStandard: TRMmenuItem;
itmToolbarText: TRMmenuItem;
itmToolbarBorder: TRMmenuItem;
itmToolbarGrid: TRMmenuItem;
itmToolbarInspector: TRMmenuItem;
itmToolbarInsField: TRMmenuItem;
itmToolbarCellEdit: TRMMenuItem;
MenuEditOptions: TRMmenuItem;
MenuCell: TRMSubmenuItem;
MenuCellProperty: TRMmenuItem;
MenuCellTableSize: TRMmenuItem;
MenuCellRow: TRMSubmenuItem;
itmRowHeight: TRMmenuItem;
itmAverageRowHeight: TRMmenuItem;
MenuCellColumn: TRMSubmenuItem;
itmColumnHeight: TRMmenuItem;
itmAverageColumnWidth: TRMmenuItem;
N8: TRMSeparatorMenuItem;
MenuCellInsertCell: TRMSubmenuItem;
itmInsertCellLeft: TRMmenuItem;
itmInsertCellTop: TRMmenuItem;
MenuCellInsertColumn: TRMmenuItem;
MenuCellInsertRow: TRMmenuItem;
MenuCellDeleteColumn: TRMmenuItem;
MenuCellDeleteRow: TRMmenuItem;
N18: TRMSeparatorMenuItem;
MenuEditMerge: TRMmenuItem;
MenuEditReverse: TRMmenuItem;
MenuHelp: TRMSubmenuItem;
MenuHelpContents: TRMmenuItem;
N1111: TRMSeparatorMenuItem;
MenuHelpAbout: TRMmenuItem;
barSearch: TRMSubmenuItem;
padSearchFind: TRMMenuItem;
padSearchReplace: TRMMenuItem;
padSearchFindAgain: TRMMenuItem;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?