formcomrec.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 674 行 · 第 1/2 页
PAS
674 行
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 Tformcomrecorder.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 Tformcomrecorder.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.ADOcomrecorder.Sort :=sortexp;
end;
procedure Tformcomrecorder.N3Click(Sender: TObject);
var i:1..5;
begin
for i:=1 to fcount do
dbgrid1.Columns[findex[i]].Color :=clwindow;
fcount:=0;
end;
procedure Tformcomrecorder.Edit1Exit(Sender: TObject);
begin
with datamod.ADOQuery1 do
begin
sql.clear;
sql.Add ('select codename,memo from pub06010 where comcode='''+edit1.text+'''');
open;
while not eof do
begin
if (fieldbyname('codename').asstring<>null) and (fieldbyname('codename').asstring<>'') then
begin
edit2.text:=fieldbyname('codename').asstring;
edit3.text:=fieldbyname('memo').asstring;
break;
end;
next;
end;
close;
end;
end;
procedure Tformcomrecorder.ToolButton4Click(Sender: TObject);
begin
close;
end;
procedure Tformcomrecorder.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.adocomrecorder.bookmark;
try
bookmarklist:=dbgrid1.SelectedRows;
for i:=0 to bookmarklist.Count-1 do
begin
datamod.ADOcomrecorder.bookmark:=bookmarklist[i];
datamod.ADOcomrecorder.Delete;
end;
finally
datamod.ADOcomrecorder.bookmark:=Bookmark;
end
end
else
datamod.ADOcomrecorder.Delete; //单笔删除
datamod.ADOcomrecorder.Refresh;
end;
procedure Tformcomrecorder.tbnfindClick(Sender: TObject);
begin
findrecorder(datamod.ADOcomrecorder,'Adocomrecorder','pub06010');
end;
procedure Tformcomrecorder.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked then
begin
dbedit1.Enabled :=false;
dbedit2.Enabled :=false;
dbedit3.Enabled :=false;
dbedit4.Enabled :=false;
dbedit5.Enabled :=false;
dbedit6.Enabled :=false;
panel3.visible:=true;
end
else begin
dbedit1.Enabled :=true;
dbedit2.Enabled :=true;
dbedit3.Enabled :=true;
dbedit4.Enabled :=true;
dbedit5.Enabled :=true;
dbedit6.Enabled :=true;
panel3.Visible :=false;
end;
end;
procedure Tformcomrecorder.ToolButton5Click(Sender: TObject);
begin
if not toolbutton5.Down then
begin
toolbutton5.Hint :='显示有多种行事历代码';
panel2.Visible :=true;
dbgrid1.DataSource :=datamod.dscomrecorder;
dbgrid1.Align :=alclient;
splitter2.Visible :=false;
dbgrid2.Visible :=false;
if checkbox1.Checked then
panel3.Visible :=true;
splitter1.Visible :=true;
dbnavigator2.Enabled :=true;
dbnavigator2.DataSource:=DataMod.Dscomrecorder;
tbndelmany.Enabled :=true;
tbnsort.Enabled :=true;
tbnfind.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;
dbnavigator2.DataSource:=dsm;
tbndelmany.Enabled :=false;
tbnsort.Enabled :=false;
tbnfind.Enabled :=false;
end;
end;
procedure Tformcomrecorder.FormCreate(Sender: TObject);
begin
//adom.Open;
//adod.Open;
end;
procedure Tformcomrecorder.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 Tformcomrecorder.DBEdit1Exit(Sender: TObject);
begin
with datamod.ADOQuery1 do
begin
sql.clear;
sql.Add ('select distinct(codename) from pub06010 where comcode='''+dbedit1.text+''' ');
open;
if not eof then
begin
datamod.ADOcomrecorder.edit;
datamod.adocomrecorder.fieldbyname('codename').asstring:=fieldbyname('codename').asstring;
end;
close;
end;
end;
procedure Tformcomrecorder.DBEdit1Change(Sender: TObject);
begin
with datamod.ADOQuery1 do
begin
sql.clear;
sql.Add ('select distinct(codename) from pub06010 where comcode='''+dbedit1.text+''' ');
open;
if not eof then
begin
if (datamod.adocomrecorder.state=dsinsert) or (datamod.adocomrecorder.state=dsedit) then
datamod.adocomrecorder.fieldbyname('codename').asstring:=fieldbyname('codename').asstring;
end;
close;
end;
end;
//输入日期时,算出星期几
procedure Tformcomrecorder.DBEdit2Exit(Sender: TObject);
begin
if isdate(dbedit2.text) then
begin
MonthCalendar1.date:=strtodate(dbedit2.text);
MonthCalendar1.onclick(sender);
end
else
showmessage('对不起,不是正确的日期,存档时可能会出错');
end;
procedure Tformcomrecorder.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;
procedure Tformcomrecorder.Button1Click(Sender: TObject);
var s1,s2,s,fmat1:string;
begin
//with datamod do
//begin
if fmat='/' then
fmat1:='/ /';
if fmat='-' then
fmat1:='- -';
if trim(edit4.text)<>'' then
s1:='(comcode='''+edit4.text+''' ) ';
if trim(maskedit4.text)<>fmat1 then
if (not isdate(maskedit3.Text)) or (not isdate(maskedit4.text)) then
begin
Application.MessageBox('对不起,您输入的不是有效日期','Warning',mb_ok+mb_iconwarning);
maskedit3.SetFocus;
exit;
end
else if maskedit4.text<maskedit3.text then
begin
application.messagebox('结束日期不能小於开始日期','warning',mb_ok+mb_iconwarning);
maskedit4.setfocus;
exit;
end else
begin
s2:='(comdate<='''+maskedit4.text+''' and comdate>='''+maskedit3.text+''') ';
end;
if s1<>'' then
if s2<>'' then s:=s1+' and '+s2
else s:=s1
else if s2<>'' then s:=s2;
if s<>'' then
begin
datamod.adocomrecorder.close;
datamod.adocomrecorder.commandtext:='select * from pub06010 where '+s+' ';
datamod.adocomrecorder.open;
end;
end;
//end;
procedure Tformcomrecorder.ToolButton1Click(Sender: TObject);
begin
datamod.adocomrecorder.close;
datamod.adocomrecorder.commandtext:='select * from pub06010 ';
datamod.adocomrecorder.open;
end;
procedure Tformcomrecorder.AdomBeforeDelete(DataSet: TDataSet);
begin
if application.MessageBox(pchar('确定要删除'+adom.fieldbyname('comcode').asstring),'提示',mb_okcancel+mb_iconwarning)=idok then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='delete pub06010 where comcode='''+adom.fieldbyname('comcode').asstring+'''';
adoquery1.ExecSQL;
end
else
adom.Cancel;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?