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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ehlibcds.pas

?? 一個功能強大的DBGRID控件
?? PAS
字號:
{*******************************************************}
{                                                       }
{                       EhLib v3.5                      }
{          Register object that sort data in            }
{                TCustomClientDataSet                   }
{                                                       }
{   Copyright (c) 2002, 2003 by Dmitry V. Bolshakov     }
{                                                       }
{*******************************************************}

{*******************************************************}
{ Add this unit to 'uses' clause of any unit of your    }
{ project to allow TDBGridEh to sort data in            }
{ TClientDataSet automatically  after sorting markers   }
{ will be changed.                                      }
{ TCDSDatasetFeaturesEh determine if                    }
{ TDBGridEh.SortLocal = True then it will create index  }
{ with name 'SortIndexEh' using SortMarkedColumns       }
{ else if SortLocal = False and CDS connected to other  }
{ DataSet via DataSetProvider it will try to sord data  }
{ in this DataSet using GetDatasetFeaturesForDataSet    }
{ function                                              }
{*******************************************************}

unit EhLibCDS;

{$I EhLib.Inc}

interface

uses
{$IFDEF EH_LIB_6} Variants, {$ENDIF}
  DbUtilsEh, DBGridEh, Db, DBClient, Provider, SysUtils;

type

{$IFNDEF EH_LIB_6}
  TCustomClientDataSet = class(TClientDataSet);
{$ENDIF}

  TCDSDatasetFeaturesEh = class(TDatasetFeaturesEh)
  public
    function GetProviderDataSet(DataSet: TDataSet): TDataSet; virtual;
    procedure ApplySorting(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean); override;
    procedure ApplyFilter(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean); override;
  end;

implementation

uses Classes;

type
{$IFDEF EH_LIB_6}
  TCustomClientDataSetCrack = class(TCustomClientDataSet);
{$ELSE}
  TCustomClientDataSetCrack = class(TClientDataSet);
{$ENDIF}

{ TCDSDatasetFeaturesEh }

function TCDSDatasetFeaturesEh.GetProviderDataSet(DataSet: TDataSet): TDataSet;
var
{$IFDEF CIL}
  CDS: TClientDataSet;
{$ELSE}
  CDS: TCustomClientDataSetCrack;
{$ENDIF}
  ProvComp: TComponent;
  DS: TObject;
begin
  Result := nil;
{$IFDEF EH_LIB_6}
  if not (DataSet is TCustomClientDataSet) then Exit;
{$ELSE}
  if not (DataSet is TClientDataSet) then Exit;
{$ENDIF}
{$IFDEF CIL}
{ TODO : How to get ProviderName for TCustomDataSet under CIL }
  if DataSet is TClientDataSet
    then CDS := TClientDataSet(DataSet)
    else Exit;
{$ELSE}
  CDS := TCustomClientDataSetCrack(DataSet);
{$ENDIF}
  if (CDS.ProviderName <> '') and Assigned(CDS.Owner) then
  begin
    ProvComp := CDS.Owner.FindComponent(CDS.ProviderName);
    if Assigned(ProvComp) and (ProvComp is TCustomProvider) then
    begin
      DS := GetObjectProperty(ProvComp, 'DataSet');
      if Assigned(DS) and (DS is TDataSet) then
        Result := TDataSet(DS);
    end;
  end;
end;

procedure TCDSDatasetFeaturesEh.ApplySorting(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean);
var
  DS: TDataSet;
  CDS: TCustomClientDataSetCrack;
  DatasetFeatures: TDatasetFeaturesEh;
  i: Integer;
  IndexFields, IndexDescFields: String;
begin
  if Sender is TCustomDBGridEh then
    if TCustomDBGridEh(Sender).SortLocal then
      with TCustomDBGridEh(Sender) do
      begin
        IndexFields := '';
        IndexDescFields := '';
        for i := 0 to SortMarkedColumns.Count - 1 do
        begin
          IndexFields := IndexFields + SortMarkedColumns[i].FieldName + ';';
          if SortMarkedColumns[i].Title.SortMarker = smUpEh then
            IndexDescFields := IndexDescFields + SortMarkedColumns[i].FieldName + ';'
        end;
        Delete(IndexFields,Length(IndexFields),1);
        Delete(IndexDescFields,Length(IndexDescFields),1);
{$IFDEF EH_LIB_6}
        if (DataSet is TCustomClientDataSet) then
{$ELSE}
        if (DataSet is TClientDataSet) then
{$ENDIF}
        begin
          CDS := TCustomClientDataSetCrack(DataSet);
          CDS.IndexDefs.Update;
          if CDS.IndexDefs.IndexOf('SortIndexEh') >= 0 then
            CDS.DeleteIndex('SortIndexEh');
          if IndexFields > '' then
          begin
            CDS.AddIndex('SortIndexEh', IndexFields, [], IndexDescFields);
            CDS.IndexDefs.Update;
            CDS.IndexName := 'SortIndexEh';
          end else
            CDS.IndexName := '';
          CDS.First;
        end;
      end
    else
    begin
      DS := GetProviderDataSet(DataSet);
      if DS <> nil then
      begin
        DatasetFeatures := GetDatasetFeaturesForDataSet(DS);
        if DatasetFeatures <> nil then
          DatasetFeatures.ApplySorting(Sender, DS, False);
        DataSet.Close;
        DataSet.Open;
      end;
    end;
