formdismiss1.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 799 行 · 第 1/2 页
PAS
799 行
unit formdismiss1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids, ComCtrls, Mask,
ToolWin, ImgList, Menus,Adodb,Db, wwdblook;
type
Tformdismiss = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
ImageList1: TImageList;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N3: TMenuItem;
Panel1: TPanel;
Splitter1: TSplitter;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBComboBox1: TDBComboBox;
DBComboBox2: TDBComboBox;
DateTimePicker1: TDateTimePicker;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
tbnsort: TToolButton;
tbnfind: TToolButton;
tbnprint: TToolButton;
ToolButton4: TToolButton;
DBNavigator3: TDBNavigator;
N5: TMenuItem;
N6: TMenuItem;
Panel3: TPanel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Edit1: TEdit;
MaskEdit1: TMaskEdit;
DateTimePicker2: TDateTimePicker;
MaskEdit2: TMaskEdit;
DateTimePicker5: TDateTimePicker;
Panel2: TPanel;
Label7: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Edit2: TEdit;
MaskEdit3: TMaskEdit;
DateTimePicker6: TDateTimePicker;
MaskEdit4: TMaskEdit;
DateTimePicker7: TDateTimePicker;
ADOQuery1: TADOQuery;
wwDBLookupCombo3: TwwDBLookupCombo;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
Panel4: TPanel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Animate1: TAnimate;
DateTimePicker8: TDateTimePicker;
BitBtn1: TBitBtn;
DateTimePicker9: TDateTimePicker;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn2Click(Sender: TObject);
procedure btnsaveClick(Sender: TObject);
procedure btnexitClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormActivate(Sender: TObject);
procedure btnnewClick(Sender: TObject);
procedure btneditClick(Sender: TObject);
procedure DBNavigator3BeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure tbnfindClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure DBGrid2TitleClick(Column: TColumn);
procedure tbnsortClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure DBEdit12KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tbnprintClick(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure MaskEdit2Exit(Sender: TObject);
procedure MaskEdit4Exit(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure DateTimePicker2CloseUp(Sender: TObject);
procedure DateTimePicker5CloseUp(Sender: TObject);
procedure DateTimePicker6CloseUp(Sender: TObject);
procedure DateTimePicker7CloseUp(Sender: TObject);
procedure DBEdit12Exit(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
manyfield:boolean;
findex:array[1..5] of integer;
fsort:array[1..5] of string;
fcount:0..5;
db:0..3;
whatdo,f:string;
public
{ Public declarations }
end;
var
formdismiss: Tformdismiss;
implementation
uses datamol,publicfunction, main, personalreport, reportofleave;
{$R *.DFM}
procedure Tformdismiss.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
setdbgridwidth(dbgrid1,'p'+'dismiss');
setdbgridwidth(dbgrid2,'p'+'dismiss');
action:=cafree;
formdismiss:=nil;
end;
procedure Tformdismiss.BitBtn2Click(Sender: TObject);
var i:string;
begin
if messagedlg('注意:移除前,请确认为已计算薪资'+#13+'是否要进行移除',mtinformation,[mbyes,mbno],0)=mryes then
begin
Animate1.Active:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
label20.Caption:='正在移除资料,请稍後........';
label20.Visible:=true;
label20.Update;
adoquery1.SQL.text:='exec leave ''1'','''+formatdatetime('yyyy/mm/dd',datetimepicker8.DateTime)+''','''+formatdatetime('yyyy/mm/dd',datetimepicker9.DateTime)+''' ';
try
adoquery1.ExecSQL;
except
;
end;
label20.Caption:='移除完毕';
label20.Update;
Datamod.Adodismiss1.close;
Datamod.Adodismiss1.commandtext:='Select * From per16010 order by dept,workno,cardno';
Datamod.Adodismiss1.Open;
messagedlg('移除成功,谢谢使用!!!!',mtinformation,[mbok],0);
Animate1.Active:=false;
label20.Visible:=false;
end;
end;
procedure Tformdismiss.btnsaveClick(Sender: TObject);
begin
if workistrue(datamod.Adodismiss.FieldByName('workno').asstring) then
begin
Application.messagebox('工号不存在人事主档中','Warning',mb_ok+mb_iconwarning);
exit;
end;
{ if whatdo='A' then
if messagedlg('此操作将会从人事主档中删除该员工',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
datamod.ADOQuery1.SQL.Clear;
datamod.ADOQuery1.SQL.Add('delete per24010 where no='''+datamod.adodismiss.fieldbyname('workno').asstring+''' ');
datamod.adoquery1.execsql;
datamod.adoquery1.close;
end
else
exit;}
if datamod.Adodismiss.CanModify then
datamod.Adodismiss.post;
end;
procedure Tformdismiss.btnexitClick(Sender: TObject);
begin
close;
end;
procedure Tformdismiss.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (activecontrol=dbgrid1) or (activecontrol=dbgrid2) then
exit;
if key=#13 then
begin
key:=#0;
if activecontrol=dbedit12 then
begin
if datamod.Adodismiss.State =dsinsert then
begin
datamod.Adodismiss.Post;
datamod.Adodismiss.Append;
end;
wwDBLookupCombo3.setfocus;
end
else
selectnext(activecontrol,true,true);
end;
end;
procedure Tformdismiss.FormActivate(Sender: TObject);
begin
getdbgridwidth(dbgrid2,'p'+'dismiss');
getdbgridwidth(dbgrid2,'p'+'dismiss');
datamod.Adodismiss.Close;
datamod.Adodismiss.CursorType :=ctkeyset;
datamod.Adodismiss.LockType :=ltpessimistic;
datamod.Adodismiss.Open;
datamod.Adodismiss1.close;
datamod.Adodismiss1.CursorType :=ctkeyset;
datamod.Adodismiss1.LockType :=ltpessimistic;
datamod.Adodismiss1.Open;
dbcombobox1.items.clear;
dbcombobox2.items.clear;
with datamod.adoquery1 do
begin
SQL.Clear;
SQL.Add('select * from per13010 where lkind=0');
Open;
while not eof do
begin
dbcombobox1.Items.Add(fieldbyname('leavereason').asstring);
next;
end;
close;
end;
with datamod.adoquery2 do
begin
SQL.Clear;
SQL.Add('select * from per14010'); //离职类别代码
Open;
while not eof do
begin
dbcombobox2.Items.Add(fieldbyname('leavekind').asstring);
next;
end;
close;
end;
end;
procedure Tformdismiss.btnnewClick(Sender: TObject);
begin
datamod.Adodismiss.Append;
whatdo:='A'; //新增操作
end;
procedure Tformdismiss.btneditClick(Sender: TObject);
begin
datamod.Adodismiss.Edit;
whatdo:='E'; //修改操作
end;
procedure Tformdismiss.DBNavigator3BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
case button of
nbinsert:begin
whatdo:='A';;
wwDBLookupCombo3.setfocus;
end;
nbedit:begin
whatdo:='E';
wwDBLookupCombo3.setfocus;
end;
end;
end;
procedure Tformdismiss.ToolButton6Click(Sender: TObject);
begin
datamod.Adodismiss.Cancel;
end;
procedure Tformdismiss.ToolButton4Click(Sender: TObject);
begin
close;
end;
procedure Tformdismiss.PageControl1Change(Sender: TObject);
begin
datamod.Adodismiss1.close; //刷新离职人员详细资料画面中的资料
datamod.Adodismiss1.CursorType :=ctkeyset;
datamod.Adodismiss1.LockType :=ltpessimistic;
datamod.Adodismiss1.Open;
(sender as Tpagecontrol).activepage.highlighted:=true;
case pagecontrol1.ActivePageIndex of
0:begin
dbnavigator3.DataSource :=datamod.DSdismiss; //离职作业画面
n6.enabled:=false;
end;
1:begin
dbnavigator3.DataSource :=datamod.DSdismiss1; //离职人员详细资料画面
n6.enabled:=true;
end;
end;
end;
procedure Tformdismiss.tbnfindClick(Sender: TObject);
begin
findrecorder(datamod.adodismiss1,'Adodismiss1','per16010'); //调用publicfuction中的查询功能
end;
procedure Tformdismiss.DBGrid1TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
datamod.ADOdismiss.Sort :=column.FieldName+' '+f;
end;
procedure Tformdismiss.DBGrid2TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
datamod.ADOdismiss1.Sort :=column.FieldName+' '+f;
end;
procedure Tformdismiss.tbnsortClick(Sender: TObject);
var i:1..5;
begin
if manyfield then
begin
manyfield:=false;
tbnsort.hint:='设定多字段排序';
popupmenu1.Items[0].Enabled :=false;
popupmenu1.Items[1].Enabled :=false;
popupmenu1.Items[2].Enabled :=false;
popupmenu1.Items[3].Enabled :=false;
end
else begin
manyfield:=true;
tbnsort.hint:='取消多字段排序'; //说明现在dbgrid1正处于多字段排序中
f:='';
popupmenu1.Items[0].Enabled :=true;
popupmenu1.Items[1].Enabled :=true;
popupmenu1.Items[2].Enabled :=true;
popupmenu1.Items[3].Enabled :=true;
fcount:=0;
for i:=1 to 5 do
begin
findex[i]:=0;
fsort[i]:='';
end;
end;
end;
procedure Tformdismiss.N1Click(Sender: TObject);
var i:integer;
dbgrid:Tdbgrid;
begin
if fcount>0 then
if db<>pagecontrol1.ActivePageIndex then
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?