?? find_zef002.pas
字號:
unit find_zef002;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Wwquery, StdCtrls, Buttons, Mask, wwdbedit,
Wwdotdot, ComCtrls, wwdbdatetimepicker;
type
Tfind_zef002f = class(TForm)
ScrollBox1: TScrollBox;
GroupBox1: TGroupBox;
Label2: TLabel;
bjdh: TEdit;
Label4: TLabel;
djrq1: TwwDBDateTimePicker;
Label6: TLabel;
djrq2: TwwDBDateTimePicker;
Btn_Search: TBitBtn;
Btn_Cancel: TBitBtn;
equ_positioncode: TwwDBComboDlg;
equ_positionname: TEdit;
Label1: TLabel;
Data_query: TwwQuery;
procedure FormCreate(Sender: TObject);
procedure EditEnter(Sender: TObject);
procedure EditExit(Sender:Tobject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Btn_SearchClick(Sender: TObject);
procedure Btn_CancelClick(Sender: TObject);
procedure equ_positioncodeCustomDlg(Sender: TObject);
procedure equ_positioncodeKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
filter_sql,find_bill: string;
MAXTABORDER :integer;
end;
var
find_zef002f: Tfind_zef002f;
implementation
uses ppublic,pdatabse,main;
{$R *.dfm}
procedure Tfind_zef002f.FormCreate(Sender: TObject);
begin
MAXTABORDER:=10;
djrq1.text:='';
djrq2.Text:='';
end;
procedure Tfind_zef002f.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
if ActiveControl <> nil then
if ActiveControl.TabOrder<MAXTABORDER then
selectnext(Activecontrol,True,True);
end;
end;
procedure Tfind_zef002f.EditEnter(Sender: TObject);
begin
TEdit(Sender).Color :=clyellow;
TwwDBEdit(Sender).Color :=clyellow;
TwwDBComboDlg(Sender).Color :=clyellow;
TwwdbDatetimePicker(sender).color :=clYellow;
end;
procedure Tfind_zef002f.EditExit(Sender:Tobject);
begin
TEdit(Sender).Color :=clwindow;
TwwDBEdit(Sender).Color :=clwindow;
TwwDBComboDlg(Sender).Color :=clwindow;
TwwdbDatetimePicker(sender).color :=clwindow;
end;
procedure Tfind_zef002f.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_DOWN:
begin
Key := 0;
if ActiveControl<>nil then
if TWinControl(ActiveControl).TabOrder < MAXTABORDER then
SelectNext(ActiveControl, True, True);
end;
VK_UP:
begin
Key := 0;
if ActiveControl<>nil then
if TWinControl(ActiveControl).TabOrder <> 0 then
SelectNext(ActiveControl, False, True);
end;
end;
end;
procedure Tfind_zef002f.Btn_SearchClick(Sender: TObject);
var sql1,sql2 :string;
begin
sql1:='';
if bjdh.Text<>'' then sql1:='where schno='+''''+bjdh.Text+'''';
if equ_positioncode.Text<>'' then
if trim(sql1)='' then sql1:='where equ_positioncode='+''''+equ_positioncode.text+''''
else sql1:=trim(sql1)+' and equ_positioncode='+''''+equ_positioncode.Text+'''';
if djrq1.text<>'' then
begin
if trim(sql1)='' then sql1:='where record_date>=#'+datetostr(djrq1.datetime)+'#'
else sql1:=sql1+' and record_date>=#'+datetostr(djrq1.datetime)+'#'
end;
if djrq2.text<>'' then
begin
if trim(sql1)='' then sql1:='where record_date<=#'+datetostr(djrq2.datetime)+'#'
else sql1:=sql1+' and record_date<=#'+datetostr(djrq2.datetime)+'#'
end;
if trim(sql1)='' then
begin
sql1:='select '' '' as xh,schno,equ_positioncode,equ_positionname,record_date,login_empid,login_name from persreq_master_view ';
if filter_sql<>'' then sql1:=sql1+' where '+filter_sql;
end
else
begin
sql1:='select '' '' as xh,schno,equ_positioncode,equ_positionname,record_date,login_empid,login_name from persreq_master_view '+sql1;
if filter_sql<>'' then sql1:=sql1+' and '+filter_sql;
end;
sql1:= sql1+' order by schno';
data_query.Close;
data_query.Sql.Text:=sql1;
try
Data_query.Open;
if Data_query.IsEmpty then
begin
showmessage('沒有符合條件的資料');
Data_Query.Close;
find_bill:='';
exit;
end;
if Data_Query.RecordCount=1 then begin find_bill:='('''+Data_Query.fields[1].text+''')'; modalresult:=mrok end;
if Data_Query.RecordCount>1 then //如果超過一筆記錄,則彈出查詢窗口
begin
sql2:='select emp_id,emp_name,equ_coursecode,equ_coursename,dept_code,dept_name from persreq_defined_view where schno=:schno';
find_bill:=bill_find(sql1,sql2,'persreq_master1','persreq_detail1',self,1);
if find_bill='' then modalresult:=mrcancel else modalresult:=mrok;
end;
except
showmessage('查詢語句語法錯誤');
find_bill:='';
data_Query.Close;
end;
end;
procedure Tfind_zef002f.Btn_CancelClick(Sender: TObject);
begin
modalresult:=mrCancel;
end;
procedure Tfind_zef002f.equ_positioncodeCustomDlg(Sender: TObject);
var str,l_sql:string;
tempquery:tquery;
begin
inherited;
l_sql:='select equ_positioncode,equ_positionname from equ_position order by equ_positioncode';
str:=basci_search(l_sql,'equ_position',self);
if str<>'' then
begin
equ_positioncode.Text:=str;
tempquery:=tquery.Create(self);
try
tempquery.DatabaseName:='train';
tempquery.SQL.Add('select equ_positionname from equ_position where equ_positioncode='+''''+equ_positioncode.Text+'''');
tempquery.open;
if not tempquery.isempty then
equ_positionname.Text:=tempquery.fieldbyname('equ_positionname').AsString;
finally
tempquery.free;
end;
end;
end;
procedure Tfind_zef002f.equ_positioncodeKeyPress(Sender: TObject;
var Key: Char);
begin
key:=#0;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -