📄 attendancemanager.pas
字号:
unit AttendanceManager;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ComCtrls;
type
TForm15 = class(TForm)
DBGrid1: TDBGrid;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label11: TLabel;
Button5: TButton;
Button6: TButton;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label23: TLabel;
Label24: TLabel;
Button7: TButton;
StatusBar1: TStatusBar;
procedure Button6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure deldata(Sender: TObject);
procedure InPutClear;
procedure putdata;
procedure adddata;
{ Public declarations }
end;
var
Form15: TForm15;
implementation
uses RealTimeCheck, WelcomePicture, MainMenu, QueryAttendanceInformation;
{$R *.dfm}
procedure TForm15.Button6Click(Sender: TObject);
begin
form17.Show;
end;
procedure TForm15.Button1Click(Sender: TObject);
var
check_no:String[5];
check_Data:String[20];
begin
check_no:='';
check_Data:='';
if (self.Edit1.Text='') or (combobox1.Text='') or (combobox2.Text='') then
begin
showmessage('员工编号和登记年月都不能为空值!');
exit;
end;
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='employees';
//if form1.ADOTable1.Active=false then
form1.ADOTable1.Active:=true;
//check_no:='';
check_no:=self.Edit1.Text;
if form1.adotable1.Locate('员工编号',check_no,[]) then //登记所属年月
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='Checkin';
//if form1.ADOTable1.Active=false then
form1.ADOTable1.Active:=true;
check_Data:=self.ComboBox1.Text+'年'+self.ComboBox2.Text+'月';
//showmessage(check_Data);
if form1.adotable1.Locate('员工编号',check_no,[])then //and form1.adotable1.Locate('登记所属年月',check_Data,[]) then //验证密码
begin
while not form1.ADOTable1.Eof do ////////这里非常关键的语句阿,哈哈
begin
if form1.ADOTable1.FieldByName('登记所属年月').AsString=check_Data then
begin
showmessage('同一员工每月不能多于一条记录!操作失败!');
exit;
end;
form1.ADOTable1.Next; ////////这里非常关键的语句阿,哈哈
end;
end;
end else begin
showmessage('公司没此员工号,操作失败!');
edit1.Text:='';
exit;
end;
adddata;
{ ////增加 员工信息操作
with Form1.adoquery1 do
begin
close;
sql.Clear;
sql.add('insert into Checkin(员工编号,全勤天数,事假天数,旷工天数,迟到天数,早退天数,休假天数,日常加班天数,法定节假日加班,周末加班,登记所属年月)');
sql.add('values(:员工编号,:全勤天数,:事假天数,:旷工天数,:迟到天数,:早退天数,:休假天数,:日常加班天数,:法定节假日加班,:周末加班,:登记所属年月)');
parameters[0].Value:=edit1.Text;
parameters[1].Value:=edit2.Text;
parameters[2].Value:=edit3.Text;
parameters[3].Value:=edit4.Text;
parameters[4].Value:=edit5.Text;
parameters[5].Value:=edit6.Text;
parameters[6].Value:=edit7.Text;
parameters[7].Value:=edit8.Text;
parameters[8].Value:=edit9.Text;
parameters[9].Value:=edit10.Text;
parameters[10].Value:=self.ComboBox1.Text+'年'+self.ComboBox2.Text+'月' ;
execsql;
form1.ADOQuery1.Active:=false;
close;
sql.Clear;
sql.Add('select * from Checkin');
if form1.ADOQuery1.Active=false then
form1.ADOQuery1.Active:=true;
open;
messageBeep(0);
end; }
InputClear;
Button2.Enabled:=true;
Button3.Enabled:=true;
Button4.Enabled:=false;
//showmessage('增加数据成功!');
//self.Label26.Caption:='增加数据成功!';
statusbar1.Panels[0].Text:='增加数据成功!';
end;
procedure TForm15.Button2Click(Sender: TObject);
begin
if (self.DBGrid1.FieldCount<>0) and
(MessageDlg('确认要删除 "员工编号:'+self.DBGrid1.Fields[0].AsString+' 考勤年月: '+self.DBGrid1.Fields[10].AsString+'..." 记录吗?',mtConfirmation,[mbOK,mbCancel],0)=mrOK) then
self.deldata(Sender);
InputClear;
//inputString:=inputbox('删除数据','请输入员工的编号','');
with Form1.adoquery1 do
begin
{ close;
sql.Clear;
sql.add('delete from Checkin where 员工编号=:员工编号');
parameters[0].Value:=inputString;
execsql; }
close;
sql.Clear;
sql.Add('select * from Checkin');
if form1.ADOQuery1.Active=false then
form1.ADOQuery1.Active:=true;
open;
messageBeep(0);
end;
//self.Label26.Caption:='删除数据成功!';
statusbar1.Panels[0].Text:='删除数据成功!';
end;
procedure TForm15.Button3Click(Sender: TObject); ///修改按钮
begin
if (self.DBGrid1.FieldCount<>0) and
(MessageDlg('确认要修改 "员工编号:'+self.DBGrid1.Fields[0].AsString+'考勤年月: '+self.DBGrid1.Fields[10].AsString+'..." 记录吗?',mtConfirmation,[mbOK,mbCancel],0)=mrOK) then
begin
putdata;
Button2.Enabled:=false;
Button3.Enabled:=false;
Button4.Enabled:=true;
//adddata;
end;
{with Form1.adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from Checkin');
if form1.ADOQuery1.Active=false then
form1.ADOQuery1.Active:=true;
open;
messageBeep(0);
end;
showmessage('请在列表上修改');
dbgrid1.ReadOnly:=false; }
//self.Label26.Caption:='请在上面输入框内修改所需数据!';
statusbar1.Panels[0].Text:='请在上面输入框内修改所需数据!';
end;
procedure TForm15.Button4Click(Sender: TObject); ////修改提交按钮
begin
dbgrid1.ReadOnly:=true;
deldata(Sender);
adddata;
Inputclear;
Button2.Enabled:=true;
Button3.Enabled:=true;
Button4.Enabled:=false;
// showmessage('修改数据成功!');
//self.Label26.Caption:='修改数据成功!';
statusbar1.Panels[0].Text:='修改数据成功!';
end;
procedure TForm15.Button5Click(Sender: TObject);
begin
form15.close;
end;
procedure TForm15.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form3.Enabled:=true;
form1.ADOQuery1.SQL.Clear;
end;
procedure TForm15.FormShow(Sender: TObject);
begin
form1.ADOQuery1.SQL.Clear;
statusbar1.Panels[0].Text:='欢迎使用考勤管理操作!';
self.Button4.Enabled:=false;
with Form1.adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from Checkin');
if form1.ADOQuery1.Active=false then
form1.ADOQuery1.Active:=true;
open;
execsql;
//messageBeep(0);
end;
end;
procedure TForm15.deldata(Sender: TObject);
var
work_no:String;
FilData:String;
begin
work_no:=self.DBGrid1.Fields[0].AsString;
FilData:=self.DBGrid1.Fields[10].AsString;
//showmessage(inputString);
with Form1.adoquery1 do
begin
close;
sql.Clear;
sql.add('delete from Checkin where 员工编号=:员工编号 and 登记所属年月=:登记所属年月 ');
parameters[0].Value:=work_no;
parameters[1].Value:=FilData;
execsql;
{close;
sql.Clear;
sql.Add('select * from Checkin');
// if form1.ADOQuery1.Active=false then
// form1.ADOQuery1.Active:=true;
open; }
messageBeep(0);
end;
end;
procedure TForm15.InPutClear;
begin
edit1.Text:='';
edit2.Text:='0';
edit3.Text:='0';
edit4.Text:='0';
edit5.Text:='0';
edit6.Text:='0';
edit7.Text:='0';
edit8.Text:='0';
edit9.Text:='0';
edit10.Text:='0';
self.ComboBox1.Text:='2006';
self.ComboBox2.Text:='1';
end;
procedure TForm15.putdata;
begin
edit1.Text:=self.DBGrid1.Fields[0].AsString;
edit2.Text:=self.DBGrid1.Fields[1].AsString;
edit3.Text:=self.DBGrid1.Fields[2].AsString;
edit4.Text:=self.DBGrid1.Fields[3].AsString;
edit5.Text:=self.DBGrid1.Fields[4].AsString;
edit6.Text:=self.DBGrid1.Fields[5].AsString;
edit7.Text:=self.DBGrid1.Fields[6].AsString;
edit8.Text:=self.DBGrid1.Fields[7].AsString;
edit9.Text:=self.DBGrid1.Fields[8].AsString;
edit10.Text:=self.DBGrid1.Fields[9].AsString;
end;
procedure TForm15.adddata;
begin
with Form1.adoquery1 do
begin
close;
sql.Clear;
sql.add('insert into Checkin(员工编号,全勤天数,事假天数,旷工天数,迟到天数,早退天数,休假天数,日常加班天数,法定节假日加班,周末加班,登记所属年月)');
sql.add('values(:员工编号,:全勤天数,:事假天数,:旷工天数,:迟到天数,:早退天数,:休假天数,:日常加班天数,:法定节假日加班,:周末加班,:登记所属年月)');
parameters[0].Value:=edit1.Text;
parameters[1].Value:=edit2.Text;
parameters[2].Value:=edit3.Text;
parameters[3].Value:=edit4.Text;
parameters[4].Value:=edit5.Text;
parameters[5].Value:=edit6.Text;
parameters[6].Value:=edit7.Text;
parameters[7].Value:=edit8.Text;
parameters[8].Value:=edit9.Text;
parameters[9].Value:=edit10.Text;
parameters[10].Value:=self.ComboBox1.Text+'年'+self.ComboBox2.Text+'月' ;
execsql;
form1.ADOQuery1.Active:=false;
close;
sql.Clear;
sql.Add('select * from Checkin');
if form1.ADOQuery1.Active=false then
form1.ADOQuery1.Active:=true;
open;
messageBeep(0);
end;
end;
procedure TForm15.Button7Click(Sender: TObject);
begin
form16.Show;
form15.Close;
form3.Enabled:=false;
end;
procedure TForm15.FormCreate(Sender: TObject);
begin
//self.Label26.Caption:='';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -