亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dbgridehimpexp.pas

?? 一個功能強大的DBGRID控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{*******************************************************}
{                                                       }
{                       EhLib v4.2                      }
{             DBGridEh import/export routines           }
{                      Build 4.2.01                     }
{                                                       }
{   Copyright (c) 1998-2004 by Dmitry V. Bolshakov      }
{                                                       }
{*******************************************************}

{$I EhLib.Inc}

{$IFDEF EH_LIB_VCL}
unit DBGridEhImpExp {$IFDEF CIL} platform {$ENDIF};
{$ELSE}
unit QDBGridEhImpExp;
{$ENDIF}

interface

{$IFDEF EH_LIB_VCL}
uses
  Windows, SysUtils, Classes, Graphics, Dialogs, GridsEh, Controls,
{$IFDEF EH_LIB_6}Variants, {$ENDIF}
{$IFDEF CIL}
  EhLibVCLNET,
  System.Runtime.InteropServices, System.Reflection,
{$ELSE}
  EhLibVCL,
{$ENDIF}
  DBGridEh, Db, Clipbrd;
{$ELSE}
uses
  SysUtils, Classes, QGraphics, QDialogs, QGrids, QDBGrids, QControls,
  Variants, QDBGridEh, Db, QClipbrd;
{$ENDIF}

type

//{$IFNDEF CIL}
//  TFooterValues = array[0..MaxListSize - 1] of Currency;
//  PFooterValues = ^TFooterValues;
//{$ENDIF}
  TFooterValues = array of Currency;

  { TDBGridEhExport }

  TDBGridEhExport = class(TObject)
  private
    FColCellParamsEh: TColCellParamsEh;
    FDBGridEh: TCustomDBGridEh;
    FExpCols: TColumnsEhList;
    FStream: TStream;
    function GetFooterValue(Row, Col: Integer): String;
    procedure CalcFooterValues;
  protected
    FooterValues: TFooterValues;
    procedure WritePrefix; virtual;
    procedure WriteSuffix; virtual;
    procedure WriteTitle(ColumnsList: TColumnsEhList); virtual;
    procedure WriteRecord(ColumnsList: TColumnsEhList); virtual;
    procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); virtual;
    procedure WriteFooter(ColumnsList: TColumnsEhList; FooterNo: Integer); virtual;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
      Background: TColor; Alignment: TAlignment; Text: String); virtual;
    property Stream: TStream read FStream write FStream;
    property ExpCols: TColumnsEhList read FExpCols write FExpCols;
  public
    constructor Create; virtual;
    destructor Destroy; override;
    procedure ExportToStream(AStream: TStream; IsExportAll: Boolean); virtual;
    procedure ExportToFile(FileName: String; IsExportAll: Boolean); virtual;
    property DBGridEh: TCustomDBGridEh read FDBGridEh write FDBGridEh;
  end;

  TDBGridEhExportClass = class of TDBGridEhExport;

  { TDBGridEhExportAsText }

  TDBGridEhExportAsText = class(TDBGridEhExport)
  private
    FirstRec: Boolean;
    FirstCell: Boolean;
  protected
    procedure CheckFirstRec; virtual;
    procedure CheckFirstCell; virtual;
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteTitle(ColumnsList: TColumnsEhList); override;
    procedure WriteFooter(ColumnsList: TColumnsEhList; FooterNo: Integer); override;
    procedure WriteRecord(ColumnsList: TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
      Background: TColor; Alignment: TAlignment; Text: String); override;
  public
    procedure ExportToStream(Stream: TStream; IsExportAll: Boolean); override;
  end;

  { TDBGridEhExportAsCSV }

  TDBGridEhExportAsCSV = class(TDBGridEhExportAsText)
  private
    FSeparator: Char;
  protected
    procedure CheckFirstCell; override;
    procedure WriteTitle(ColumnsList: TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
      Background: TColor; Alignment: TAlignment; Text: String); override;
  public
    constructor Create; override;
    property Separator: Char read FSeparator write FSeparator;
  end;

  { TDBGridEhExportAsHTML }

  TDBGridEhExportAsHTML = class(TDBGridEhExport)
  private
    function GetAlignment(Alignment: TAlignment): String;
    function GetColor(Color: TColor): String;
    procedure PutText(Font: TFont; Text: String);
    procedure Put(Text: String);
    procedure PutL(Text: String);
  protected
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteTitle(ColumnsList: TColumnsEhList); override;
    procedure WriteRecord(ColumnsList: TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); override;
    procedure WriteFooter(ColumnsList: TColumnsEhList; FooterNo: Integer); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
      Background: TColor; Alignment: TAlignment; Text: String); override;
  end;

  { TDBGridEhExportAsRTF }

  TDBGridEhExportAsRTF = class(TDBGridEhExport)
  private
    FCacheStream: TMemoryStreamEh;
    ColorTblList: TStrings;
    FontTblList: TStrings;
    function GetFontIndex(FontName: String): Integer;
    function GetColorIndex(Color: TColor): Integer;
    function GetAlignment(Alignment: TAlignment): String;
    function GetDataCellColor(ColumnsList: TColumnsEhList; ColIndex: Integer): TColor;
    function GetFooterCellColor(ColumnsList: TColumnsEhList; ColIndex: Integer;
      FooterNo: Integer): TColor;
    procedure PutText(Font: TFont; Text: String; Background: TColor);
    procedure Put(Text: String);
    procedure PutL(Text: String);
  protected
    procedure WriteCellBorder(LeftBorder, TopBorder, BottomBorder, RightBorder: Boolean);
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteTitle(ColumnsList: TColumnsEhList); override;
    procedure WriteRecord(ColumnsList: TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); override;
    procedure WriteFooter(ColumnsList: TColumnsEhList; FooterNo: Integer); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
      Background: TColor; Alignment: TAlignment; Text: String); override;
  public
    procedure ExportToStream(AStream: TStream; IsExportAll: Boolean); override;
  end;

  { TDBGridEhExportAsXLS }

  TDBGridEhExportAsXLS = class(TDBGridEhExport)
  private
    FCol, FRow: Word;
    procedure WriteBlankCell;
    procedure WriteIntegerCell(const AValue: Integer);
    procedure WriteFloatCell(const AValue: Double);
    procedure WriteStringCell(const AValue: String);
    procedure IncColRow;
  protected
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteTitle(ColumnsList: TColumnsEhList); override;
    procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); override;
    procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont;
      Background: TColor; Alignment: TAlignment; Text: String); override;
  public
    procedure ExportToStream(AStream: TStream; IsExportAll: Boolean); override;
  end;

  { TDBGridEhExportAsVCLDBIF }

  {Internal format for interchange between DataSet based components}

  { BOF (Beginning of File)

   Byte       |  0    1    2    3    4    5    6 |  0 |  0    1    2    3 |
              -------------------------------------------------------------
   Contents   |  V |  C |  L |  D |  B |  I |  F |  1 |  X |  X |  X |  X |
              -------------------------------------------------------------
              |  Signatura                       |Vers|  Columns count    |
              |                                  |ion |                   |


    Fields Names

   Byte       |  0 |  0    1    2    3   ...   X |  0 |  0    1    2    3   ...
              ------------------------------------------------------------- ...
   Contents   |  X |  N |  a |  m |  e |  1 |  0 |  X |  N |  a |  m |  e |  2 | 0
              ------------------------------------------------------------- ...
              |Colu| Null terminated field name  |Colu| Null terminated field name
              |mn  |                             |mn  |
              |visi|                             |visi|
              |ble 1 or 0                        |ble 1 or 0

    Values

  ----------------
    Unassigned, skip value
    ftUnknown,  ftCursor, ftADT, ftArray, ftReference, ftDataSet, ftVariant,
     ftInterface, ftIDispatch,

   Byte       |  0 |
              ------
   Contents   |  1 |
              ------
              |Type|
  ----------------
    NULL

   Byte       |  0 |
              ------
   Contents   |  2 |
              ------
              |Type|
  ----------------
    INTEGER32
    ftSmallint, ftInteger, ftWord, ftBoolean, ftAutoInc

   Byte       |  0 |  0    1    2    3 |
              --------------------------
   Contents   |  3 |  X |  X |  X |  X |
              --------------------------
              |Type|  Intetger value   |
                   |   (Longint)       |
  ----------------
    FLOAT64
    ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,

   Byte       |  0 |  0    1    2    3    4    5    6    7 |
              ----------------------------------------------
   Contents   |  4 |  X |  X |  X |  X |  X |  X |  X |  X |
              ----------------------------------------------
              |Type|  Float value (Double)                 |
  ----------------
    STRING
    ftString, ftMemo, ftFixedChar, ftLargeint, ftOraClob, ftGuid

   Byte       |  0 |  0    1    2    3 |  0    1    2   ...   N |
              ---------------------------------------------------
   Contents   |  5 |  X |  X |  X |  X |  a |  b |  c | ...   0 |
              ---------------------------------------------------
              |Type|  Size (Longint)   |  String body including |
                                       |  null terminator       |
  ----------------
    BINARY DATA
    ftBlob, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftOraBlob,
     ftBytes, ftTypedBinary, ftVarBytes, ftWideString,

   Byte       |  0 |  0    1    2    3 |  0    1    2   ...   N |
              ---------------------------------------------------
   Contents   |  6 |  X |  X |  X |  X |  a |  b |  c | ...   X |
              ---------------------------------------------------
              |Type|  Size (Longword)   |  data                  |
  ----------------
    EOF (End of File)

   Byte       |  0 |
              ------
   Contents   |  0 |
              ------
              |Type|
  }

  TVCLDBIF_BOF = packed record
    Signatura: array[0..6] of AnsiChar;
    Version: Byte;
    ColCount: Longint;
  end;

  TVCLDBIF_INTEGER32 = packed record
    AType: Byte;
    Value: Longint;
  end;

  TVCLDBIF_FLOAT64 = packed record
    AType: Byte;
    Value: Double;
  end;

  TVCLDBIF_STRING = packed record
    AType: Byte;
    Size: Longint;
  end;

  TVCLDBIF_BINARY_DATA = packed record
    AType: Byte;
    Size: Longint;
  end;

const
  TVCLDBIF_TYPE_EOF = 0;
  TVCLDBIF_TYPE_UNASSIGNED = 1;
  TVCLDBIF_TYPE_NULL = 2;
  TVCLDBIF_TYPE_INTEGER32 = 3;
  TVCLDBIF_TYPE_FLOAT64 = 4;
  TVCLDBIF_TYPE_STRING = 5;
  TVCLDBIF_TYPE_BINARY_DATA = 6;

type

  TDBGridEhExportAsVCLDBIF = class(TDBGridEhExport)
  private
//    function CalcColCount:Word;
    procedure WriteUnassigned;
    procedure WriteNull;
    procedure WriteInteger(AValue: Longint);
    procedure WriteFloat(AValue: Double);
    procedure WriteString(AValue: String);
    procedure WriteBinaryData(AValue: String);
  protected
    procedure WritePrefix; override;
    procedure WriteSuffix; override;
    procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); override;
  end;

  { TDBGridEhImport }

  TDBGridEhImport = class(TObject)
  private
    FDBGridEh: TCustomDBGridEh;
    FStream: TStream;
    FImpCols: TColumnsEhList;
  protected
    Eos: Boolean;
    procedure ReadPrefix; virtual;
    procedure ReadSuffix; virtual;
    procedure ReadRecord(ColumnsList: TColumnsEhList); virtual;
    procedure ReadDataCell(Column: TColumnEh); virtual;
    property Stream: TStream read FStream write FStream;
    property ImpCols: TColumnsEhList read FImpCols write FImpCols;
  public
    constructor Create; virtual;
    procedure ImportFromStream(AStream: TStream; IsImportAll: Boolean); virtual;
    procedure ImportFromFile(FileName: String; IsImportAll: Boolean); virtual;
    property DBGridEh: TCustomDBGridEh read FDBGridEh write FDBGridEh;
  end;

  TDBGridEhImportClass = class of TDBGridEhImport;

  { TDBGridEhImportAsText }

  TImportTextSreamState = (itssChar, itssTab, itssNewLine, itssEof);

  TDBGridEhImportAsText = class(TDBGridEhImport)
  private
    FLastChar: Char;
    FLastState: TImportTextSreamState;
    FLastString: String;
    FIgnoreAll: Boolean;
    function GetChar(var ch: Char): Boolean;
    function CheckState: TImportTextSreamState;
    function GetString(var Value: String): TImportTextSreamState;
  protected
    procedure ReadPrefix; override;
    procedure ReadRecord(ColumnsList: TColumnsEhList); override;
    procedure ReadDataCell(Column: TColumnEh); override;
  public
    procedure ImportFromStream(AStream: TStream; IsImportAll: Boolean); override;
  end;

  { TDBGridEhImportAsVCLDBIF }

  TDBGridEhImportAsVCLDBIF = class(TDBGridEhImport)
  private
    Prefix: TVCLDBIF_BOF;
    FIgnoreAll: Boolean;
    LastValue: Variant;
    FieldNames: TStringList;
    UseFieldNames: Boolean;
    procedure ReadValue;
  protected
    procedure ReadPrefix; override;
    procedure ReadRecord(ColumnsList: TColumnsEhList); override;
    procedure ReadDataCell(Column: TColumnEh); override;
  public
    procedure ImportFromStream(AStream: TStream; IsImportAll: Boolean); override;
  end;

  { Routines to import/export DBGridEh to/from file/stream }

procedure SaveDBGridEhToExportFile(ExportClass: TDBGridEhExportClass;
  DBGridEh: TCustomDBGridEh; const FileName: String; IsSaveAll: Boolean);
procedure WriteDBGridEhToExportStream(ExportClass: TDBGridEhExportClass;
  DBGridEh: TCustomDBGridEh; Stream: TStream; IsSaveAll: Boolean);

procedure LoadDBGridEhFromImportFile(ImportClass: TDBGridEhImportClass;
  DBGridEh: TCustomDBGridEh; const FileName: String; IsLoadToAll: Boolean);
procedure ReadDBGridEhFromImportStream(ImportClass: TDBGridEhImportClass;
  DBGridEh: TCustomDBGridEh; Stream: TStream; IsLoadToAll: Boolean);

  { Routines to support clipboard for DBGridEh }

var
  CF_VCLDBIF: Word;

var
  ExtendedVCLDBIFImpExpRowSelect: Boolean = True;
  DBGridEhImpExpCsvSeparator: Char = ';';

procedure DBGridEh_DoCutAction(DBGridEh: TCustomDBGridEh; ForWholeGrid: Boolean);
procedure DBGridEh_DoCopyAction(DBGridEh: TCustomDBGridEh; ForWholeGrid: Boolean);
procedure DBGridEh_DoPasteAction(DBGridEh: TCustomDBGridEh; ForWholeGrid: Boolean);
procedure DBGridEh_DoDeleteAction(DBGridEh: TCustomDBGridEh; ForWholeGrid: Boolean);


implementation

uses DBConsts, EhLibConsts;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人8x视频一区二区| 麻豆精品国产传媒mv男同| 有坂深雪av一区二区精品| 午夜电影网一区| 大白屁股一区二区视频| 欧美色图一区二区三区| 91精品国产综合久久精品性色| 欧美mv日韩mv| 一区二区三区高清不卡| 狠狠色狠狠色综合日日91app| 99re热视频这里只精品| 亚洲精品在线网站| 日韩1区2区日韩1区2区| 97久久超碰精品国产| 亚洲欧美日韩电影| 成人午夜av影视| 亚洲美腿欧美偷拍| 69成人精品免费视频| 久久国产日韩欧美精品| 91精品国产欧美一区二区成人| 自拍偷拍欧美精品| 成人综合婷婷国产精品久久蜜臀| 国产精品女同一区二区三区| 国产专区综合网| 国产精品激情偷乱一区二区∴| 狠狠色丁香久久婷婷综| 国产日本一区二区| 国产精品99久久久久久久vr| 26uuu久久天堂性欧美| 青青草一区二区三区| 欧美日韩成人综合天天影院 | 欧美综合亚洲图片综合区| 国产精品成人一区二区艾草| 欧美亚洲愉拍一区二区| 国产一区二区视频在线播放| 精品国产精品一区二区夜夜嗨| 国产不卡高清在线观看视频| 亚洲欧美日韩在线不卡| 日韩欧美精品三级| 久久机这里只有精品| 亚洲欧美日韩国产手机在线 | 欧美在线你懂的| 激情深爱一区二区| 亚洲综合激情另类小说区| 欧美在线影院一区二区| 国内精品久久久久影院色| 一区二区三区四区高清精品免费观看| 欧美一区二区三区免费大片| 精品污污网站免费看| 国产毛片精品视频| 亚洲综合丁香婷婷六月香| 日本一区二区三区国色天香| 91麻豆精品91久久久久久清纯| 成人精品亚洲人成在线| 麻豆91精品91久久久的内涵| 一区二区成人在线观看| 国产精品嫩草影院av蜜臀| 欧美不卡一区二区三区| 精品视频在线免费看| 成人精品免费看| 国产精品久久久99| 日韩免费视频一区| 欧美嫩在线观看| 91久久精品国产91性色tv| 日本欧美一区二区| 亚洲乱码中文字幕综合| 欧美sm极限捆绑bd| 欧美日韩一区成人| 欧美系列在线观看| www.日韩精品| 久久精品一区二区三区av| 国产一区二区导航在线播放| 亚洲va天堂va国产va久| 精品久久人人做人人爽| 欧美亚洲一区二区在线观看| 99久久婷婷国产综合精品电影 | 欧美午夜电影网| 丰满白嫩尤物一区二区| 国产成人亚洲综合a∨婷婷图片| 国产精品三级在线观看| 日韩欧美高清在线| 精品视频在线免费| 91热门视频在线观看| 国产成人亚洲综合a∨猫咪| 久久99热这里只有精品| 日本不卡一区二区三区| 免费成人在线网站| 免费在线看成人av| 亚洲18影院在线观看| 亚洲精品成人悠悠色影视| 国产精品久久久久婷婷| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美高清www午色夜在线视频| 亚洲一区二区视频在线观看| 国产无人区一区二区三区| 日韩精品最新网址| 日韩三级高清在线| av电影在线不卡| 国产成人免费视频| 国产精品一二三| 国产精品一品视频| 精品一区二区久久久| 麻豆成人久久精品二区三区小说| 日韩精品亚洲专区| 蜜臀精品一区二区三区在线观看| 日韩精品成人一区二区在线| 日韩精品一二三四| 久久精品国产久精国产| 一区二区高清免费观看影视大全| 亚洲美女在线一区| 亚洲电影第三页| 秋霞影院一区二区| 日韩av电影天堂| 国产福利精品一区二区| 不卡av免费在线观看| 在线视频一区二区三| 在线成人高清不卡| 精品不卡在线视频| 国产精品美日韩| 一区二区三区四区在线| 天堂成人国产精品一区| 蜜桃av一区二区三区| 国产福利一区二区| 色乱码一区二区三区88| 欧美精选一区二区| 久久久美女毛片| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美亚洲动漫制服丝袜| www.亚洲人| 日韩欧美综合在线| 中文字幕第一页久久| 一二三四社区欧美黄| 极品少妇一区二区| 99精品视频一区二区三区| 欧美日韩免费高清一区色橹橹| 日韩一区二区电影| 2023国产精品视频| 亚洲国产精品久久人人爱| 国产麻豆一精品一av一免费| 色激情天天射综合网| 久久综合久久99| 亚洲激情图片qvod| 裸体歌舞表演一区二区| 91原创在线视频| 日韩一区二区三区在线观看| 国产精品传媒在线| 青椒成人免费视频| 91精品福利视频| 国产欧美一区二区三区鸳鸯浴| 亚洲妇女屁股眼交7| 国产白丝精品91爽爽久久| 日韩网站在线看片你懂的| 国产精品毛片久久久久久久| 日本伊人精品一区二区三区观看方式| 高清av一区二区| 日韩一区二区在线观看视频播放| 中文字幕在线免费不卡| 老色鬼精品视频在线观看播放| 色激情天天射综合网| 欧美激情一区二区三区| 激情成人综合网| 欧美精品久久天天躁| 亚洲天堂av一区| 美洲天堂一区二卡三卡四卡视频| 欧美日韩亚洲综合一区| 亚洲视频一区二区在线| 国产a视频精品免费观看| 精品久久人人做人人爽| 日日夜夜一区二区| 欧美综合亚洲图片综合区| 国产欧美日韩另类一区| 黑人精品欧美一区二区蜜桃| 欧美性大战久久久久久久| 亚洲精品水蜜桃| 97久久精品人人澡人人爽| 国产精品视频一二| 国产自产高清不卡| 中文字幕不卡在线观看| 国产成人免费9x9x人网站视频| 欧美电影精品一区二区| 美女mm1313爽爽久久久蜜臀| 欧美日韩国产欧美日美国产精品| 一区二区三区四区在线播放| 91国产免费看| 亚洲一级二级三级| 成人激情图片网| 一区二区三区精品在线观看| 91天堂素人约啪| 亚洲精品水蜜桃| 色丁香久综合在线久综合在线观看| 亚洲尤物在线视频观看| 91精品欧美福利在线观看| 精品一区中文字幕| 2023国产精品自拍| 97久久精品人人做人人爽50路| 亚洲裸体在线观看| 色哟哟一区二区| 香蕉成人啪国产精品视频综合网| 欧美日韩在线不卡| 精品亚洲成a人在线观看|