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

📄 mxexport.pas

📁 Export dbgrid to other doc
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    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 + -