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