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

📄 ufrmfiltersqlq.pas

📁 一个会议签到系统
💻 PAS
字号:
{*******************************************************************************
*         易线路 的建议 K3 系统     
*******************************************************************************}
unit uFrmFilterSQLQ;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, Db, DBClient;

type
  TFrmFilterSQLQ = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    BtnSure: TBitBtn;
    BtnCancel: TBitBtn;
    EdtFind: TEdit;
    Label1: TLabel;
    Bevel2: TBevel;
    Panel3: TPanel;
    Lbox: TListBox;
    CDSA: TClientDataSet;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnSureClick(Sender: TObject);
    procedure BtnCancelClick(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure LboxDblClick(Sender: TObject);
    procedure LboxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure LboxClick(Sender: TObject);
    procedure EdtFindKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    sCurStr,sCurField,sCurSQL:String;
    Procedure PFillListBox();
    Procedure PReturn();
    { Public declarations }
  end;

var
  FrmFilterSQLQ: TFrmFilterSQLQ;

implementation

uses uDM,uFuntionSys, uFrmFilterSQL;

{$R *.DFM}

procedure TFrmFilterSQLQ.FormShow(Sender: TObject);
begin
  ReadINIForm(Self);
end;

procedure TFrmFilterSQLQ.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  SaveINIForm(Self);
  Action:=caFree;
  FrmFilterSQLQ:=nil;
end;

procedure TFrmFilterSQLQ.BtnSureClick(Sender: TObject);
begin
  PReturn();
end;

procedure TFrmFilterSQLQ.BtnCancelClick(Sender: TObject);
begin
  Close;
end;
{ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
 *       从数据库中提取数据 填充列表筐 
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo}
procedure TFrmFilterSQLQ.PFillListBox;
var
  sSQL,Str:String;
begin
  sSQL:='Select Distinct '+sCurField
       +' From ('+sCurSQL+') T';
  if not FCarryOutSQL(CDSA,sSQL,True,False) then Exit;
  CDSA.First;Lbox.Items.Clear;
  Str:=CDSA.Fields[0].FieldName;
  while not CDSA.Eof do begin
     sSQL:=Trim(CDSA.FieldByName(Str).AsString);
     Lbox.Items.Add(sSQL);
     CDSA.Next;
  end;

  EdtFind.Text:=sCurStr;

end;

procedure TFrmFilterSQLQ.FormResize(Sender: TObject);
begin
  EdtFind.Width:=Panel1.Width-(271-214);    
end;

procedure TFrmFilterSQLQ.LboxDblClick(Sender: TObject);
begin
  EdtFind.Text:=Lbox.Items.Strings[Lbox.ItemIndex];
  PReturn();
end;

procedure TFrmFilterSQLQ.LboxKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  EdtFind.Text:=Lbox.Items.Strings[Lbox.ItemIndex];
  if Key = 13 then  begin
     PReturn();
  end;   
end;

procedure TFrmFilterSQLQ.PReturn;
begin
  FrmFilterSQL.sTempSQL:=EdtFind.Text;
  Close; 
end;

procedure TFrmFilterSQLQ.LboxClick(Sender: TObject);
begin
  EdtFind.Text:=Lbox.Items.Strings[Lbox.ItemIndex];
end;

procedure TFrmFilterSQLQ.EdtFindKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  Str,sTxt:String;
begin
  if (Key = VK_Down) or (Key = VK_Up) then  Lbox.SetFocus;
  if  Key <> 13 then Exit;

  CDSA.First;Lbox.Items.Clear;
  Str:=CDSA.Fields[0].FieldName;
  while not CDSA.Eof do begin
     sTxt:=Trim(CDSA.FieldByName(Str).AsString);
     if Pos(EdtFind.Text,sTxt) > 0 then  Lbox.Items.Add(sTxt);
     if Trim(EdtFind.Text) = ''    then  Lbox.Items.Add(sTxt);
     CDSA.Next;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -