deptrecorder.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 630 行 · 第 1/2 页
PAS
630 行
exit;
end;
if application.MessageBox('您确定要产生这些数据吗?','电脑提示',mb_okcancel)=idok then
begin
while formatdatetime('yyyy'+DateSeparator+'mm'+DateSeparator+'dd',d)<=formatdatetime('yyyy'+DateSeparator+'mm'+DateSeparator+'dd',strtodatetime(Maskedit2.text)) do
begin
datamod.ADOdeptrecorder.Append;
datamod.adodeptrecorder.fieldbyname('comcode').asstring:=thingcode; //行事历编码
datamod.adodeptrecorder.fieldbyname('deptcode').asstring:=dp; //部门编号
datamod.adodeptrecorder.fieldbyname('comdate').asstring:=formatdatetime('yyyy'+DateSeparator+'mm'+DateSeparator+'dd',d);//日期
datamod.adodeptrecorder.fieldbyname('operator').asstring:=pubworkname;//建档人
datamod.adodeptrecorder.fieldbyname('memo').asstring:=mem; //备注
datamod.adodeptrecorder.fieldbyname('comweek').asstring:=combobox1.text;
datamod.adodeptrecorder.fieldbyname('otkind').asstring:=radiogroup1.Items[radiogroup1.itemindex];
datamod.ADOdeptrecorder.post;
d:=d+7;
end;
datamod.ADOdeptrecorder.Close;
datamod.ADOdeptrecorder.Open;
dbgrid1.Refresh;
edit2.text:='';
edit3.text:='';
edit4.text:='';
end;
end;
procedure Tformdeptrecorder.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if button=nbinsert then
dbedit5.text:=pubworkname;
end;
procedure Tformdeptrecorder.DBGrid1TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
datamod.ADOdeptrecorder.Sort :=column.FieldName+' '+f;
end;
procedure Tformdeptrecorder.N1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to fcount do
if dbgrid1.SelectedIndex =findex[i] then
begin
fsort[i]:='ASC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid1.selectedindex;
fsort[fcount]:='ASC';
dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
end;
end;
procedure Tformdeptrecorder.N2Click(Sender: TObject);
var i:integer;
begin
for i:=1 to fcount do
if dbgrid1.SelectedIndex =findex[i] then
begin
fsort[i]:='DESC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid1.selectedindex;
fsort[fcount]:='DESC';
dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
end;
end;
procedure Tformdeptrecorder.N4Click(Sender: TObject);
var i:1..5;
sortexp:string;
begin
sortexp:='';
for i:=1 to fcount do
begin
if dbgrid1.Columns[findex[i]].Color=clgray then
begin
sortexp :=sortexp+dbgrid1.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then sortexp:=sortexp+',';
end;
end;
if sortexp<>'' then datamod.ADOdeptrecorder.Sort :=sortexp;
end;
procedure Tformdeptrecorder.N3Click(Sender: TObject);
var i:1..5;
begin
for i:=1 to fcount do
dbgrid1.Columns[findex[i]].Color :=clwindow;
fcount:=0;
end;
procedure Tformdeptrecorder.Edit2Exit(Sender: TObject);
begin
with datamod.ADOQuery1 do
begin
sql.clear;
sql.Add ('select deptcode,memo from pub06010 where comcode='''+edit2.text+'''');
open;
while not eof do
begin
if (fieldbyname('deptcode').asstring<>null) and (fieldbyname('deptcode').asstring<>'') then
begin
edit3.text:=fieldbyname('deptcode').asstring;
edit4.text:=fieldbyname('memo').asstring;
break;
end;
next;
end;
close;
end;
end;
procedure Tformdeptrecorder.Edit3Exit(Sender: TObject);
begin
with datamod.ADOQuery1 do
begin
sql.clear;
sql.Add ('select dept from pub05010 where dno='''+edit3.text+'''');
open;
if eof then
Application.messagebox('对不起,没有这个部门编号','提示',mb_ok+mb_iconinformation);
close;
end;
end;
procedure Tformdeptrecorder.ToolButton4Click(Sender: TObject);
begin
close;
end;
procedure Tformdeptrecorder.tbnfindClick(Sender: TObject);
begin
findrecorder(datamod.adodeptrecorder,'Adodeptrecorder','pub06010');
end;
procedure Tformdeptrecorder.tbndelmanyClick(Sender: TObject);
var i:integer;
bookmarklist:Tbookmarklist;
bookmark:Tbookmarkstr;
begin
if application.messagebox('您确定要删除这些记录吗?','电脑提示',mb_okcancel)<>idok then
exit;
if dbgrid1.SelectedRows.Count >0 then //多笔记录删除
begin
bookmark:=datamod.adodeptrecorder.bookmark;
try
bookmarklist:=dbgrid1.SelectedRows;
for i:=0 to bookmarklist.Count-1 do
begin
datamod.ADOdeptrecorder.bookmark:=bookmarklist[i];
datamod.ADOdeptrecorder.Delete;
end;
finally
datamod.ADOdeptrecorder.bookmark:=Bookmark;
end
end
else
datamod.ADOdeptrecorder.Delete; //单笔删除
datamod.ADOdeptrecorder.Refresh;
end;
procedure Tformdeptrecorder.ToolButton5Click(Sender: TObject);
begin
if not toolbutton5.Down then
begin
toolbutton5.Hint :='显示有多少种行事历代码';
panel2.Visible :=true;
dbgrid1.DataSource :=datamod.dsdeptrecorder;
dbgrid1.Align :=alclient;
splitter2.Visible :=false;
dbgrid2.Visible :=false;
if checkbox1.Checked then
panel3.Visible :=true;
splitter1.Visible :=true;
dbnavigator2.Enabled :=true;
tbndelmany.Enabled :=true;
tbnfind.Enabled :=true;
tbnsort.enabled:=true;
end
else begin
toolbutton5.Hint :='还原窗体界面';
adom.close;
adom.open;
adod.close;
adod.open;
dbgrid1.DataSource := dsm;
dbgrid1.Align :=altop;
splitter2.Align :=altop;
splitter2.Visible :=true;
dbgrid2.Align :=alclient;
dbgrid2.Visible :=true;
panel2.Visible :=false;
panel3.Visible :=false;
splitter1.Visible :=false;
dbnavigator2.Enabled :=false;
tbndelmany.Enabled :=false;
tbnfind.Enabled :=false;
tbnsort.enabled:=false;
end;
end;
procedure Tformdeptrecorder.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked then
begin
edit1.enabled:=false;
dbedit1.Enabled :=false;
dbedit2.Enabled :=false;
dbedit3.Enabled :=false;
dbcombobox1.Enabled :=false;
dbedit5.Enabled :=false;
dbedit6.Enabled :=false;
panel3.Visible :=true;
end
else begin
edit1.enabled:=true;
dbedit1.Enabled :=true;
dbedit2.Enabled :=true;
dbedit3.Enabled :=true;
dbcombobox1.Enabled :=true;
dbedit5.Enabled :=true;
dbedit6.Enabled :=true;
panel3.Visible :=false;
end;
end;
procedure Tformdeptrecorder.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 Tformdeptrecorder.DBComboBox1DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
with (control as Tdbcombobox).canvas do
begin
fillrect(rect);
textout(rect.left,rect.top,(Control as TdbComboBox).Items[Index]);
with datamod.Query1 do
begin
close;
sql.text:='select dept from pub05010 where dno='''+dbcombobox1.Items[index]+'''';
open;
if not eof then
edit1.Text :=fields[0].asstring;
close;
end;
end;
end;
procedure Tformdeptrecorder.DBComboBox1DropDown(Sender: TObject);
begin
dbcombobox1.Style :=csOwnerDrawVariable;
end;
procedure Tformdeptrecorder.DBEdit3Exit(Sender: TObject);
begin
if isdate(dbedit3.text) then
begin
MonthCalendar1.date:=strtodate(dbedit3.text);
MonthCalendar1.onclick(sender);
end
else
showmessage('对不起,不是正确的日期,存档时可能会出错');
end;
procedure Tformdeptrecorder.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_F1 then
begin
//showmessage('ok!')
//MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0);
Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
application.HelpJump('SHM_CONTENTS0050');
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?