📄 add_error.txt
字号:
---------------------------
Debugger Exception Notification
---------------------------
Project rsgl.exe raised exception class EOleException with message '标准表达式中数据类型不匹配。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
unit employee;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Buttons, ToolWin, Grids, DBGrids,
DB, ADODB;
type
Tfrmemployee = class(TForm)
GroupBox1: TGroupBox;
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;
Panel1: TPanel;
Label15: TLabel;
edid: TEdit;
edname: TEdit;
cmbsex: TComboBox;
cmbjg: TComboBox;
cmbmz: TComboBox;
cmbhf: TComboBox;
edposition: TEdit;
cmbworkkind: TComboBox;
edbirthday: TEdit;
DateTimePicker1: TDateTimePicker;
edbm: TComboBox;
edrcrq: TEdit;
DateTimePicker2: TDateTimePicker;
ToolBar1: TToolBar;
btnadd: TBitBtn;
btnmodify: TBitBtn;
btndel: TBitBtn;
btnfind: TBitBtn;
btnrefresh: TBitBtn;
btncancel: TBitBtn;
GroupBox2: TGroupBox;
StatusBar1: TStatusBar;
dbgdshow: TDBGrid;
ygphoto: TImage;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
Label16: TLabel;
cmbeducation: TComboBox;
edphone: TEdit;
edjy: TEdit;
procedure btncancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure btnrefreshClick(Sender: TObject);
procedure btnaddClick(Sender: TObject);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure DateTimePicker2CloseUp(Sender: TObject);
//procedure edphoneKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmemployee: Tfrmemployee;
implementation
uses datarsgl;
{$R *.dfm}
procedure Tfrmemployee.btncancelClick(Sender: TObject);
begin
close; //退出当前操作
end;
procedure Tfrmemployee.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action:=cafree; //关闭当前子窗口
end;
procedure Tfrmemployee.FormShow(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.clear;
sql.Add('select * from employeer');
open;
active:=true;
if RecordCount=0 then
begin
showmessage('对不起,您的人事库存在0条记录。请增加人事资料记录!');
edid.SetFocus;
statusbar1.Panels.Items[0].Text:=datetostr(now);
statusbar1.Panels.Items[1].Text:='当前在职人员有:'+inttostr(recordcount)+'人';
end
else
dbgdshow.DataSource:=datasource1;
dbgdshow.Columns[0].Field:=datasource1.DataSet.FieldByName('number');
dbgdshow.Columns[0].Width:=datasource1.DataSet.Fields[0].DisplayWidth+50;
dbgdshow.Columns[1].Field:=datasource1.DataSet.FieldByName('name');
dbgdshow.Columns[1].Width:=datasource1.DataSet.Fields[1].DisplayWidth+40;
dbgdshow.Columns[2].Field:=datasource1.DataSet.FieldByName('sex');
dbgdshow.Columns[2].Width:=datasource1.DataSet.Fields[2].DisplayWidth+50;
//edid.Text:=datasource1.DataSet.FieldByName('number').AsString;
//edname.Text:=datasource1.DataSet.fieldbyname('name').AsString;
//cmbsex.Text:=datasource1.DataSet.fieldbyname('sex').AsString;
statusbar1.Panels.Items[0].Text:=datetostr(now);
statusbar1.Panels.Items[1].Text:='当前在职人员有:'+inttostr(recordcount)+'人';
end;
end;
procedure Tfrmemployee.btnrefreshClick(Sender: TObject);
begin
adoquery1.Refresh;//refresh data
end;
//判断其数据记录是否为空
function isempty1(sender:tobject):boolean;
begin
if (sender is tedit) then
if trim((sender as tedit).Text)=''then
begin
result:=false;
exit;
end;
if (sender is tcombobox) then
if trim((sender as tcombobox).Text)=''then
begin
result:=false;
(sender as tcombobox).SetFocus ;
exit;
end;
result:=true;
end;
procedure Tfrmemployee.btnaddClick(Sender: TObject);
begin
if not isempty1(edid) then
begin
showmessage('员工编号是唯一的不能为空');
end
else
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from employeer where number<>'+trim(edid.Text));
open;
if recordcount>0 then //判断是否存在相同编号记录
begin
showmessage('人事挡案中已存在相同编号的记录,请重新输入新的编号.');
edid.SetFocus;
edid.Text:='';
exit;
end
else
begin
if edname.Text='' then
begin
showmessage('员工姓名不能为空');
edname.SetFocus;
end
else
begin
if not isempty1(cmbsex) then
begin
showmessage('员工性别不能为空');
cmbsex.SetFocus;
end
else
begin
if not isempty1(cmbjg) then
begin
showmessage('员工籍贯不能为空');
cmbjg.SetFocus;
end
else
begin
if not isempty1(cmbmz) then
begin
showmessage('员工民族不能为空');
cmbmz.SetFocus;
end
else
begin
if not isempty1(cmbhf) then
begin
showmessage('员工是否结婚不能为空');
cmbhf.SetFocus;
end
else
begin
if not isempty1(cmbeducation) then
begin
showmessage('员工现有学历不能为空');
cmbeducation.SetFocus;
end
else
begin
if not isempty1(edposition) then
begin
showmessage('员工所在职务不能为空');
edposition.SetFocus;
end
else
begin
if not isempty1(cmbworkkind) then
begin
showmessage('员工工种不能为空');
cmbworkkind.SetFocus;
end
else
begin
if not isempty1(edbirthday) then
begin
showmessage('员工出生日期不能为空');
edbirthday.SetFocus;
end
else
begin
if not isempty1(edbm) then
begin
showmessage('员工所属部门不能为空');
edbm.SetFocus;
end
else
begin
if not isempty1(edphone) then
begin
showmessage('员工联系电话不能为空');
edphone.SetFocus;
end
else
begin
if not isempty1(edrcrq) then
begin
showmessage('员工入厂日期不能为空');
edrcrq.SetFocus;
end
else
begin
//添加数据库新的记录
append;
fieldbyname('number').Asstring:=trim(edid.Text);
fieldbyname('name').AsString:=trim(edname.Text);
fieldbyname('sex').AsString:=trim(cmbsex.Text);
fieldbyname('comefrom').AsString:=trim(cmbjg.Text);
//fieldbyname('birthday').AsDateTime:=strtodatetime(trim(edbirthday.Text));
fieldbyname('ygmz').AsString:=trim(cmbmz.Text);
fieldbyname('education').AsString:=trim(cmbeducation.Text);
fieldbyname('phone').AsString:=trim(edphone.Text);
fieldbyname('isjh').AsString:=trim(cmbhf.Text);
fieldbyname('worksort').AsString:=trim(cmbworkkind.Text);
fieldbyname('position').AsString:=trim(edposition.Text);
fieldbyname('ygbm').AsString:=trim(edbm.Text);
//fieldbyname('rcrq').Asdatetime:=strtodatetime(trim(edrcrq.Text));
fieldbyname('ygjy').AsString:=trim(edjy.Text);
try
if messagedlg('请确认输入的数据无误,然后录入数据库!',mtconfirmation,[mbYes,mbNO],0)=mryes then
begin
post;
dbgdshow.DataSource:=datasource1;
dbgdshow.Columns[0].Field:=datasource1.DataSet.FieldByName('number');
dbgdshow.Columns[0].Width:=datasource1.DataSet.Fields[0].DisplayWidth+50;
dbgdshow.Columns[1].Field:=datasource1.DataSet.FieldByName('name');
dbgdshow.Columns[1].Width:=datasource1.DataSet.Fields[1].DisplayWidth+40;
dbgdshow.Columns[2].Field:=datasource1.DataSet.FieldByName('sex');
dbgdshow.Columns[2].Width:=datasource1.DataSet.Fields[2].DisplayWidth+50;
statusbar1.Panels.Items[0].Text:=datetostr(now);
statusbar1.Panels.Items[1].Text:='当前在职人员有:'+inttostr(recordcount)+'人';
edid.Text:='';
edname.Text:='';
edjy.Text:='';
cmbsex.Text:='';
cmbmz.Text:='';
cmbjg.Text:='';
cmbhf.Text:='';
edposition.Text:='';
cmbworkkind.Text:='';
edbirthday.Text:='';
edbm.Text:='';
edphone.Text:='';
edrcrq.Text:='';
cmbeducation.Text:='';
end
else
begin
showmessage('本次操作已取消');
cancel;
end;
except //异常处理
on edatabaseerror do
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
procedure Tfrmemployee.DateTimePicker1CloseUp(Sender: TObject);
begin
edbirthday.Text:=formatdatetime('yyyy-mm-dd',datetimepicker1.DateTime);
end;
procedure Tfrmemployee.DateTimePicker2CloseUp(Sender: TObject);
begin
edrcrq.Text:=formatdatetime('yyyy-mm-dd',datetimepicker2.DateTime);
end;
{procedure Tfrmemployee.edphoneKeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9']) then
showmessage('请输入正确的数据,本项只能输入数字.');
key:=#0;
edphone.setfocus;
end;}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -