?? ygdm.pas
字號:
unit ygdm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, fram, ImgList, ExtCtrls, ComCtrls, ToolWin, StdCtrls, Buttons;
type
Tf_ygdm = class(Tf_fram)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
ygdm: TEdit;
ygmc: TEdit;
male: TRadioButton;
female: TRadioButton;
DateTimePicker1: TDateTimePicker;
gj: TEdit;
sf: TEdit;
sx: TEdit;
dz: TEdit;
zw: TComboBox;
chb: TListBox;
bmmc: TComboBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure ygdmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure gjKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure sfKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure sxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure chbDblClick(Sender: TObject);
procedure chbKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure B1Click(Sender: TObject);
procedure B2Click(Sender: TObject);
procedure B3Click(Sender: TObject);
procedure B4Click(Sender: TObject);
procedure B5Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure B9Click(Sender: TObject);
procedure B10Click(Sender: TObject);
procedure B11Click(Sender: TObject);
procedure B12Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure chbExit(Sender: TObject);
private
{ Private declarations }
public
Procedure FindNext;
Procedure EditValue;//將記錄集當(dāng)前數(shù)據(jù)賦給編輯框
Procedure SelectTable(TableName: String);
Procedure SetListPos(WinControl: TWinControl);
Procedure ClearEdit;
Function EditIsNull: Boolean;
{ Public declarations }
end;
var
f_ygdm: Tf_ygdm;
implementation
uses DataModal;
{$R *.dfm}
{ Tf_ygdm }
procedure Tf_ygdm.FindNext;
begin
if FindNextControl(ActiveControl,True,True,False)is TEdit then
TEdit(FindNextControl(ActiveControl,True,True,False)).SetFocus
else if FindNextControl(ActiveControl,True,True,False)is TDateTimePicker then
TDateTimePicker(FindNextControl(ActiveControl,True,True,False)).SetFocus
else if FindNextControl(ActiveControl,True,True,False)is TRadioButton then
TRadioButton(FindNextControl(ActiveControl,True,True,False)).SetFocus
else if FindNextControl(ActiveControl,True,True,False)is TComboBox then
TComboBox(FindNextControl(ActiveControl,True,True,False)).SetFocus;
end;
procedure Tf_ygdm.SelectTable(TableName: String);
begin
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from '+ TableName);
Open;
if RecordCount>0 then
begin
chb.Clear;
while Not Eof do
begin
chb.Items.Add(Fields[0].AsString);
Next;
end;
end;
end;
end;
procedure Tf_ygdm.ygdmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = vk_Return then
FindNext;
end;
procedure Tf_ygdm.gjKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ygdm.OnKeyDown(Sender,key,shift);
if Key = vk_Next then
begin
SelectTable('t_state');
chb.Tag := 1;
SetListPos(gj);
end;
end;
procedure Tf_ygdm.SetListPos(WinControl: TWinControl);
begin
chb.Top := WinControl.Top;
chb.Left := WinControl.Left+(WinControl.Width-chb.Width);
chb.Visible := True;
chb.SetFocus;
end;
procedure Tf_ygdm.sfKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ygdm.OnKeyDown(Sender,key,shift);
if Key = vk_Next then
begin
SelectTable('t_sf');
chb.Tag := 2;
SetListPos(sf);
end;
end;
procedure Tf_ygdm.sxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ygdm.OnKeyDown(Sender,key,shift);
if Key = vk_Next then
begin
SelectTable('t_city');
chb.Tag := 3;
SetListPos(sx);
end;
end;
procedure Tf_ygdm.chbDblClick(Sender: TObject);
var
Key: Word;
begin
inherited;
Key:= vk_ReTurn;
chb.OnKeyDown(nil,Key,[ssLeft]);
end;
procedure Tf_ygdm.ClearEdit;
var
Num: Integer;
begin
For Num := 0 to Panel1.ControlCount-1 do
if Panel1.Controls[Num]is TEdit then
TEdit(Panel1.Controls[Num]).Clear;
end;
procedure Tf_ygdm.chbKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key = vk_Return then
begin
Case chb.Tag of
1: begin
gj.Text := gj.Text+ chb.Items[chb.ItemIndex];
gj.SetFocus;
end;
2:
begin
sf.Text := sf.Text+chb.Items[chb.ItemIndex];
sf.SetFocus;
end;
3: begin
sx.Text := sx.Text+chb.Items[chb.ItemIndex];
sx.SetFocus;
end;
end;
chb.Visible := False;
end;
end;
procedure Tf_ygdm.B1Click(Sender: TObject);
begin
inherited;
DateTimePicker1.DateTime := Now;
ClearEdit;
ygdm.SetFocus;
B3.Enabled := True;//保存按鈕可用
B2.Enabled := False;//修改按鈕不可用
B5.Enabled := False; // 刪除按鈕不可用
end;
function Tf_ygdm.EditIsNull: Boolean;
var
i: Integer;
begin
Result := False;
For i :=0 to Panel1.ControlCount-1 do
if Panel1.Controls[i]is TEdit then
//在保存數(shù)據(jù)時電話號碼與傳真可以為空
if (TEdit(Panel1.Controls[i]).TabOrder<>6)and(TEdit(Panel1.Controls[i]).TabOrder<>7)
and(Trim(TEdit(Panel1.Controls[i]).Text)='') then
begin
Result := True;
Exit;
end;
end;
procedure Tf_ygdm.B2Click(Sender: TObject);
begin
inherited;
if Application.MessageBox('確實(shí)要修改當(dāng)前記錄嗎?','提示',mb_YesNo)=ID_Yes then
begin
if (EditIsNull = False)and(Trim(zw.Text)<>'')and(Trim(bmmc.Text)<>'') then
begin
Try
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('update t_employee set ygdm = :a,ygmc = :b,xb = :c,bmmc = :d,zwmc = :e,pyrq =:f,gj = :g,sf = :h,sx = :i,dz = :j where ygdm = :k');
ParamByName('a').AsString := Trim(ygdm.Text);
ParamByName('b').AsString := Trim(ygmc.Text);
if male.Checked then
ParamByName('c').AsInteger := 0
else
ParamByName('c').AsInteger := 1;
ParamByName('d').AsString := Trim(bmmc.Text);
ParamByName('e').AsString := Trim(zw.Text);
ParamByName('f').asDateTime := DateTimePicker1.Date;
ParamByName('g').AsString := Trim(gj.Text);
ParamByName('h').AsString := Trim(sf.Text);
ParamByName('i').AsString := Trim(sx.Text);
ParamByName('j').AsString := Trim(dz.Text);
ParamByName('k').AsString := Trim(Data.Query2.FieldByName('ygdm').AsString);
ExecSQL;
end;
Application.MessageBox('修改成功.','提示',64);
B4.OnClick(Sender);
Except
Application.MessageBox('修改失敗.','提示',64);
End;
end
else
Application.MessageBox('數(shù)據(jù)項(xiàng)不能為空.','提示',64);
end;
end;
procedure Tf_ygdm.B3Click(Sender: TObject);
begin
inherited;
if (EditIsNull = False)and(Trim(zw.Text)<>'')and(Trim(bmmc.Text)<>'') then
Try
With Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('insert t_employee values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j)');
ParamByName('a').AsString := Trim(ygdm.Text);
ParamByName('b').AsString := Trim(ygmc.Text);
if Male.Checked then
ParamByName('c').AsInteger := 0
else
ParamByName('c').AsInteger := 1;
ParamByName('d').AsString := Trim(bmmc.Text);
ParamByName('e').AsString := Trim(zw.Text);
ParamByName('f').asDateTime := DateTimePicker1.Date;
ParamByName('g').AsString := Trim(gj.Text);
ParamByName('h').AsString := Trim(sf.Text);
ParamByName('i').AsString := Trim(sx.Text);
ParamByName('j').AsString := Trim(dz.Text);
ExecSQL;
end;
Application.MessageBox('操作成功.','提示',64);
B4.OnClick(Sender);
ClearEdit;
B3.Enabled := False;
Except
Application.MessageBox('操作失敗.','提示',64);
End
Else
begin
Application.MessageBox('數(shù)據(jù)項(xiàng)不能為空.','提示',64);
end;
end;
procedure Tf_ygdm.B4Click(Sender: TObject);
begin
inherited;
B3.Enabled := False;//保存按鈕不可用
With Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_employee');
Open;
if RecordCount>0 then
begin
B2.Enabled := True;
B5.Enabled := True;
B9.Enabled := True;
B10.Enabled := True;
B11.Enabled := True;
B12.Enabled := True;
EditValue;
end
else
begin
B2.Enabled := False;//修改按鈕不可用
B5.Enabled := False;
DateTimePicker1.DateTime := Now;
end;
end;
end;
procedure Tf_ygdm.EditValue;
begin
with Data.Query2 do
begin
ygdm.Text:= FieldByName('ygdm').AsString;
ygmc.Text:= FieldByName('ygmc').AsString;
if FieldByName('xb').AsInteger = 0 then
Male.Checked := True
else
Female.Checked := True;
bmmc.ItemIndex := bmmc.Items.IndexOf(Trim(FieldByName('bmmc').AsString));
zw.ItemIndex := zw.Items.IndexOf(Trim(FieldByName('zwmc').AsString));
DateTimePicker1.DateTime := FieldByName('pyrq').AsDateTime;
gj.Text:= FieldByName('gj').AsString;
sf.Text:= FieldByName('sf').AsString;
sx.Text:= FieldByName('sx').AsString;
dz.Text:= FieldByName('dz').AsString;
end;
end;
procedure Tf_ygdm.B5Click(Sender: TObject);
begin
inherited;
if Application.MessageBox('確實(shí)要刪除當(dāng)前記錄嗎?','提示',mb_YesNo)=ID_Yes then
if Data.Query2.RecordCount>0 then
begin
Data.Query2.Delete;
B4.OnClick(Sender);
end;
end;
procedure Tf_ygdm.FormShow(Sender: TObject);
begin
inherited;
Data.Query2.RequestLive := True;
DateTimePicker1.Date := Now;
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select zwmc from t_zwdm');
Open;
end;
zw.Clear;
if Data.Query1.RecordCount>0 then
while Not Data.Query1.Eof do
begin
zw.Items.Add(Data.Query1.Fields[0].AsString);
Data.Query1.Next;
end;
bmmc.Clear;
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select bmmc from t_bmdm');
Open
end;
if Data.Query1.RecordCount>0 then
while Not Data.Query1.Eof do
begin
bmmc.Items.Add(Data.Query1.Fields[0].AsString);
Data.Query1.Next;
end;
zw.ItemIndex := 0;
bmmc.ItemIndex := 0;
B4.OnClick(Sender);
end;
procedure Tf_ygdm.B9Click(Sender: TObject);
begin
inherited;
Data.Query2.First;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B9.Enabled := False;
B10.Enabled := False;
B11.Enabled := True;
B12.Enabled := True;
EditValue;
end;
procedure Tf_ygdm.B10Click(Sender: TObject);
begin
inherited;
Data.Query2.Prior;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B11.Enabled := True;
B12.Enabled := True;
if Data.Query2.Bof = True then
begin
B9.Enabled := False;
B10.Enabled := False;
end;
EditValue;
end;
procedure Tf_ygdm.B11Click(Sender: TObject);
begin
inherited;
Data.Query2.Next;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B9.Enabled := True;
B10.Enabled := True;
if Data.Query2.Eof = True then
begin
B11.Enabled := False;
B12.Enabled := False;
end;
EditValue;
end;
procedure Tf_ygdm.B12Click(Sender: TObject);
begin
inherited;
Data.Query2.Last;
B2.Enabled := True;
B3.Enabled := False;
B5.Enabled := True;
B9.Enabled := True;
B10.Enabled := True;
B11.Enabled := False;
B12.Enabled := False;
EditValue;
end;
procedure Tf_ygdm.Button1Click(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Next;
gj.OnKeyDown(Nil,Key,[ssLeft]);
end;
procedure Tf_ygdm.Button2Click(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Next;
sf.OnKeyDown(Nil,Key,[ssLeft]);
end;
procedure Tf_ygdm.Button3Click(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Next;
sx.OnKeyDown(Nil,Key,[ssLeft]);
end;
procedure Tf_ygdm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Data.Query2.RequestLive := False;
end;
procedure Tf_ygdm.chbExit(Sender: TObject);
begin
inherited;
chb.Visible := False;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -