📄 stuff.pas
字号:
unit stuff;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, StdCtrls, Spin, ExtCtrls, Mask, Db, DBTables;
type
Tstuffform = class(TForm)
Label1: TLabel;
bmno: TComboBox;
Label2: TLabel;
bh: TMaskEdit;
Label3: TLabel;
name: TMaskEdit;
Bevel1: TBevel;
GroupBox1: TGroupBox;
man: TRadioButton;
woman: TRadioButton;
Label4: TLabel;
birthday: TMaskEdit;
Label5: TLabel;
Label6: TLabel;
workday: TMaskEdit;
Label7: TLabel;
zw: TMaskEdit;
label9: TLabel;
auth: TMaskEdit;
zy: TCheckBox;
reg: TCheckBox;
ma: TCheckBox;
Label10: TLabel;
bpno: TMaskEdit;
Label11: TLabel;
telno: TMaskEdit;
Bevel2: TBevel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Bevel3: TBevel;
DBGrid1: TDBGrid;
label8: TLabel;
area: TMaskEdit;
money: TMaskEdit;
DataSource1: TDataSource;
Q1: TQuery;
Q2: TQuery;
pd: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure bmnoClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure birthdayExit(Sender: TObject);
procedure workdayExit(Sender: TObject);
procedure moneyExit(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
stuffform: Tstuffform;
implementation
uses dataproc;
{$R *.DFM}
var
but,oldbh:string;
procedure formini;
begin
with stuffform do
begin
bh.text:='';
name.text:='';
man.Checked :=true;
birthday.Text :='1980-01-01';
area.text:='';
workday.Text :='1998-01-01';
money.Text :='500.00';
zw.text:='';
auth.Text :='';
bpno.Text :='';
telno.Text :='';
button1.Enabled :=true;
button2.Enabled :=true;
button3.Enabled :=true;
button4.Enabled :=false;
button5.Enabled :=false;
if bh.Enabled=false then
bh.enabled:=true;
if name.enabled=false then
name.Enabled :=true;
end;
end;
procedure formunini;
begin
with stuffform do
begin
button1.Enabled :=false;
button2.Enabled :=false;
button3.Enabled :=false;
button4.Enabled :=true;
button5.Enabled :=true;
end
end;
procedure datatoctr;
begin
with stuffform do
begin
q1.Active :=true;
bh.text:=q1.fieldbyname('code').asstring;
name.text:=q1.fieldbyname('name').asstring;
if q1.FieldByName ('sex').asstring='1' then
man.Checked :=true
else
woman.checked:=true;
birthday.text:=q1.fieldbyname('birthday').asstring;
area.text:=q1.fieldbyname('area').asstring;
workday.Text :=q1.fieldbyname('inday').asstring;
money.Text :=q1.fieldbyname('salary').asstring;
zw.text:=q1.fieldbyname('headship').asstring;
auth.text:=q1.fieldbyname('auth').asstring;
bpno.text:=q1.fieldbyname('bp').asstring;
telno.Text :=q1.fieldbyname('tel').asstring;
pd.Checked :=q1.FieldByName ('ispd').asboolean;
zy.Checked := q1.fieldbyname('iszy').asboolean;
reg.Checked :=q1.fieldbyname('isreg').asboolean;
ma.Checked :=q1.fieldbyname('isma').asboolean;
end
end;
procedure seestuff;
begin
with stuffform do
begin
if bmno.itemindex >-1 then
begin
q1.Active :=false;
q1.sql.clear;
q1.sql.Add('select code,name,sex,salary,birthday,area,inday,Headship,Bp,Tel,auth,iszy,ispd,isreg,isma from stuff where deptcode=:pdeptcode');
q1.ParamByName ('pdeptcode').asstring:=copy(trim(bmno.items[bmno.itemindex]),1,2);
q1.Prepare;
q1.open;
chinesegrid(dbgrid1);
q1.active:=true;
end
end
end;
procedure Tstuffform.FormCreate(Sender: TObject);
begin
shortdateformat:='yyyy-mm-dd';
formini;
comadd(stuffform.bmno,2,'select code,name from dept');
seestuff;
end;
procedure Tstuffform.Button6Click(Sender: TObject);
begin
stuffform.close;
end;
procedure Tstuffform.bmnoClick(Sender: TObject);
begin
seestuff;
end;
procedure Tstuffform.Button1Click(Sender: TObject);
begin
if bmno.ItemIndex >-1 then
begin
but:='1';
formunini;
bh.SetFocus ;
end
end;
procedure Tstuffform.Button5Click(Sender: TObject);
begin
formini;
end;
procedure Tstuffform.Button4Click(Sender: TObject);
begin
if ((length(trim(bh.text))=0) or (length(trim(name.text))=0)) then
begin
showmessage('编号,姓名不能为空');
bh.SetFocus ;
exit;
end;
if ((length(trim(money.Text))=0) or (length(trim(zw.text))=0) or (length(trim(auth.text))=0)) then
begin
showmessage('薪水,职务,权限不能为空');
money.SetFocus ;
exit
end;
if but='1' then
try
q2.Active :=false;
q2.sql.clear;
q2.sql.add('insert into stuff values(:pocde,:pname,:psex,:psalary,:pbirthday,:parea,:pinday,:pheadship,:pbp,:ptel,:pdeptcode,:pauth,:piszy,:pispd,:pisreg,:pisma,:ppass)');
q2.ParamByName ('pocde').asstring:=trim(bh.text);
q2.ParamByName ('pname').asstring:=trim(name.text);
q2.ParamByName('psex').asboolean:=man.Checked ;
q2.ParamByName ('psalary').asfloat:=strtofloat(trim(money.text));
q2.ParamByName ('pbirthday').asstring:=trim(birthday.Text);
q2.ParamByName ('parea').asstring:=trim(area.Text);
q2.ParamByName ('pinday').asstring:=trim(workday.text);
q2.ParamByName ('pheadship').asstring:=trim(zw.text);
q2.ParamByName ('pbp').asstring:=trim(bpno.text);
q2.ParamByName ('ptel').asstring:=trim(telno.text);
q2.ParamByName ('pdeptcode').asstring:=copy(trim(bmno.items[bmno.itemindex]),1,2);
q2.ParamByName ('pauth').asstring:=trim(auth.text);
q2.ParamByName('piszy').asboolean:=zy.checked;
q2.ParamByName ('pispd').asboolean:=pd.Checked ;
q2.ParamByName('pisreg').asboolean:=reg.checked;
q2.ParamByName('pisma').asboolean:=ma.checked;
q2.ParamByName('ppass').asstring:='1234';
q2.Prepare;
q2.ExecSQL ;
formini;
q1.Active :=false;
q1.active:=true;
chinesegrid(dbgrid1);
except
showmessage('编号已存在');
bh.SetFocus ;
exit;
end;
if but='2' then
try
q2.Active :=false;
q2.sql.clear;
q2.sql.add('update stuff set code=:pocde,name=:pname,sex=:psex,salary=:psalary,birthday=:pbirthday,area=:parea,');
q2.sql.add('inday=:pinday,headship=:pheadship,bp=:pbp,tel=:ptel,deptcode=:pdeptcode,auth=:pauth,iszy=:piszy,ispd=:pispd,isreg=:pisreg,isma=:pisma,pass=:ppass where code=:poldbh ');
q2.ParamByName ('pocde').asstring:=trim(bh.text);
q2.ParamByName ('pname').asstring:=trim(name.text);
q2.ParamByName('psex').asboolean:=man.Checked ;
q2.ParamByName ('psalary').asfloat:=strtofloat(trim(money.text));
q2.ParamByName ('pbirthday').asstring:=trim(birthday.Text);
q2.ParamByName ('parea').asstring:=trim(area.Text);
q2.ParamByName ('pinday').asstring:=trim(workday.text);
q2.ParamByName ('pheadship').asstring:=trim(zw.text);
q2.ParamByName ('pbp').asstring:=trim(bpno.text);
q2.ParamByName ('ptel').asstring:=trim(telno.text);
q2.ParamByName ('pdeptcode').asstring:=copy(trim(bmno.items[bmno.itemindex]),1,2);
q2.ParamByName ('pauth').asstring:=trim(auth.text);
q2.ParamByName('piszy').asboolean:=zy.checked;
q2.ParamByName ('pispd').asboolean:=pd.Checked ;
q2.ParamByName('pisreg').asboolean:=reg.checked;
q2.ParamByName('pisma').asboolean:=ma.checked;
q2.ParamByName('ppass').asstring:='1234';
q2.ParamByName ('poldbh').asstring:=oldbh;
q2.Prepare;
q2.ExecSQL ;
formini;
q1.Active :=false;
q1.active:=true;
chinesegrid(dbgrid1);
except
showmessage('编号已存在');
bh.SetFocus ;
exit;
end;
if but='3' then
try
if messagedlg('确实要删除吗?',mtWarning,[mbyes,mbno],1)=mryes then
begin
q2.Active :=false;
q2.sql.add('delete stuff where code=:pcode');
q2.ParamByName ('pcode').asstring:=oldbh;
q2.Prepare;
q2.ExecSQL ;
q1.Active :=false;
q1.active:=true;
chinesegrid(dbgrid1);
end;
finally
formini;
end;
end;
procedure Tstuffform.Button2Click(Sender: TObject);
begin
if q1.RecordCount =0 then
showmessage('无记录,不能修改')
else
begin
but:='2';
formunini;
datatoctr;
oldbh:=trim(bh.text);
end
end;
procedure Tstuffform.Button3Click(Sender: TObject);
begin
if q1.RecordCount =0 then
showmessage('无记录,不能删除')
else
begin
but:='3';
formunini;
datatoctr;
oldbh:=trim(bh.text);
bh.Enabled :=false;
name.Enabled :=false;
end
end;
procedure Tstuffform.birthdayExit(Sender: TObject);
var
rq:tdate;
begin
try
rq:=strtodate(trim(birthday.text))
except
showmessage('日期不对');
birthday.SetFocus ;
end;
end;
procedure Tstuffform.workdayExit(Sender: TObject);
var
rq:tdate;
begin
try
rq:=strtodate(trim(workday.text))
except
showmessage('日期不对');
workday.SetFocus ;
end;
end;
procedure Tstuffform.moneyExit(Sender: TObject);
var
aa:string;
begin
try
aa:=floattostr(strtofloat(money.text))
except
showmessage('数字不对');
money.SetFocus ;
end;
end;
procedure Tstuffform.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
selectnext(activecontrol,true,true);
end;
procedure Tstuffform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
q1.free;
q2.free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -