?? find_zcf002.pas
字號:
unit find_zcf002;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Wwquery, StdCtrls, Buttons, Mask, wwdbedit,
Wwdotdot, ComCtrls, wwdbdatetimepicker;
type
Tfind_zcf002f = class(TForm)
ScrollBox1: TScrollBox;
GroupBox1: TGroupBox;
Btn_Search: TBitBtn;
Btn_Cancel: TBitBtn;
equ_positioncode: TwwDBComboDlg;
equ_positionname: TEdit;
Label1: TLabel;
Data_query: TwwQuery;
position_typecode: TwwDBComboDlg;
position_typename: TEdit;
Label2: TLabel;
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);
procedure position_typecodeCustomDlg(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
filter_sql,find_bill: string;
MAXTABORDER :integer;
end;
var
find_zcf002f: Tfind_zcf002f;
implementation
uses ppublic,pdatabse,main;
{$R *.dfm}
procedure Tfind_zcf002f.FormCreate(Sender: TObject);
begin
MAXTABORDER:=10;
end;
procedure Tfind_zcf002f.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_zcf002f.EditEnter(Sender: TObject);
begin
TEdit(Sender).Color :=clyellow;
TwwDBEdit(Sender).Color :=clyellow;
TwwDBComboDlg(Sender).Color :=clyellow;
TwwdbDatetimePicker(sender).color :=clYellow;
end;
procedure Tfind_zcf002f.EditExit(Sender:Tobject);
begin
TEdit(Sender).Color :=clwindow;
TwwDBEdit(Sender).Color :=clwindow;
TwwDBComboDlg(Sender).Color :=clwindow;
TwwdbDatetimePicker(sender).color :=clwindow;
end;
procedure Tfind_zcf002f.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_zcf002f.Btn_SearchClick(Sender: TObject);
var sql1,sql2 :string;
begin
sql1:='';
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 position_typecode.Text<>'' then
if trim(sql1)='' then sql1:='where position_typecode='+''''+position_typecode.text+''''
else sql1:=trim(sql1)+' and position_typecode='+''''+position_typecode.Text+'''';
if trim(sql1)='' then
begin
sql1:='select '' '' as xh,equ_positioncode,equ_positionname,position_typecode,position_typename from equ_position_view ';
if filter_sql<>'' then sql1:=sql1+' where '+filter_sql;
end
else
begin
sql1:='select '' '' as xh,equ_positioncode,equ_positionname,position_typecode,position_typename from equ_position_view '+sql1;
if filter_sql<>'' then sql1:=sql1+' and '+filter_sql;
end;
sql1:= sql1+' order by equ_positioncode';
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 equ_coursecode,equ_coursename from equ_positionreq_define_view where equ_positioncode=:equ_positioncode';
find_bill:=bill_find(sql1,sql2,'equ_position','equ_positionreq_define',self,1);
if find_bill='' then modalresult:=mrcancel else modalresult:=mrok;
end;
except
showmessage('查詢語句語法錯誤');
find_bill:='';
data_Query.Close;
end;
end;
procedure Tfind_zcf002f.Btn_CancelClick(Sender: TObject);
begin
modalresult:=mrCancel;
end;
procedure Tfind_zcf002f.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_zcf002f.equ_positioncodeKeyPress(Sender: TObject;
var Key: Char);
begin
key:=#0;
end;
procedure Tfind_zcf002f.position_typecodeCustomDlg(Sender: TObject);
var str:string;
l_sql:string;
tempquery:tquery;
begin
inherited;
l_sql:='select position_typecode,position_typename from position_type order by position_typecode';
str:=basci_search(l_sql,'position_type',self);
if str<>'' then
begin
position_typecode.Text := str;
tempquery:=tquery.Create(self);
try
tempquery.DatabaseName:='train';
tempquery.SQL.Add('select position_typename from position_type where position_typecode='+''''+str+'''');
tempquery.open;
if not tempquery.isempty then
position_typename.Text:=tempquery.fieldbyname('position_typename').AsString;
finally
tempquery.free;
end;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -