📄 unit5.~pas
字号:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DBCtrls;
type
TForm5 = class(TForm)
Addstuff: TButton;
Label1: TLabel;
code: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
address: TEdit;
Label6: TLabel;
mobile: TEdit;
Label7: TLabel;
Label8: TLabel;
stuffname: TEdit;
Label9: TLabel;
age: TEdit;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
telephone: TEdit;
Label13: TLabel;
mail: TEdit;
Label14: TLabel;
Button2: TButton;
clear: TButton;
man: TRadioButton;
woman: TRadioButton;
partment: TComboBox;
starttime: TDateTimePicker;
endtime: TDateTimePicker;
remark: TMemo;
job: TComboBox;
jobstate: TComboBox;
procedure AddstuffClick(Sender: TObject);
procedure oninit();
procedure clearClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
uses Unit2;
procedure TForm5.oninit();
var temp:string;
begin
man.Checked:=true; //初始选择男
//选择query_depart用来读取部门资料表内容,
//选择Query组件可以是任意的,只要不影响其他操作
with mydata.query_depart do
begin
close;//执行操作时先关闭查询组件
with sql do //设置SQL属性内容
begin
clear; //先清除SQL内容
add('select 部门名称 from 部门资料表');
end;
open;//打开数据集
first; //移到第一条记录
partment.Clear; //部门组合框内容清空
while (eof=false) do //启启遍历所有数据,eof表示Query组件表示的数据集结束
begin
//调用fieldbyname函数读取数集记录中某字段内容
temp:=fieldbyname('部门名称').AsString;
//住部门组合框中添加新的数据项
partment.Items.Append(temp);
next; //移动到下一条记示
end;
end;
with mydata.query_job do
begin
close;
with sql do
begin
clear;
add('select * from 职务类别表');
end;
open;
first;
job.Clear; //职务组合框清空
while (eof=false) do
begin
//读取职务记录
temp:=fieldbyname('职务').AsString;
job.Items.Append(temp);
next;
end;
end;
end;
procedure TForm5.AddstuffClick(Sender: TObject);
var temp:string;
begin
//判断输入资料是否完整 ,如果不完整则要求用户输入完整后再执行下一步操作
if ((trim(code.Text)='') or (trim(stuffname.Text)='') or (trim(age.Text)='') or (trim(partment.Text)='') or (trim(job.Text)='') or (trim(address.Text)='') or (trim(telephone.Text)='') or (trim(mobile.Text)='')or (trim(mail.Text)='') or (trim(jobstate.Text)='')) then
begin
showmessage('请输入完整资料');
end else
begin
//如果输入完整,则看输入的工号有没有人使用,因为工号唯一的,这样可以减少出错
with mydata.query_stuff do
begin
close;
with SQL do
begin
clear;
add('select * from 员工资料表 where 员工号=:stuffcode');
ParamByName('stuffcode').AsString:=trim(code.Text);
end;
open;
//假设该工号已经存在,则发出提示信息同时重表书写SQL语句,以保持DBGrid中的数据
if(findlast()) then
begin
showmessage('该工号已经有人使用,请重新输入工号');
with sql do
begin
clear;
add('select * from 员工资料表');
end;
open;
end else
//当输入无误时,执行插入操作
begin
close;
with SQL do
begin
clear;
//使用参数化方法书写SQL语句,参数较多,书写比较麻烦
Add('insert into 员工资料表 values(:code,:name,:sex,:age,:partment,:job,:start,:end,:state,:address,:telephone,:mobile,:email,:remark)');
ParamByName('code').AsString:=trim(code.Text); //工号
ParamByName('name').AsString:=trim(stuffname.Text); //员工名
if man.Checked then //判断选择的是男还是女
begin
ParamByName('sex').AsInteger:=1;
end else begin
ParamByName('sex').AsInteger:=0;
end;
ParamByName('age').AsInteger:=strtoint(trim(age.Text));//年龄
ParamByName('partment').AsString:=trim(partment.Text);//部门
paramByName('job').AsString:=trim(job.Text);//职务
//获取合同开始的日期 ,
paramByName('start').AsString:=datetostr(starttime.Date);
ParamByName('end').AsString:=datetostr(endtime.Date);//合同结束日期
ParamByName('address').AsString:=trim(address.Text);//地址
ParamByName('telephone').AsString:=trim(telephone.Text); //电话
ParamByName('mobile').AsString:=trim(mobile.Text); //手机
ParamByName('email').AsString:=trim(mail.Text); //电子邮箱
ParamByName('state').AsString:=trim(jobstate.Text); //工作状态
ParamByName('remark').AsString:=trim(remark.Text); //备注
end;
//执行插入操作,触发器操作使用ExecSQL语句
try
ExecSQL;
except
showmessage('unsuccess');
end;
close;
//重写SQL,让所有数据显示在DBGrid组件中
with sql do
begin
clear;
add('select * from 员工资料表');
end;
open;
end;
end;
end;
end;
procedure TForm5.clearClick(Sender: TObject);
var temp:string;
begin
code.Text:='';
stuffname.Text:='';
man.Checked:=true;
age.Text:='0';
address.Text:='';
telephone.Text:='';
mobile.Text:='';
mail.Text:='';
jobstate.Text:='';
remark.Text:='';
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -