📄 mxexport.pas
字号:
FCurrent: Cardinal;
FRowNumber: Cardinal;
Procedure GenerateOutput( Const OutputFileName: String );
Function CheckLink( S: String ): Boolean;
Function AddItem( AValue: Variant; MaxLength: Integer ): String;
Function FormatLine( AValues: TmxValues; Header, RowNumber: Boolean ): String;
Function FormatRowNumber: String;
Function AddHorizontalLine( Header: Boolean ): String;
Function GetHeaderLength: Integer;
Function _GetFieldLength( Index: Integer; Len: Integer ): Integer;
Procedure ViewFile( OutputFileName: String );
Procedure SelectorChange( Sender: TObject );
Function GetExtension: String;
Function GetFilter: String;
Procedure WriteToRTFStream( RTFString: String );
Procedure IconImagePaint( Sender: TObject );
Public
Constructor Create( AOwner: TComponent ); Override;
Destructor Destroy; Override;
Procedure Execute;
Procedure Select;
Procedure BeforeExecute; Virtual;
Procedure AfterExecute; Virtual;
Procedure First; Virtual; Abstract;
Function GetFieldAlignment( Index: Integer ): TmxFieldAlignment; Virtual;
Function IsValidToExport: Boolean; Virtual; Abstract;
Function EOF: Boolean; Virtual; Abstract;
Function IsFieldVisible( Index: Integer ): Boolean; Virtual; Abstract;
Function IsRowSelected( Index: Integer ): Boolean; Virtual; Abstract;
Function GetFieldLength( Index: Integer ): Integer; Virtual; Abstract;
Function GetFieldName( Index: Integer ): String; Virtual; Abstract;
Function GetFieldCount: Integer; Virtual; Abstract;
Function GetNextLine: TmxValues; Virtual; Abstract;
Function GetRecordCount: Cardinal; Virtual; Abstract;
Property NativeExcel: TmxNativeExcel Read FmxNativeExcel Write FmxNativeExcel;
Published
Property Captions: TStrings Read FCaptions Write SetCaptions;
Property ColumnWidths: TStrings Read FColumnWidths Write SetColumnWidths;
Property DateFormat: String Read FDateFormat Write FDateFormat;
Property TimeFormat: String Read FTimeFormat Write FTimeFormat;
Property DateTimeFormat: String Read FDateTimeFormat Write FDateTimeFormat;
Property ExportType: TmxExportType Read FExportType Write SetExportType;
Property ExportTypes: TmxExportTypeSet Read FExportTypes Write SetExportTypes;
Property ExportStyle: TmxExportStyle Read FExportStyle Write FExportStyle;
Property FileName: String Read FFileName Write FFileName;
Property HTML: TmxHTMLOptions Read FHTML Write FHTML;
Property Messages: TmxMessagesOptions Read FMessages Write FMessages;
Property TempDir: String Read FTempDirectory Write SetTempDirectory Stored IsTempStored;
Property TruncateSymbol: String Read FTruncateSymbol Write FTruncateSymbol;
Property RowNumberFormat: String Read FRowNumberFormat Write SetNumberFormat;
Property DOC_RTF: TmxRTFOptions Read FDOC_RTF Write FDOC_RTF;
Property EXCEL: TmxExcelOptions Read FExcel Write FExcel;
Property Options: TmxExportOptionSet Read FOptions Write FOptions;
Property Version: String Read GetVersion Write SetVersion;
Property OnBeginExport: TNotifyEvent Read FOnBeginExport Write FOnBeginExport;
Property OnEndExport: TNotifyEvent Read FOnEndExport Write FOnEndExport;
Property OnGetExtension: TEventOnGetExtension Read FOnGetExtension Write FOnGetExtension;
Property OnError: TEventOnError Read FOnError Write FOnError;
Property OnExport: TEventOnExport Read FOnExport Write FOnExport;
Property OnGetHeader: TEventOnGetHeader Read FOnGetHeader Write FOnGetHeader;
Property OnGetFooter: TEventOnGetFooter Read FOnGetFooter Write FOnGetFooter;
Property OnFileExist: TEventOnFileExist Read FOnFileExist Write FOnFileExist;
End;
// ************************************************************************
// ************************************************************************
// ************************************************************************
TmxStringsExport = Class( TmxCustomExport )
Private
FStrings: TStrings;
Protected
Public
Constructor Create( AOwner: TComponent ); Override;
Destructor Destroy; Override;
Function IsValidToExport: Boolean; Override;
Function IsFieldVisible( Index: Integer ): Boolean; Override;
Function IsRowSelected( Index: Integer ): Boolean; Override;
Procedure First; Override;
Function EOF: Boolean; Override;
Function GetFieldLength( Index: Integer ): Integer; Override;
Function GetFieldName( Index: Integer ): String; Override;
Function GetFieldCount: Integer; Override;
Function GetNextLine: TmxValues; Override;
Function GetRecordCount: Cardinal; Override;
Property Strings: TStrings Read FStrings Write FStrings;
Published
End;
// ************************************************************************
// ************************************************************************
// ************************************************************************
TmxDataSetExport = Class( TmxCustomExport )
Private
FDataSet: TDataSet;
{$WARNINGS OFF}
FBookMark: TBookmark;
{$WARNINGS ON}
Protected
Procedure Notification( AComponent: TComponent; Operation: TOperation ); Override;
Public
Constructor Create( AOwner: TComponent ); Override;
Destructor Destroy; Override;
Function IsValidToExport: Boolean; Override;
Function IsFieldVisible( Index: Integer ): Boolean; Override;
Function IsRowSelected( Index: Integer ): Boolean; Override;
Procedure BeforeExecute; Override;
Procedure AfterExecute; Override;
Procedure First; Override;
Function EOF: Boolean; Override;
Function GetFieldCount: Integer; Override;
Function GetFieldName( Index: Integer ): String; Override;
Function GetFieldLength( Index: Integer ): Integer; Override;
Function GetNextLine: TmxValues; Override;
Function GetRecordCount: Cardinal; Override;
Published
Property DataSet: TDataSet Read FDataSet Write FDataSet;
End;
// ************************************************************************
// ************************************************************************
// ************************************************************************
TmxDBGridExport = Class( TmxCustomExport )
Private
FDBGrid: TDBGrid;
{$WARNINGS OFF}
FBookMark: TBookmark;
{$WARNINGS ON}
Protected
Procedure Notification( AComponent: TComponent; Operation: TOperation ); Override;
Public
Constructor Create( AOwner: TComponent ); Override;
Destructor Destroy; Override;
Function IsValidToExport: Boolean; Override;
Function IsFieldVisible( Index: Integer ): Boolean; Override;
Function IsRowSelected( Index: Integer ): Boolean; Override;
Procedure BeforeExecute; Override;
Procedure AfterExecute; Override;
Procedure First; Override;
Function EOF: Boolean; Override;
Function GetFieldAlignment( Index: Integer ): TmxFieldAlignment; Override;
Function GetFieldCount: Integer; Override;
Function GetFieldName( Index: Integer ): String; Override;
Function GetFieldLength( Index: Integer ): Integer; Override;
Function GetNextLine: TmxValues; Override;
Function GetRecordCount: Cardinal; Override;
Published
Property DBGrid: TDBGrid Read FDBGrid Write FDBGrid;
End;
// ************************************************************************
// ************************************************************************
// ************************************************************************
TmxStringGridExport = Class( TmxCustomExport )
Private
FStringGrid: TStringGrid;
FFieldLength: TStringList;
Protected
Procedure Notification( AComponent: TComponent; Operation: TOperation ); Override;
Public
Constructor Create( AOwner: TComponent ); Override;
Destructor Destroy; Override;
Function IsValidToExport: Boolean; Override;
Function IsFieldVisible( Index: Integer ): Boolean; Override;
Function IsRowSelected( Index: Integer ): Boolean; Override;
Procedure First; Override;
Function EOF: Boolean; Override;
Function GetFieldAlignment( Index: Integer ): TmxFieldAlignment; Override;
Function GetFieldCount: Integer; Override;
Function GetFieldName( Index: Integer ): String; Override;
Function GetFieldLength( Index: Integer ): Integer; Override;
Function GetNextLine: TmxValues; Override;
Function GetRecordCount: Cardinal; Override;
Published
Property StringGrid: TStringGrid Read FStringGrid Write FStringGrid;
End;
// *************************************************************************************
// *************************************************************************************
// *************************************************************************************
TmxListViewExport = Class( TmxCustomExport )
Private
FListView: TListView;
Protected
Procedure Notification( AComponent: TComponent; Operation: TOperation ); Override;
Public
Constructor Create( AOwner: TComponent ); Override;
Destructor Destroy; Override;
Function IsValidToExport: Boolean; Override;
Function IsFieldVisible( Index: Integer ): Boolean; Override;
Function IsRowSelected( Index: Integer ): Boolean; Override;
Procedure First; Override;
Function EOF: Boolean; Override;
Function GetFieldCount: Integer; Override;
Function GetFieldName( Index: Integer ): String; Override;
Function GetFieldLength( Index: Integer ): Integer; Override;
Function GetNextLine: TmxValues; Override;
Function GetRecordCount: Cardinal; Override;
Published
Property ListView: TListView Read FListView Write FListView;
End;
// *************************************************************************************
// *************************************************************************************
// *************************************************************************************
{$IFNDEF NATIVEEXCEL_STANDARD}
TmxExportCellFormat = Class( TPersistent )
Private
FBorders: TmxExcelBorders;
FOptions: TmxFormatOptions;
FAlignment: TmxExcelAlignment;
FPattern: TmxExcelPattern;
FFormat: TmxCellFormat;
FCustomFormat: String;
FFont: TmxExcelFont;
Protected
Procedure SetFont( AValue: TmxExcelFont );
Public
Constructor Create; Virtual;
Destructor Destroy; Override;
Procedure AssignTo( Dest: TPersistent ); Override;
Published
Property Alignment: TmxExcelAlignment Read FAlignment Write FAlignment;
Property Borders: TmxExcelBorders Read FBorders Write FBorders;
Property CustomFormat: String Read FCustomFormat Write FCustomFormat;
Property Font: TmxExcelFont Read FFont Write SetFont;
Property Format: TmxCellFormat Read FFormat Write FFormat Default cfGeneral;
Property Options: TmxFormatOptions Read FOptions Write FOptions;
Property Pattern: TmxExcelPattern Read FPattern Write FPattern;
End;
{$ENDIF}
// ************************************************************************
// ************************************************************************
// ************************************************************************
TmxAnyExport = Class( TmxCustomExport )
Private
FAnyRecordCount: Cardinal;
FAnyFieldCount: Integer;
FOnGetExportInfo: TEventOnGetExportInfo;
FOnGetFieldLength: TEventOnGetFieldLength;
FOnGetFieldName: TEventOnGetFieldName;
FOnGetExportData: TEventOnGetExportData;
Protected
Public
Constructor Create( AOwner: TComponent ); Override;
Destructor Destroy; Override;
Function IsValidToExport: Boolean; Override;
Function IsFieldVisible( Index: Integer ): Boolean; Override;
Function IsRowSelected( Index: Integer ): Boolean; Override;
Procedure First; Override;
Function EOF: Boolean; Override;
Function GetFieldLength( Index: Integer ): Integer; Override;
Function GetFieldName( Index: Integer ): String; Override;
Function GetFieldCount: Integer; Override;
Function GetNextLine: TmxValues; Override;
Function GetRecordCount: Cardinal; Override;
Published
Property OnGetExportInfo: TEventOnGetExportInfo Read FOnGetExportInfo Write FOnGetExportInfo;
Property OnGetFieldLength: TEventOnGetFieldLength Read FOnGetFieldLength Write FOnGetFieldLength;
Property OnGetFieldName: TEventOnGetFieldName Read FOnGetFieldName Write FOnGetFieldName;
Property OnGetExportData: TEventOnGetExportData Read FOnGetExportData Write FOnGetExportData;
End;
Implementation
// *************************************************************************************
// ** ChangeQuotationMarks, 5/29/01 1:49:29 PM
// *************************************************************************************
Function ChangeQuotationMarks( S: String; QMarkNeeded: Boolean ): String;
Var
X: Integer;
TempStr: String;
Begin
Result := S;
If Pos( #34, TempStr ) <> 0 Then
Begin
TempStr := '';
For X := 0 To Length( S ) Do
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -