📄 u_luru.pas
字号:
unit u_LuRu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, RzPanel, RzSplit, RzButton, StdCtrls, RzLabel, Mask,
RzEdit, RzTabs, Grids, DBGrids, RzRadChk, RzCmboBx,DB, RzDBGrid;
type
TfrmLuRu = class(TForm)
RzpgCtrl1: TRzPageControl;
rztbshtTabSheet1: TRzTabSheet;
rzspltr1: TRzSplitter;
rzpnl1: TRzPanel;
rzbtbtn1: TRzBitBtn;
rzbtbtn2: TRzBitBtn;
rzbtbtn3: TRzBitBtn;
rzbtbtn4: TRzBitBtn;
rzbtbtn5: TRzBitBtn;
rzpnl2: TRzPanel;
rzspltr2: TRzSplitter;
rzpnl3: TRzPanel;
lblName: TRzLabel;
lbl2: TRzLabel;
lbl3: TRzLabel;
lbl5: TRzLabel;
lbl6: TRzLabel;
lbl7: TRzLabel;
lbl4: TRzLabel;
edtName: TRzEdit;
edtxuexiao: TRzEdit;
edtBuMen: TRzEdit;
edtmb: TRzEdit;
RzRdbtnRzRdMan: TRzRadioButton;
RzRdbtnRzRdGirl: TRzRadioButton;
cbb1: TRzComboBox;
dbgrd1: TDBGrid;
rztbshtTabSheet3: TRzTabSheet;
rzspltr5: TRzSplitter;
RzPanel3: TRzPanel;
RzBitBtn6: TRzBitBtn;
RzBitBtn7: TRzBitBtn;
RzBitBtn8: TRzBitBtn;
RzBitBtn9: TRzBitBtn;
RzBitBtn10: TRzBitBtn;
rzspltr6: TRzSplitter;
RzpgCtrl2: TRzPageControl;
rztbshtTabSheet7: TRzTabSheet;
lbl1: TRzLabel;
lbl8: TRzLabel;
lbl9: TRzLabel;
lbl10: TRzLabel;
lbl11: TRzLabel;
lbl13: TRzLabel;
edtCJName: TRzEdit;
edtCJBM: TRzEdit;
edt4: TRzEdit;
edtCJZhenZhi: TRzEdit;
edtCJChuShen: TRzDateTimeEdit;
rztbshtTabSheet8: TRzTabSheet;
lbl12: TRzLabel;
lbl14: TRzLabel;
lbl15: TRzLabel;
edtLLYuanShiZhiWu: TRzEdit;
edtLLYuanShiShiJian: TRzEdit;
rztbshtTabSheet9: TRzTabSheet;
lbl16: TRzLabel;
lbl17: TRzLabel;
edtCJZhiChen: TRzEdit;
edtCJFuDu: TRzEdit;
rztbshtTabSheet10: TRzTabSheet;
lbl18: TRzLabel;
lbl19: TRzLabel;
lbl20: TRzLabel;
lbl21: TRzLabel;
edt12: TRzEdit;
edt13: TRzEdit;
edt14: TRzEdit;
edt15: TRzEdit;
dbgrd4: TDBGrid;
rztbshtTabSheet5: TRzTabSheet;
RzPanel6: TRzPanel;
RzBitBtn16: TRzBitBtn;
RzBitBtn17: TRzBitBtn;
RzBitBtn18: TRzBitBtn;
RzBitBtn19: TRzBitBtn;
RzBitBtn20: TRzBitBtn;
RzPanel9: TRzPanel;
lbl29: TRzLabel;
lbl30: TRzLabel;
edt24: TRzEdit;
dbgrd6: TDBGrid;
cbbLuRuZhiChen: TRzComboBox;
RzRdbtnCJMan: TRzRadioButton;
RzRdbtnCLGirl: TRzRadioButton;
lbl31: TRzLabel;
cbbCurZhiWu: TRzComboBox;
rztbshtTabSheet2: TRzTabSheet;
rztbshtTabSheet4: TRzTabSheet;
RzSplitter1: TRzSplitter;
RzPanel1: TRzPanel;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzBitBtn3: TRzBitBtn;
RzBitBtn4: TRzBitBtn;
RzBitBtn5: TRzBitBtn;
RzSplitter2: TRzSplitter;
RzPanel2: TRzPanel;
rzspltr11: TRzSplitter;
RzSplitter3: TRzSplitter;
RzSplitter4: TRzSplitter;
RzSplitter5: TRzSplitter;
RzPanel4: TRzPanel;
RzBitBtn11: TRzBitBtn;
RzBitBtn12: TRzBitBtn;
RzBitBtn13: TRzBitBtn;
RzBitBtn14: TRzBitBtn;
RzBitBtn15: TRzBitBtn;
RzPanel5: TRzPanel;
RzBitBtn21: TRzBitBtn;
RzBitBtn22: TRzBitBtn;
RzBitBtn23: TRzBitBtn;
RzBitBtn24: TRzBitBtn;
RzBitBtn25: TRzBitBtn;
RzPanel7: TRzPanel;
RzBitBtn26: TRzBitBtn;
RzBitBtn27: TRzBitBtn;
RzBitBtn28: TRzBitBtn;
RzBitBtn29: TRzBitBtn;
RzBitBtn30: TRzBitBtn;
rzpnl4: TRzPanel;
rzpnl5: TRzPanel;
rzpnl6: TRzPanel;
rzpnl7: TRzPanel;
rzpnl8: TRzPanel;
rzpnl9: TRzPanel;
rzdbgrd1: TRzDBGrid;
rzdbgrd2: TRzDBGrid;
rzdbgrd3: TRzDBGrid;
edt1: TRzDateTimeEdit;
edt3: TRzEdit;
lbl22: TRzLabel;
lbl23: TRzLabel;
edt2: TRzEdit;
RzGpbx1: TRzGroupBox;
RzRadioButton1: TRzRadioButton;
RzRadioButton2: TRzRadioButton;
RzDateTimeEdit1: TRzDateTimeEdit;
RzLabel3: TRzLabel;
RzEdit1: TRzEdit;
RzLabel1: TRzLabel;
RzLabel2: TRzLabel;
RzGpbx2: TRzGroupBox;
lbl24: TRzLabel;
lbl25: TRzLabel;
lbl26: TRzLabel;
edt7: TRzEdit;
cbb2: TRzComboBox;
cbb3: TRzComboBox;
lbl27: TRzLabel;
lbl28: TRzLabel;
lbl32: TRzLabel;
lbl34: TRzLabel;
lbl35: TRzLabel;
edtKQName: TRzEdit;
edtKQBM: TRzEdit;
edtKQChuQin: TRzEdit;
edtKQChiDao: TRzEdit;
edtKQHiaBan: TRzEdit;
edtKQChuChai: TRzEdit;
lbl36: TRzLabel;
lbl37: TRzLabel;
edtKQChuShen: TRzDateTimeEdit;
procedure rzbtbtn5Click(Sender: TObject);
procedure cbbLuRuZhiChenDropDown(Sender: TObject);
procedure RzBitBtn16Click(Sender: TObject);
procedure edt24KeyPress(Sender: TObject; var Key: Char);
procedure edt22KeyPress(Sender: TObject; var Key: Char);
procedure RzBitBtn6Click(Sender: TObject);
procedure edtLLYuanShiShiJianKeyPress(Sender: TObject; var Key: Char);
procedure edtCJFuDuKeyPress(Sender: TObject; var Key: Char);
procedure edt12KeyPress(Sender: TObject; var Key: Char);
procedure edt13KeyPress(Sender: TObject; var Key: Char);
procedure edt14KeyPress(Sender: TObject; var Key: Char);
procedure edt15KeyPress(Sender: TObject; var Key: Char);
procedure cbbCurZhiWuDropDown(Sender: TObject);
procedure cbb1DropDown(Sender: TObject);
procedure rzbtbtn1Click(Sender: TObject);
procedure cbb1KeyPress(Sender: TObject; var Key: Char);
procedure edt3KeyPress(Sender: TObject; var Key: Char);
procedure RzBitBtn11Click(Sender: TObject);
procedure RzBitBtn21Click(Sender: TObject);
procedure edt7KeyPress(Sender: TObject; var Key: Char);
//procedure edt5KeyPress(Sender: TObject; var Key: Char);
//procedure edt6KeyPress(Sender: TObject; var Key: Char);
procedure cbb2DropDown(Sender: TObject);
procedure cbb3DropDown(Sender: TObject);
procedure RzComboBox1DropDown(Sender: TObject);
procedure rzbtbtn3Click(Sender: TObject);
procedure rzbtbtn4Click(Sender: TObject);
procedure rzbtbtn2Click(Sender: TObject);
procedure RzBitBtn12Click(Sender: TObject);
procedure RzBitBtn13Click(Sender: TObject);
procedure RzBitBtn14Click(Sender: TObject);
procedure RzBitBtn8Click(Sender: TObject);
procedure RzBitBtn9Click(Sender: TObject);
procedure RzBitBtn7Click(Sender: TObject);
procedure RzBitBtn26Click(Sender: TObject);
procedure edtKQChuQinKeyPress(Sender: TObject; var Key: Char);
procedure edtKQChiDaoKeyPress(Sender: TObject; var Key: Char);
procedure edtKQHiaBanKeyPress(Sender: TObject; var Key: Char);
procedure edtKQChuChaiKeyPress(Sender: TObject; var Key: Char);
procedure RzBitBtn22Click(Sender: TObject);
procedure RzBitBtn23Click(Sender: TObject);
procedure RzBitBtn24Click(Sender: TObject);
procedure RzBitBtn28Click(Sender: TObject);
procedure RzBitBtn29Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLuRu: TfrmLuRu;
implementation
uses DataModule,U_Common;
{$R *.dfm}
procedure TfrmLuRu.rzbtbtn5Click(Sender: TObject);
begin
close;
end;
procedure TfrmLuRu.cbbLuRuZhiChenDropDown(Sender: TObject);
var
sql:string;
begin
sql:='select 职称 from ZhiChen';
if not OpenQuery(DM.qryCommon,sql,qmOpen) then
Exit
else
with DM.qryCommon do
begin
cbbLuRuZhiChen.Items.Clear;
while not Eof do
begin
cbbLuRuZhiChen.Items.Add(DM.qryCommon.FieldByName('职称').Value);
Next;
end;
Close;
end;
end;
procedure TfrmLuRu.RzBitBtn16Click(Sender: TObject);
begin
if trim(cbbLuRuZhiChen.Text)='' then
begin
ShowErrorMsgBox('请选择一个职称');
Exit;
end;
if trim(edt24.Text)='' then
begin
ShowErrorMsgBox('工资增长幅度不允许为空');
Exit;
end;
dm.atblZhiChen.Open;
if dm.atblZhiChen.Locate('职称',Trim(cbbLuRuZhiChen.Text),[loCaseInsensitive]) then
begin
ShowErrorMsgBox('数据重复,请重新输入!');
//Close;
Exit;
end;
with dm.atblZhiChen do
begin
Append;
FieldByName('工资增长幅度').Value:=Trim(edt24.Text);
FieldByName('职称').Value:=Trim(cbbLuRuZhiChen.Text);
Post;
//Close;
ShowTipMsgBox('添加成功!');
end;
end;
procedure TfrmLuRu.edt24KeyPress(Sender: TObject; var Key: Char);
begin
if (Trim(edt24.Text)='') and (Key ='.') then //如果第一次输入小数点,则写成'0.',并设置光标位置.
begin
edt24.Text:='0.';
edt24.SelStart:=2;
end;
if not(Key in ['0'..'9','.',Char(8)]) then Key:=#0;
if (Key='.') and (Pos('.',edt24.Text)>0) then Key:=#0;
end;
procedure TfrmLuRu.edt22KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in ['0'..'9','.',Char(8)]) then Key:=#0;
end;
procedure TfrmLuRu.RzBitBtn6Click(Sender: TObject);
var
SQL,SQL1:string;
EmployeeNo,LvLiNO,ZhiChenNO,KaoQinNO,JC:Integer;
BaseTime,JiaBan,ChuCha,ChiDao:Integer;
ZhenZhangFuDu:Single;
begin
LvLiNO:=-1;
ZhiChenNO:=-1;
KaoQinNO:=-1;
BaseTime:=0;
JiaBan:=0;
ChuCha:=0;
ChiDao:=0;
ZhenZhangFuDu:=1;
//员工信息
//----------------------------
if Trim(edtCJName.Text)='' then
begin
ShowErrorMsgBox('请填写员工的姓名!');
Exit;
end;
//查找员工是否存在于employee表
SQL:='select * from employee where 姓名='+QuotedStr(Trim(edtCJName.Text));
if RzRdbtnCJMan.Checked then
SQl:=SQL+' and 性别='+BoolToStr(True)
else
SQl:=SQL+' and 性别='+BoolToStr(False);
if Trim(edtCJBM.Text)<>'' then
SQL:=SQL+' and 部门='+QuotedStr(Trim(edtCJBM.Text));
if Trim(edtCJZhenZhi.Text)<>'' then
SQL:=SQL+' and 政治面貌='+QuotedStr(Trim(edtCJZhenZhi.Text));
if Trim(edtCJChuShen.Text)<>'' then
SQL:=SQL+' and 出生日期='+Trim(edtCJChuShen.Text);
if not OpenQuery(DM.qryCommon,SQL,qmOpen) then
begin
DM.qryCommon.Close;
ShowErrorMsgBox('根据你填写的员工资料没有找到这个员工,'+#13#10+'请先添加该员工基本的信息!');
Exit;
end else
begin
if (DM.qryCommon.RecordCount>1) then
begin
DM.qryCommon.Close;
ShowErrorMsgBox('根据你填写的员工资料,系统查询到多个员工,'+#13#10+'请添写更详细的员工信息!');
Exit;
end;
end;
EmployeeNo:=DM.qryCommon.fieldbyName('编号').Value;
//---------------------------
//履历
//----------------------------
if (Trim(cbbCurZhiWu.Text)<>'') or (Trim(edtLLYuanShiZhiWu.Text)<>'')
or (Trim(edtLLYuanShiShiJian.Text)<>'') then
begin
if Trim(cbbCurZhiWu.Text)='' then
begin
ShowErrorMsgBox('当前职务 不允许为空!');
Exit;
end;
if Trim(cbbCurZhiWu.Text)=Trim(edtLLYuanShiZhiWu.Text) then
begin
ShowErrorMsgBox('你添写了错误的信息:'+#13#10+'当前职务 和 原始职务 相同!');
Exit;
end;
if not ((Trim(edtLLYuanShiZhiWu.Text)='')=(Trim(edtLLYuanShiShiJian.Text)='')) then
begin
ShowErrorMsgBox('你必须填写 原始职务 或 原始职务任职时间!');
Exit;
end;
SQL:='select * from LvLi where 当前职务='+QuotedStr(cbbCurZhiWu.Text);
if Trim(edtLLYuanShiZhiWu.Text)<>'' then
SQL:=SQL+' and 原始职务='+QuotedStr(edtLLYuanShiZhiWu.Text);
if Trim(edtLLYuanShiShiJian.Text)<>'' then
SQL:=SQL+' and 原始职务任职时间='+edtLLYuanShiShiJian.Text;
if not OpenQuery(DM.qryCommon,SQL,qmOpen) then
begin
DM.qryCommon.Close;
ShowErrorMsgBox('没有找到到该员工的履历信息,'+#13#10+'请先添加员工履历信息!'+#13#10+'或者你填写了错误的履历信息!');
Exit;
end else
begin
if DM.qryCommon.RecordCount>1 then
begin
DM.qryCommon.Close;
ShowErrorMsgBox('系统检索到多份履历,'+#13#10+'不能正确定位到该员工的履历.'+#13#10+'请添写更详细的履历信息!');
Exit;
end;
end;
LvLiNO:=DM.qryCommon.fieldbyName('编号').Value;
BaseTime:=DM.qryCommon.fieldbyName('原始职务任职时间').Value;
end;
//---------------------------
//added 2007-5-20
//根据员工编号检索考勤信息
//职称
//----------------------------
if (Trim(edtCJZhiChen.Text)<>'') or (Trim(edtCJFuDu.Text)<>'') then
begin
if Trim(edtCJZhiChen.Text)='' then
begin
ShowErrorMsgBox('请填写员工 职称!');
exit;
end;
SQL:='select * from ZhiChen where 职称='+QuotedStr(Trim(edtCJZhiChen.Text));
if Trim(edtCJFuDu.Text)<>'' then
SQL:=SQL+' and 工资增长幅度='+Trim(edtCJFuDu.Text);
if not OpenQuery(dm.qryCommon,SQL,qmOpen) then
begin
DM.qryCommon.Close;
ShowErrorMsgBox('没有找到这个职位,'+#13#10+'请先添加员工这个职位的信息!'+#13#10+'或者你填写了错误的职位信息!');
exit;
end else if dm.qryCommon.RecordCount>1 then
begin
DM.qryCommon.Close;
ShowErrorMsgBox('请填写更详细的职称信息!');
Exit;
end;
ZhiChenNO:=DM.qryCommon.fieldbyName('编号').Value;
ZhenZhangFuDu:=DM.qryCommon.fieldbyName('工资增长幅度').Value;
end;
//---------------------------
//定位考勤
if (Trim(edt12.Text)<>'') or (Trim(edt13.Text)<>'') or (Trim(edt14.Text)<>'') then
begin
SQL:='select * from KaoQin where 员工编号='+inttostr(EmployeeNO);
if OpenQuery(DM.qryCommon,SQL,qmOpen) then
begin
KaoQinNO:=DM.qryCommon.fieldbyName('编号').Value;
ChuCha:=DM.qryCommon.fieldbyName('出差天数').Value;
JiaBan:=DM.qryCommon.fieldbyName('出差天数').Value;
ChiDao:=DM.qryCommon.fieldbyName('迟到天数').Value;
end;
end;
//-------------------------------------------
//开始添加数据
//惩奖=(基本工资+原始职务任职时间*30)*工资增长幅度+ 加班时间*3+出差天数*50-迟到天数*100;
//暂时假定是这种惩奖计算方法
SQL1:='insert into JiangChen(员工编号,奖惩) Values('+inttostr(EmployeeNo);
JC:=(1800+BaseTime*30)* trunc((ZhenZhangFuDu*1000)) div 1000 +JiaBan*3+ChuCha*50-ChiDao*100;
SQL1:=SQL1+','+inttostr(JC)+')';
OpenQuery(DM.qryCommon,SQL,qmExec);
ShowTipMsgBox('奖惩信息录入成功!');
//--------------------------------------------
end;
procedure TfrmLuRu.edtLLYuanShiShiJianKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in ['0'..'9','.',Char(8)]) then Key:=#0;
end;
procedure TfrmLuRu.edtCJFuDuKeyPress(Sender: TObject; var Key: Char);
begin
if (Trim(edtCJFuDu.Text)='') and (Key ='.') then //如果第一次输入小数点,则写成'0.',并设置光标位置.
begin
edtCJFuDu.Text:='0.';
edtCJFuDu.SelStart:=2;
end;
if not(Key in ['0'..'9','.',Char(8)]) then Key:=#0;
if (Key='.') and (Pos('.',edtCJFuDu.Text)>0) then Key:=#0;
end;
procedure TfrmLuRu.edt12KeyPress(Sender: TObject; var Key: Char);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -