uemp.~pas
来自「DELPHI编程入门篇.从基础入手,浅显易懂,一定物有所值.」· ~PAS 代码 · 共 277 行
~PAS
277 行
unit Uemp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, Grids, StdCtrls, ExtCtrls, DB, ADODB;
type
Tfrmemp = class(TForm)
StringGrid1: TStringGrid;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
ComboBox1: TComboBox;
ADOQuery1: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmemp: Tfrmemp;
ifupdate:boolean;
implementation
uses Udatamodule;
{$R *.dfm}
procedure Tfrmemp.FormCreate(Sender: TObject);
var
arow:integer;
begin
ifupdate:=false;
stringgrid1.Cells[0,0]:='员工编号';
stringgrid1.Cells[1,0]:='员工名称';
stringgrid1.Cells[2,0]:='分店号';
stringgrid1.Cells[3,0]:='职务';
stringgrid1.Cells[4,0]:='身份证';
adoquery1.SQL.Text:='select * from empinfo';
adoquery1.Open;
if adoquery1.RecordCount > 0 then
stringgrid1.RowCount:=adoquery1.RecordCount+1;
arow:=1;
while not adoquery1.Eof do
begin
stringgrid1.Cells[0,arow]:=adoquery1.FieldValues['empid'];
stringgrid1.Cells[1,arow]:=adoquery1.FieldValues['empname'];
stringgrid1.Cells[2,arow]:=adoquery1.FieldValues['filid'];
stringgrid1.Cells[3,arow]:=adoquery1.FieldByName('duty').AsString;
stringgrid1.Cells[4,arow]:=adoquery1.FieldByName('idcard').AsString;
adoquery1.Next;
inc(arow);
end;
adoquery1.Close;
adoquery1.SQL.Text:='select filid from filiale order by filid';
adoquery1.Open;
while not adoquery1.Eof do
begin
combobox1.Items.Add(adoquery1.FieldValues['filid']);
adoquery1.Next;
end;
adoquery1.Close;
end;
procedure Tfrmemp.SpeedButton1Click(Sender: TObject);
var
newempid:string;
begin
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
combobox1.Enabled:=true;
adoquery1.SQL.Text:='select max(empid) as empcode from empinfo';
adoquery1.Open;
newempid:=adoquery1.fieldbyname('empcode').AsString;
adoquery1.Close;
if newempid = '' then
edit1.Text:='00001'
else begin
edit1.Text:=inttostr(strtoint(newempid)+1);
while length(edit1.Text) < 5 do
edit1.Text:='0'+edit1.Text;
end;
speedbutton1.Enabled:=false;
speedbutton2.Enabled:=false;
speedbutton3.Enabled:=false;
speedbutton4.Enabled:=true;
speedbutton5.Enabled:=true;
speedbutton6.Enabled:=false;
end;
procedure Tfrmemp.SpeedButton2Click(Sender: TObject);
begin
ifupdate:=true;
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
combobox1.Enabled:=true;
edit1.Text:=stringgrid1.Cells[0,stringgrid1.Row];
edit2.Text:=stringgrid1.Cells[1,stringgrid1.Row];
combobox1.Text:=stringgrid1.Cells[2,stringgrid1.Row];
edit3.Text:=stringgrid1.Cells[3,stringgrid1.Row];
edit4.Text:=stringgrid1.Cells[4,stringgrid1.Row];
speedbutton1.Enabled:=false;
speedbutton2.Enabled:=false;
speedbutton3.Enabled:=false;
speedbutton4.Enabled:=true;
speedbutton5.Enabled:=true;
speedbutton6.Enabled:=false;
end;
procedure Tfrmemp.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
key:=chr(0);
end;
procedure Tfrmemp.SpeedButton3Click(Sender: TObject);
var
i:integer;
begin
if ((stringgrid1.Row > 0) and (stringgrid1.Cells[0,stringgrid1.Row]<>'')) then
begin
if messagedlg('真的要删除吗?',mtconfirmation,[mbYes, mbNo],0) = mrYes then
begin
adoquery1.SQL.Text:='delete from empinfo where empid = '''+stringgrid1.Cells[0,stringgrid1.Row]+'''';
adoquery1.ExecSQL;
adoquery1.Close;
if stringgrid1.RowCount = 2 then
stringgrid1.Rows[1].Clear
else begin
for i:=stringgrid1.Row to stringgrid1.RowCount-2 do
stringgrid1.Rows[i]:=stringgrid1.Rows[i+1];
stringgrid1.rows[stringgrid1.RowCount-1].Clear;
stringgrid1.RowCount:=stringgrid1.RowCount-1;
end;
end;
end;
end;
procedure Tfrmemp.SpeedButton6Click(Sender: TObject);
begin
self.Close;
end;
procedure Tfrmemp.SpeedButton5Click(Sender: TObject);
begin
edit1.Clear;
edit2.Clear; edit2.Enabled:=false;
edit3.Clear; edit3.Enabled:=false;
edit4.Clear; edit4.Enabled:=false;
combobox1.Text:=''; combobox1.Enabled:=false;
speedbutton1.Enabled:=true;
speedbutton2.Enabled:=true;
speedbutton3.Enabled:=true;
speedbutton4.Enabled:=false;
speedbutton5.Enabled:=false;
speedbutton6.Enabled:=true;
ifupdate:=false;
end;
procedure Tfrmemp.SpeedButton4Click(Sender: TObject);
var
i:integer;
begin
if edit2.Text = '' then
begin
showmessage('请输入员工名称');
exit;
end;
if combobox1.Text = '' then
begin
showmessage('请选择分店');
exit;
end;
if ifupdate then
begin
adoquery1.SQL.Text:='update empinfo set empname = '''+edit2.Text+''',filid = '''+combobox1.Text+''',duty = '''+edit3.Text+''',idcard = '''+edit4.Text+''' where empid = '''+edit1.Text+'''';
adoquery1.ExecSQL;
adoquery1.close;
for i:= 1 to stringgrid1.RowCount -1 do
begin
if stringgrid1.Cells[0,i] = edit1.Text then
begin
stringgrid1.Cells[1,i]:= edit2.Text;
stringgrid1.Cells[2,i]:= combobox1.Text;
stringgrid1.Cells[3,i]:= edit3.Text;
stringgrid1.Cells[4,i]:= edit4.Text;
end;
end;
end
else begin
adoquery1.SQL.Text:='insert into empinfo values("'+edit1.Text+'","'+edit2.Text+'","'+combobox1.Text+'","'+edit3.Text+'","'+edit4.Text+'")';
adoquery1.ExecSQL;
adoquery1.Close;
if stringgrid1.Cells[0,1] <> '' then
stringgrid1.RowCount:=stringgrid1.RowCount+1;
stringgrid1.Cells[0,stringgrid1.RowCount-1]:=edit1.Text;
stringgrid1.Cells[1,stringgrid1.RowCount-1]:=edit2.Text;
stringgrid1.Cells[2,stringgrid1.RowCount-1]:=combobox1.Text;
stringgrid1.Cells[3,stringgrid1.RowCount-1]:=edit3.Text;
stringgrid1.Cells[4,stringgrid1.RowCount-1]:=edit4.Text;
end;
edit1.Clear;
edit2.Clear; edit2.Enabled:=false;
edit3.Clear; edit3.Enabled:=false;
edit4.Clear; edit4.Enabled:=false;
combobox1.Text:=''; combobox1.Enabled:=false;
speedbutton1.Enabled:=true;
speedbutton2.Enabled:=true;
speedbutton3.Enabled:=true;
speedbutton4.Enabled:=false;
speedbutton5.Enabled:=false;
speedbutton6.Enabled:=true;
ifupdate:=false;
end;
procedure Tfrmemp.StringGrid1Click(Sender: TObject);
begin
if ifupdate then
begin
edit1.Text:=stringgrid1.Cells[0,stringgrid1.Row];
edit2.Text:=stringgrid1.Cells[1,stringgrid1.Row];
combobox1.Text:=stringgrid1.Cells[2,stringgrid1.Row];
edit3.Text:=stringgrid1.Cells[3,stringgrid1.Row];
edit4.Text:=stringgrid1.Cells[4,stringgrid1.Row];
end;
end;
procedure Tfrmemp.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if (( not(key in ['0'..'9'])) and (key <> #8) and (key <> #22)) then
begin
showmessage('输入数字');
key:=chr(0);
exit;
end;
end;
procedure Tfrmemp.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if not speedbutton6.Enabled then
begin
canclose:=false;
showmessage('请先保存数据然后退出');
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?