end;

procedure TCDSDatasetFeaturesEh.ApplyFilter(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean);
var
  DS: TDataSet;
  DatasetFeatures: TDatasetFeaturesEh;
begin
  if TDBGridEh(Sender).STFilter.Local then
  begin
    TDBGridEh(Sender).DataSource.DataSet.Filter :=
      GetExpressionAsFilterString(TDBGridEh(Sender),
        GetOneExpressionAsLocalFilterString, nil, False, True);
    // CDS bug when empty filter and aggrigated fields
    if TDBGridEh(Sender).DataSource.DataSet.Filter = '' then
      TDBGridEh(Sender).DataSource.DataSet.Filter := '1=1';
    TDBGridEh(Sender).DataSource.DataSet.Filtered := True;        
  end else if (DataSet is {$IFDEF EH_LIB_6}TCustomClientDataSet{$ELSE}TClientDataSet{$ENDIF}) then
  begin
    DS := GetProviderDataSet(TCustomClientDataSet(DataSet));
    if DS <> nil then
    begin
      DatasetFeatures := GetDatasetFeaturesForDataSet(TDataSet(DS));
      if (DatasetFeatures <> nil) then
        DatasetFeatures.ApplyFilter(TDBGridEh(Sender), TDataSet(DS), False);
      DataSet.Close;
      DataSet.Open;
    end;
  end;
end;

initialization
{$IFDEF EH_LIB_6}
  RegisterDatasetFeaturesEh(TCDSDatasetFeaturesEh, TCustomClientDataSet);
{$ELSE}
  RegisterDatasetFeaturesEh(TCDSDatasetFeaturesEh, TClientDataSet);
{$ENDIF}
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区成人在线| 欧美精品一区二区三| 成人免费毛片a| 国产精品亚洲一区二区三区在线| 美女网站色91| 激情综合五月婷婷| 国产精品一区二区三区网站| 国产福利一区在线| 国产aⅴ综合色| 日韩免费电影一区| 日韩一级完整毛片| 欧美白人最猛性xxxxx69交| 91 com成人网| 欧美videossexotv100| 精品福利一区二区三区| 国产三级欧美三级日产三级99 | 在线亚洲欧美专区二区| 色综合色综合色综合色综合色综合| 91丨九色丨尤物| 欧美日韩mp4| 日韩美女在线视频| 中文字幕一区二区三| 亚洲激情成人在线| 免费在线观看不卡| 成人av电影观看| 7777精品久久久大香线蕉| 日韩欧美成人一区二区| 中文字幕亚洲欧美在线不卡| 亚洲成人av一区二区| 国产麻豆欧美日韩一区| 91啪九色porn原创视频在线观看| 欧美日韩精品高清| 中文字幕欧美国产| 日本不卡高清视频| av在线一区二区| 日韩精品一区二区三区在线播放 | 色妞www精品视频| 欧美一区二区视频在线观看 | 97久久超碰精品国产| 欧美日韩精品免费观看视频| 国产无人区一区二区三区| 亚洲国产综合视频在线观看| 国产剧情一区二区三区| 日本韩国精品一区二区在线观看| 欧美哺乳videos| 亚洲人成亚洲人成在线观看图片 | 成人午夜免费av| 8v天堂国产在线一区二区| 中文久久乱码一区二区| 日日欢夜夜爽一区| 一本到一区二区三区| 久久久.com| 免费一级欧美片在线观看| 色综合婷婷久久| 久久久久久一级片| 麻豆精品国产91久久久久久| 色综合天天做天天爱| 欧美国产97人人爽人人喊| 另类小说欧美激情| 欧美剧情电影在线观看完整版免费励志电影| 亚洲欧洲美洲综合色网| 蜜桃av一区二区| 欧美精品在线观看一区二区| 亚洲精品精品亚洲| 91在线精品一区二区三区| 国产亚洲成av人在线观看导航 | 国产欧美综合色| 国内偷窥港台综合视频在线播放| 欧美日韩三级一区二区| 亚洲主播在线播放| 欧美视频在线不卡| 一区二区成人在线观看| 在线观看亚洲专区| 亚洲高清免费观看高清完整版在线观看| 成人晚上爱看视频| 国产精品久久网站| 99在线精品一区二区三区| 国产精品免费丝袜| av中文一区二区三区| 亚洲色大成网站www久久九九| 成人性视频网站| 欧美国产丝袜视频| 91亚洲精品久久久蜜桃网站 | 欧美一区二区三区四区五区| 日韩精品色哟哟| 精品国产一区二区三区久久影院| 老司机精品视频一区二区三区| 精品区一区二区| 国产电影一区在线| 亚洲欧美日韩中文播放| 欧美午夜精品电影| 麻豆成人免费电影| 国产调教视频一区| 91精彩视频在线观看| 亚洲小说春色综合另类电影| 欧美一级xxx| 成人三级伦理片| 亚洲一区二区欧美激情| 日韩欧美视频在线| 99久久久国产精品| 日韩国产成人精品| 国产日韩欧美不卡| 在线视频国内自拍亚洲视频| 日韩电影免费一区| 中文字幕一区二区三区色视频| 欧美调教femdomvk| 国产一区二三区| 亚洲综合一区二区三区| 久久久久久久国产精品影院| 91美女视频网站| 麻豆精品一区二区av白丝在线| 日本一区二区综合亚洲| 欧美群妇大交群的观看方式| 国产精品99久久久久久久女警| 亚洲精品国产精品乱码不99| 精品理论电影在线观看| 色悠悠久久综合| 国产精品中文字幕一区二区三区| 亚洲黄色片在线观看| 久久麻豆一区二区| 欧美日韩国产bt| 91欧美激情一区二区三区成人| 精品一区二区在线看| 亚洲精品国产一区二区精华液 | youjizz国产精品| 另类欧美日韩国产在线| 夜夜嗨av一区二区三区四季av| 久久婷婷国产综合精品青草| 欧美性猛片aaaaaaa做受| 99综合电影在线视频| 国产真实精品久久二三区| 午夜精品在线视频一区| 国产精品久久毛片| 国产丝袜美腿一区二区三区| 日韩一级高清毛片| 欧美区一区二区三区| 欧美亚洲国产一区二区三区va| 成人激情视频网站| 国产成人综合视频| 国产很黄免费观看久久| 久久66热re国产| 美女精品一区二区| 人人精品人人爱| 日韩精品电影在线| 日韩和欧美一区二区| 日本在线不卡视频一二三区| 亚洲高清视频的网址| 亚洲综合久久久| 亚洲一区视频在线| 亚洲国产欧美一区二区三区丁香婷| 亚洲精品精品亚洲| 亚洲综合在线电影| 亚洲国产精品一区二区久久恐怖片 | 亚洲福利视频导航| 亚洲国产你懂的| 天天综合日日夜夜精品| 三级欧美韩日大片在线看| 亚洲网友自拍偷拍| 日本欧美在线观看| 久久国产欧美日韩精品| 久久99精品国产麻豆婷婷| 日本成人在线一区| 久久激情五月激情| 成人午夜精品在线| 色诱亚洲精品久久久久久| 欧美影片第一页| 日韩视频一区在线观看| 久久精品在这里| 亚洲欧美日韩电影| 五月天一区二区三区| 久久aⅴ国产欧美74aaa| 国产很黄免费观看久久| 91在线无精精品入口| 欧美精品在欧美一区二区少妇| 日韩免费性生活视频播放| 国产日韩欧美a| 亚洲自拍都市欧美小说| 经典一区二区三区| 不卡一区在线观看| 欧美美女激情18p| 久久亚洲一区二区三区明星换脸| 中文字幕一区二区三区乱码在线| 亚洲国产视频直播| 国产精品亚洲一区二区三区在线| 色婷婷av一区| 欧美成人精品高清在线播放| 国产精品初高中害羞小美女文| 亚洲超碰精品一区二区| 国产精品91一区二区| 日本道精品一区二区三区| 欧美绝品在线观看成人午夜影视| 久久免费美女视频| 亚洲成a人片在线观看中文| 紧缚捆绑精品一区二区| 在线观看免费一区| 中文字幕精品在线不卡| 美女脱光内衣内裤视频久久网站| 91片黄在线观看| 久久久一区二区| 视频一区中文字幕国产|