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

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

?? ehlibsd.pas

?? 一個功能強大的DBGRID控件
?? PAS
字號:
{*******************************************************}
{                                                       }
{                        EhLib                          }
{    Copyright (c) 2002 - 2007 by Dmitry V. Bolshakov   }
{                                                       }
{  Register object that sort and filtering data in      }
{         TSDQuery, TSDMacroQuery from SQLDirect        }
{   Copyright (c) 2003-2004 by Andrew Holubovski        }
{    Copyright (c) 2004-2007 by by Stalker SoftWare     }
{                     Build 1.2.0                       }
{                                                       }
{*******************************************************}

{*******************************************************}
{ Add this unit to 'uses' clause of any unit of your    }
{ project to allow TDBGridEh to sort data in            }
{ TSDQuery automatically after sorting markers          }
{ will be changed.                                      }
{ TSQLDatasetFeaturesEh will try to find line in        }
{ TSDQuery.SQL string that begin from 'ORDER BY' phrase }
{ and replace line by 'ORDER BY FieldNo1 [DESC],....'   }
{ using SortMarkedColumns.                              }
{ Used SQLDirect 5.2 or Above                           }
{      EhLib 4.2.9 or Above                             }
{*******************************************************}

unit EhLibSD;

{$I EhLib.Inc}

interface

uses
  DbUtilsEh, DBGridEh, SDEngine, Db, SysUtils, ToolCtrlsEh;

type
  TSDSQLDatasetFeaturesEh = class(TSQLDatasetFeaturesEh)
  public
    constructor Create; override;
    procedure ApplySorting(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean); override;
    procedure ApplyFilter(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean); override;
    function LocateText(AGrid: TCustomDBGridEh; const FieldName: string;
      const Text: String; AOptions: TLocateTextOptionsEh; Direction: TLocateTextDirectionEh;
      Matching: TLocateTextMatchingEh; TreeFindRange: TLocateTextTreeFindRangeEh): Boolean; override;
  end;

implementation

uses
  TypInfo;

function SDDataSetDriverName(DataSet: TSDDataSet): String;
begin
 Result := GetEnumName(TypeInfo(TSDServerType), Ord(DataSet.Database.ServerType));
 Result := Copy(Result, 3, Length(Result)-2)
end; { SDDataSetDriverName }

function DateValueToSDSQLStringProc(DataSet: TDataSet; Value: Variant): String;
begin
 Result := DateValueToDataBaseSQLString(SDDataSetDriverName(TSDDataSet(DataSet)), Value)
end; { DateValueToSDSQLStringProc }

procedure SortDataInSDDataSet(Grid: TCustomDBGridEh; DataSet: TSDDataSet);
var
  cFields  :String;
  cOrders  :String;
  cCases   :String;
  nCou     :Integer;

begin

 cFields := '';
 cOrders := '';
 cCases  := '';

 for nCou := 0 to Grid.SortMarkedColumns.Count-1 do begin

   cFields := cFields + Grid.SortMarkedColumns[nCou].FieldName+';';

   if Grid.SortMarkedColumns[nCou].Title.SortMarker = smUpEh then
     cOrders := cOrders + 'Desc;'
   else
     cOrders := cOrders + 'Asc;';

   cCases := cCases+'True; ';

 end; { for }

 Delete(cFields, Length(cFields), 1);
 Delete(cOrders, Length(cOrders), 1);
 Delete(cCases, Length(cCases), 1);

 if Trim(cFields) <> '' then
   DataSet.SortRecords(cFields, cOrders, cCases);

end; { SortDataInSDDataSet }

{ TSDSQLDatasetFeaturesEh }

constructor TSDSQLDatasetFeaturesEh.Create;
begin
 inherited Create;
 DateValueToSQLString := DateValueToSDSQLStringProc;
end; { Create }

procedure TSDSQLDatasetFeaturesEh.ApplyFilter(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean);
begin

 if Sender is TDBGridEh then begin

   if not DataSet.Active then Exit;

   if TDBGridEh(Sender).STFilter.Local then begin
     DataSet.Filter :=
       GetExpressionAsFilterString(TDBGridEh(Sender), GetOneExpressionAsLocalFilterString, nil);
     DataSet.Filtered := (Trim(DataSet.Filter) <> '');
   end else
     ApplyFilterSQLBasedDataSet(TDBGridEh(Sender), DateValueToSDSQLStringProc, IsReopen, 'SQL');

  end; { if }

end; { ApplyFilter }

procedure TSDSQLDatasetFeaturesEh.ApplySorting(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean);
begin

 if Sender is TCustomDBGridEh then begin

   if not DataSet.Active then Exit;

   if TCustomDBGridEh(Sender).SortLocal then
     SortDataInSDDataSet(TCustomDBGridEh(Sender), TSDDataSet(DataSet))
   else
     inherited ApplySorting(Sender, DataSet, IsReopen);
 end; { if }    

end; { ApplySorting }

function TSDSQLDatasetFeaturesEh.LocateText(AGrid: TCustomDBGridEh;
  const FieldName, Text: String; AOptions: TLocateTextOptionsEh;
  Direction: TLocateTextDirectionEh; Matching: TLocateTextMatchingEh;
  TreeFindRange: TLocateTextTreeFindRangeEh): Boolean;
begin

 if (FieldName <> '') or (Assigned(AGrid.SelectedField.OnGetText)) then
   Result := inherited LocateText(AGrid, FieldName, Text, AOptions, Direction, Matching, TreeFindRange)
 else begin

   if (Direction = ltdDownEh) then
     Result := (AGrid.DataSource.DataSet as TSDDataSet).LocateNext(AGrid.SelectedField.FieldName, Text, [loCaseInsensitive, loPartialKey])
   else
   if (Direction = ltdUpEh) then
     Result := (AGrid.DataSource.DataSet as TSDDataSet).LocatePrior(AGrid.SelectedField.FieldName, Text, [loCaseInsensitive, loPartialKey])
   else
     Result := (AGrid.DataSource.DataSet as TSDDataSet).Locate(AGrid.SelectedField.FieldName, Text, [loCaseInsensitive, loPartialKey])

 end; { if }  

end; { LocateText }

