📄 gszt.~pas
字号:
unit gszt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, fram, ImgList, ExtCtrls, ComCtrls, ToolWin, StdCtrls, Buttons;
type
Tf_gszt = class(Tf_fram)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
dz: TEdit;
dzyj: TEdit;
wz: TEdit;
yzbm: TEdit;
sx: TEdit;
gj: TEdit;
sf: TEdit;
dhhm: TEdit;
cz: TEdit;
frdm: TEdit;
sjbh: TEdit;
Label15: TLabel;
tybh: TEdit;
fzr: TEdit;
gsmc: TEdit;
gsdm: TEdit;
chb: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure gsdmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure gsmcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure chbKeyDown(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 dzKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dhhmKeyPress(Sender: TObject; var Key: Char);
procedure chbDblClick(Sender: TObject);
procedure B1Click(Sender: TObject);
procedure B3Click(Sender: TObject);
procedure B4Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure B9Click(Sender: TObject);
procedure B10Click(Sender: TObject);
procedure B11Click(Sender: TObject);
procedure B12Click(Sender: TObject);
procedure B2Click(Sender: TObject);
procedure B5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure chbExit(Sender: TObject);
private
{ Private declarations }
public
Procedure FindNext;//查找下一个控件
Procedure SelectTable(TableName: String);
Procedure ClearEdit;
Procedure EditValue;//将记录集当前数据赋给编辑框
Function EditIsNull: Boolean;
Procedure SetListPos(WinControl: TWinControl);
{ Public declarations }
end;
var
f_gszt: Tf_gszt;
implementation
uses DataModal;
{$R *.dfm}
{ Tf_gszt }
procedure Tf_gszt.FindNext;
begin
if FindNextControl(ActiveControl,True,True,False)is TEdit then
TEdit(FindNextControl(ActiveControl,True,True,False)).SetFocus;
end;
procedure Tf_gszt.gsdmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = vk_Return then
FindNext;
end;
procedure Tf_gszt.gsmcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
gsdmKeyDown(Sender,Key,Shift);
if Key = vk_Next then
begin
SelectTable('t_gsxz');
chb.Tag := 1;
SetListPos(gsmc);
end;
end;
procedure Tf_gszt.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_gszt.SetListPos(WinControl: TWinControl);
begin
chb.Top := WinControl.Top;
chb.Left := WinControl.Left+(WinControl.Width-chb.Width);
chb.Visible := True;
chb.ItemIndex := 0;
chb.SetFocus;
end;
procedure Tf_gszt.chbKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key = vk_Return then
begin
Case chb.Tag of
1: begin
gsmc.Text := gsmc.Text+chb.Items[chb.ItemIndex];
gsmc.SetFocus;
end;
2:
begin
gj.Text := gj.Text+chb.Items[chb.ItemIndex];
gj.SetFocus;
end;
3: begin
sf.Text := sf.Text+chb.Items[chb.ItemIndex];
sf.SetFocus;
end;
4: begin
sx.Text := sx.Text+chb.Items[chb.ItemIndex];
sx.SetFocus;
end;
5: begin
dz.Text := dz.Text+chb.Items[chb.ItemIndex];
dz.SetFocus;
end;
end;
chb.Visible := False;
end;
end;
procedure Tf_gszt.gjKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
gsdmKeyDown(Sender,Key,Shift);
if Key = vk_Next then
begin
SelectTable('t_state');
chb.Tag := 2;
SetListPos(gj);
end;
end;
procedure Tf_gszt.sfKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
gsdmKeyDown(Sender,Key,Shift);
if Key = vk_Next then
begin
SelectTable('t_sf');
chb.Tag := 3;
SetListPos(sf);
end;
end;
procedure Tf_gszt.sxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
gsdmKeyDown(Sender,Key,Shift);
if Key = vk_Next then
begin
SelectTable('t_city');
chb.Tag := 4;
SetListPos(sx);
end;
end;
procedure Tf_gszt.dzKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
gsdmKeyDown(Sender,Key,Shift);
if Key = vk_Next then
begin
SelectTable('t_add');
chb.Tag := 5;
SetListPos(dz);
end;
end;
procedure Tf_gszt.dhhmKeyPress(Sender: TObject; var Key: Char);
var
i: Boolean;
begin
inherited;
i := (Key<#8)or(Key>#8)and(key<#45)or(Key>#45)and(Key<#48)or(Key>#57);
if i then
Key := #0;
end;
procedure Tf_gszt.chbDblClick(Sender: TObject);
var
Key: Word;
begin
inherited;
Key:= vk_ReTurn;
chb.OnKeyDown(nil,Key,[ssLeft]);
end;
procedure Tf_gszt.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_gszt.B1Click(Sender: TObject);
begin
inherited;
ClearEdit;
gsdm.SetFocus;
B3.Enabled := True;//保存按钮可用
B2.Enabled := False;//修改按钮不可用
B5.Enabled := False;
end;
function Tf_gszt.EditIsNull: Boolean;
var
i: Integer;
begin
Result := False;
For i :=0 to Panel1.ControlCount-1 do
if Panel1.Controls[i]is TEdit then
//在保存数据时电话号码与传真可以为空
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_gszt.B3Click(Sender: TObject);
begin
inherited;
if EditIsNull = False then
Try
With Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('insert t_company values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o)');
ParamByName('a').AsString := Trim(gsdm.Text);
ParamByName('b').AsString := Trim(gsmc.Text);
ParamByName('c').AsString := Trim(fzr.Text);
ParamByName('d').AsString := Trim(tybh.Text);
ParamByName('e').AsString := Trim(sjbh.Text);
ParamByName('f').AsString := Trim(frdm.Text);
ParamByName('g').AsString := Trim(dhhm.Text);
ParamByName('h').AsString := Trim(cz.Text);
ParamByName('i').AsString := Trim(gj.Text);
ParamByName('j').AsString := Trim(sf.Text);
ParamByName('k').AsString := Trim(sx.Text);
ParamByName('l').AsString := Trim(yzbm.Text);
ParamByName('m').AsString := Trim(dzyj.Text);
ParamByName('n').AsString := Trim(wz.Text);
ParamByName('o').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('数据项不能为空.','提示',64);
end;
end;
procedure Tf_gszt.B4Click(Sender: TObject);
begin
B3.Enabled := False;//保存按钮不可用
With Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_company');
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;
end;
end;
end;
procedure Tf_gszt.EditValue;
begin
with Data.Query2 do
begin
gsdm.Text:= FieldByName('gsdm').AsString;
gsmc.Text:= FieldByName('gsmc').AsString;
fzr.Text:= FieldByName('fzr').AsString;
tybh.Text:=FieldByName('tybh').AsString;
sjbh.Text:= FieldByName('sjbh').AsString;
frdm.Text:= FieldByName('frdm').AsString;
dhhm.Text:= FieldByName('dhhm').AsString;
cz.Text:= FieldByName('czh').AsString;
gj.Text:= FieldByName('gj').AsString;
sf.Text:= FieldByName('sf').AsString;
sx.Text:= FieldByName('sx').AsString;
yzbm.Text:= FieldByName('yzbm').AsString;
dzyj.Text:= FieldByName('dzyj').AsString;
wz.Text:= FieldByName('wz').AsString;
dz.Text:= FieldByName('dz').AsString;
end;
end;
procedure Tf_gszt.FormShow(Sender: TObject);
begin
B4.OnClick(Sender);
end;
procedure Tf_gszt.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_gszt.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_gszt.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_gszt.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_gszt.B2Click(Sender: TObject);
begin
inherited;
if Application.MessageBox('确实要修改当前记录吗?','提示',mb_YesNo)=ID_Yes then
begin
if EditIsNull = False then
begin
Try
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('update t_company set gsdm = :a,gsmc = :b,fzr = :c,tybh = :d,sjbh = :e,frdm =:f,dhhm = :g,czh = :h,gj = :i,sf = :j,sx = :k,yzbm = :l,dzyj = :m,wz =:n,dz = :o where gsdm = :p');
ParamByName('a').AsString := Trim(gsdm.Text);
ParamByName('b').AsString := Trim(gsmc.Text);
ParamByName('c').AsString := Trim(fzr.Text);
ParamByName('d').AsString := Trim(tybh.Text);
ParamByName('e').AsString := Trim(sjbh.Text);
ParamByName('f').AsString := Trim(frdm.Text);
ParamByName('g').AsString := Trim(dhhm.Text);
ParamByName('h').AsString := Trim(cz.Text);
ParamByName('i').AsString := Trim(gj.Text);
ParamByName('j').AsString := Trim(sf.Text);
ParamByName('k').AsString := Trim(sx.Text);
ParamByName('l').AsString := Trim(yzbm.Text);
ParamByName('m').AsString := Trim(dzyj.Text);
ParamByName('n').AsString := Trim(wz.Text);
ParamByName('o').AsString := Trim(dz.Text);
ParamByName('p').AsString := Trim(Data.Query2.FieldByName('gsdm').AsString);
ExecSQL;
end;
Application.MessageBox('修改成功.','提示',64);
B4.OnClick(Sender);
Except
Application.MessageBox('修改失败.','提示',64);
End;
end
else
Application.MessageBox('数据项不能为空.','提示',64);
end;
end;
procedure Tf_gszt.B5Click(Sender: TObject);
begin
inherited;
if Application.MessageBox('确实要删除当前记录吗?','提示',mb_YesNo)=ID_Yes then
if Data.Query2.RecordCount>0 then
Data.Query2.Delete;
end;
procedure Tf_gszt.Button1Click(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Next;
gsmc.OnKeyDown(Nil,Key,[ssLeft]);
end;
procedure Tf_gszt.Button2Click(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Next;
gj.OnKeyDown(Nil,Key,[ssLeft]);
end;
procedure Tf_gszt.Button3Click(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Next;
sf.OnKeyDown(Nil,Key,[ssLeft]);
end;
procedure Tf_gszt.Button4Click(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Next;
sx.OnKeyDown(Nil,Key,[ssLeft]);
end;
procedure Tf_gszt.Button5Click(Sender: TObject);
var
Key: Word;
begin
inherited;
Key := vk_Next;
dz.OnKeyDown(Nil,Key,[ssLeft]);
end;
procedure Tf_gszt.chbExit(Sender: TObject);
begin
inherited;
chb.Visible := False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -