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 + -
显示快捷键?