initialization
  RegisterDatasetFeaturesEh(TSDSQLDatasetFeaturesEh, TSDQuery);
  RegisterDatasetFeaturesEh(TSDSQLDatasetFeaturesEh, TSDMacroQuery);

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
风间由美性色一区二区三区| 激情综合网av| 中文乱码免费一区二区| 精品国产免费一区二区三区四区 | 日韩亚洲欧美在线| 日本韩国欧美一区| 色吊一区二区三区| 欧美日韩一级片在线观看| 欧美人成免费网站| 日韩三级视频中文字幕| 337p日本欧洲亚洲大胆精品 | 国产精品对白交换视频| 亚洲视频免费观看| 亚洲图片欧美综合| 奇米在线7777在线精品| 国产伦精品一区二区三区视频青涩 | 亚洲色图一区二区三区| 专区另类欧美日韩| 亚洲高清一区二区三区| 免费不卡在线视频| 国产成人免费在线观看| 97se亚洲国产综合自在线不卡| 色综合久久88色综合天天6 | 国产成人aaa| 91同城在线观看| 欧美精品第1页| 久久久久97国产精华液好用吗| 国产精品嫩草久久久久| 亚洲午夜免费视频| 国产在线视频精品一区| 欧美亚洲国产一区二区三区| 日韩天堂在线观看| 欧美国产精品中文字幕| 亚洲va欧美va天堂v国产综合| 久久se这里有精品| 91在线高清观看| 日韩午夜在线影院| 亚洲欧美一区二区三区孕妇| 久久精品理论片| 一本久久a久久免费精品不卡| 91精品国产综合久久久久| 国产日韩精品一区二区三区在线| 亚洲欧美电影院| 麻豆精品视频在线观看| 99精品视频在线播放观看| 欧美xxxxx裸体时装秀| 一区二区三区在线影院| 国产白丝精品91爽爽久久| 9191国产精品| 亚洲天堂久久久久久久| 国产乱子伦一区二区三区国色天香| 一本一道久久a久久精品| 久久麻豆一区二区| 日韩av在线发布| 欧美亚洲一区二区三区四区| 国产精品日韩精品欧美在线| 久久国产福利国产秒拍| 欧美日韩一区视频| 亚洲黄色在线视频| av在线不卡免费看| 久久久久久麻豆| 国内精品不卡在线| 欧美va亚洲va| 免费成人av在线| 91 com成人网| 婷婷久久综合九色综合伊人色| 色综合婷婷久久| 亚洲视频狠狠干| a4yy欧美一区二区三区| 国产精品美女一区二区在线观看| 国产一本一道久久香蕉| 国产欧美一区二区精品婷婷 | 91女神在线视频| 亚洲欧美综合色| jizzjizzjizz欧美| 1区2区3区欧美| 91麻豆视频网站| 一区二区在线看| 在线精品视频一区二区| 亚洲激情图片小说视频| 在线观看亚洲成人| 亚洲成人一区二区在线观看| 91精品办公室少妇高潮对白| 亚洲夂夂婷婷色拍ww47| 欧美日韩一区不卡| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美一级欧美一级在线播放| 青青草97国产精品免费观看无弹窗版| 日韩一二三区不卡| 国产精品一区二区在线观看不卡 | 日本道色综合久久| 亚洲一区欧美一区| 日韩一级片网址| 国产成人精品免费看| 亚洲色图在线视频| 欧美视频在线观看一区二区| 日本不卡123| 国产亚洲视频系列| 91看片淫黄大片一级在线观看| 亚洲午夜久久久久中文字幕久| 欧美三级三级三级爽爽爽| 免费观看一级特黄欧美大片| 国产欧美日韩中文久久| 色综合一区二区| 麻豆一区二区三区| 欧美高清一级片在线观看| 在线欧美日韩精品| 国产一区二区三区四区五区入口| 亚洲国产精品传媒在线观看| 欧美性猛交xxxxxx富婆| 国产精品白丝jk黑袜喷水| 亚洲欧美视频在线观看| 日韩三级高清在线| 色悠久久久久综合欧美99| 蜜臀精品一区二区三区在线观看| 国产精品久久一级| 欧美一区二区三区免费大片 | 国产精品色婷婷久久58| 欧美综合视频在线观看| 欧美午夜在线观看| 欧美视频在线播放| 国产麻豆视频一区二区| 亚洲国产成人精品视频| 欧美韩日一区二区三区四区| 欧美军同video69gay| www.欧美.com| 麻豆91小视频| 亚洲午夜国产一区99re久久| 中文字幕乱码一区二区免费| 欧美一区二区三区系列电影| 91国产免费观看| 成人精品小蝌蚪| 精品在线一区二区三区| 丝袜美腿亚洲综合| 一区二区三区在线视频观看| 欧美国产成人在线| 久久精品网站免费观看| 日韩欧美在线影院| 欧美日韩国产片| 在线观看av不卡| 色婷婷综合久久久久中文一区二区| 国产精品主播直播| 国产一区二区在线观看免费| 美女视频黄a大片欧美| 亚洲第一综合色| 午夜欧美一区二区三区在线播放| 亚洲精品美国一| 亚洲无线码一区二区三区| 亚洲精品国产精品乱码不99| 综合久久久久久| 亚洲欧洲成人自拍| 中文字幕一区二区三区蜜月| 欧美国产日韩一二三区| 国产精品视频九色porn| 国产精品麻豆99久久久久久| 中文字幕二三区不卡| 国产精品美女久久久久久久久| 国产精品丝袜91| 亚洲精品成人在线| 亚洲一区二区三区四区中文字幕| 一区二区三区欧美久久| 性做久久久久久久免费看| 日韩影视精彩在线| 日本在线不卡视频| 免费观看久久久4p| 国产成人综合精品三级| av电影在线观看一区| 色狠狠桃花综合| 91精品婷婷国产综合久久竹菊| 91精品国产综合久久久久久漫画 | 久久精品亚洲国产奇米99| 国产欧美日韩在线看| 国产精品国产a级| 亚洲在线观看免费| 日韩激情视频网站| 国产成人免费在线观看不卡| 成年人网站91| 欧美日韩一区三区四区| 久久久精品黄色| 亚洲三级在线观看| 蜜臀va亚洲va欧美va天堂| 国产精品中文字幕一区二区三区| 99在线精品免费| 91麻豆精品国产91| 国产精品美女久久久久久久| 五月综合激情婷婷六月色窝| 国产一区不卡精品| 欧美日韩国产综合草草| 久久九九久久九九| 亚洲午夜av在线| 国产91富婆露脸刺激对白| 在线观看精品一区| 国产欧美一区二区精品仙草咪| 午夜视频一区二区| 成人午夜精品在线| 欧美一区三区四区| 亚洲色图视频网| 狠狠狠色丁香婷婷综合激情| 日韩欧美一区二区视频| 国产精品乱人伦中文|