⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 per_sal_modify.pas

📁 pasa人力资源考勤管理系统
💻 PAS
字号:
unit per_sal_modify;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Gauges, Buttons, Db, ADODB;

type
  TFormsal_modify = class(TForm)
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label8: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Panel2: TPanel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Panel3: TPanel;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    Edit3: TEdit;
    Panel4: TPanel;
    RadioButton7: TRadioButton;
    RadioButton8: TRadioButton;
    Edit4: TEdit;
    Panel5: TPanel;
    RadioButton9: TRadioButton;
    RadioButton10: TRadioButton;
    Edit5: TEdit;
    Panel6: TPanel;
    RadioButton11: TRadioButton;
    RadioButton12: TRadioButton;
    Edit6: TEdit;
    Panel7: TPanel;
    RadioButton13: TRadioButton;
    RadioButton14: TRadioButton;
    Edit7: TEdit;
    Panel8: TPanel;
    RadioButton15: TRadioButton;
    RadioButton16: TRadioButton;
    Panel1: TPanel;
    RG1: TRadioGroup;
    GroupBox3: TGroupBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Label10: TLabel;
    ListBox1: TListBox;
    ListBox2: TListBox;
    ComboBox1: TComboBox;
    Button1: TButton;
    Edit8: TEdit;
    Panel9: TPanel;
    Gauge1: TGauge;
    Label11: TLabel;
    Qry1: TADOQuery;
    procedure ComboBox1Change(Sender: TObject);
    procedure Edit8KeyPress(Sender: TObject; var Key: Char);
    procedure ListBox1DblClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure RG1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Formsal_modify: TFormsal_modify;

implementation

uses per_sallist,main,datamol,publicfunction;
{$R *.DFM}

procedure TFormsal_modify.ComboBox1Change(Sender: TObject);
begin
  if length(combobox1.text)>8 then
  begin
     listbox1.Items.Clear;
     Qry1.close;
     Qry1.SQL.Text:='select * from pub05010 where dno='''+trim(copy(combobox1.text,1,8))+''' ';
     Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该部门,部门编号有误','Error',mb_ok+mb_iconerror)
     else begin
       Qry1.close;  //选出该部门所有的员工
       Qry1.SQL.Clear;
       Qry1.SQL.Text:='select workno,name,sexname from per24010 where deptno='''+trim(copy(combobox1.text,1,8))+''' and leave=0 order by workno';
       Qry1.Open;
       if not Qry1.Eof then    //如果为空,提示user信息
         while not Qry1.Eof do  //不为空,就把它加入listbox1(工号,姓名,性别)中,等待user选择
         begin
           listbox1.Items.Add(Qry1.fieldbyname('workno').asstring+'  '+
                              Qry1.fieldbyname('name').asstring+'  '+
                              Qry1.fieldbyname('sexname').asstring);
           Qry1.Next;
         end;
     end;
     Qry1.Close;
  end;
end;

procedure TFormsal_modify.Edit8KeyPress(Sender: TObject; var Key: Char);
var
   i,p:integer;
   have:boolean;
begin
  if key=#13 then
  begin
    have:=false;
    p:=-1;
    for i:=0 to Listbox2.Items.Count-1 do
    begin
      if ansicomparetext(trim(copy(listbox2.items[i],1,10)),edit8.text)=0 then
      begin
         have:=true;
         p:=i;
      end;
    end;
    if not have then
    begin
      Qry1.Close;
      Qry1.sql.text:='Select * from per24010 where workno='''+Edit8.text+''' and leave=0 ';
      Qry1.open;
      if not Qry1.eof then
      begin
           listbox2.Items.Add(Qry1.fieldbyname('workno').asstring+'  '+
                              Qry1.fieldbyname('name').asstring+'  '+
                              Qry1.fieldbyname('sexname').asstring);
           listbox2.ItemIndex:=Listbox2.Items.count-1;
      end else
         Application.MessageBox('没有该工号的员工','Error',mb_ok+mb_iconerror);
    end;
    listbox2.ItemIndex:=p;
    edit8.Clear;
  end;
  label10.caption:=inttostr(listbox2.items.count);
  label10.update;
end;

procedure TFormsal_modify.ListBox1DblClick(Sender: TObject);
begin
  if listbox2.items.indexof(listbox1.items[listbox1.itemindex])<0 then
     listbox2.items.add(listbox1.items[listbox1.itemindex]);
end;

procedure TFormsal_modify.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
    for i:=0 to listbox1.items.count-1 do
    begin
       if listbox1.Selected[i] then
         if listbox2.items.indexof(listbox1.items[i])<0 then
            listbox2.Items.add(listbox1.items[i]);
    end;
    label10.caption:=inttostr(listbox2.items.count);
    label10.update;
end;

procedure TFormsal_modify.SpeedButton2Click(Sender: TObject);
var i:integer;
begin
    for i:=0 to listbox1.items.count-1 do
      if listbox2.items.indexof(listbox1.items[i])<0 then
        listbox2.items.add(listbox1.items[i]);
    label10.caption:=inttostr(listbox2.items.count);
    label10.update;
end;

procedure TFormsal_modify.SpeedButton3Click(Sender: TObject);
var i,j,k:integer;
    list:TStringList;
begin
  j:=0;
  list:=TStringList.Create;
  for i:=0 to listbox2.items.count-1 do
       list.add(listbox2.items[i]);
  //for i:=0 to listbox2.items.count-1 do
   // begin
   //j:=i;
   // break;
   // end;
 k:=0;
 for i:=0 to listbox2.items.count-1 do
    if listbox2.Selected[i] then
    begin
    j:=i;
      list.delete(j-k);
      inc(k);
    end;
  listbox2.items.clear;
  for i:=0 to list.Count-1 do
    listbox2.Items.Add(list.Strings[i]);
  for i:=0 to list.count-1 do
    if j=list.count then
    begin
    //listbox2.itemindex:=j-1 ;
    listbox2.selected[j-1]:=true;
     end
     else
     begin
    //listbox2.itemindex:=j;
    listbox2.selected[j]:=true;
    break;
    end;
    ////////////////////////////////
    label10.caption:=inttostr(listbox2.items.count);
    label10.update;
end;

procedure TFormsal_modify.SpeedButton4Click(Sender: TObject);
begin
    listbox2.clear;
    label10.caption:=inttostr(listbox2.items.count);
    label10.update;
end;

procedure TFormsal_modify.RG1Click(Sender: TObject);
begin
  case rg1.ItemIndex of
  0:begin
       combobox1.enabled:=false;
       listbox1.enabled:=false;
       speedbutton1.enabled:=false;
       speedbutton2.enabled:=false;
       Listbox2.clear;
       Qry1.close;
       Qry1.sql.text:='Select * from per24010 where stoppay=0 and leave=0 ';
       Qry1.open;
       while not Qry1.eof do
       begin
           listbox2.Items.Add(Qry1.fieldbyname('workno').asstring+'  '+
                              Qry1.fieldbyname('name').asstring+'  '+
                              Qry1.fieldbyname('sexname').asstring);
           Qry1.next;
       end;
    end;
  1:begin
       combobox1.enabled:=true;
       listbox1.enabled:=true;
       speedbutton1.enabled:=true;
       speedbutton2.enabled:=true;
    end;
  2:begin
       listbox2.items.clear;
       qry1.close;
       qry1.sql.text:='Select * from per24010 where leave=0 and dayormon=1';
       Qry1.open;
       while not Qry1.eof do
       begin
           listbox2.Items.Add(Qry1.fieldbyname('workno').asstring+'  '+
                              Qry1.fieldbyname('name').asstring+'  '+
                              Qry1.fieldbyname('sexname').asstring);
           Qry1.next;
       end;
    end;
  3:begin
       listbox2.items.clear;
       qry1.close;
       qry1.sql.text:='Select * from per24010 where leave=0 and dayormon=0';
       Qry1.open;
       while not Qry1.eof do
       begin
           listbox2.Items.Add(Qry1.fieldbyname('workno').asstring+'  '+
                              Qry1.fieldbyname('name').asstring+'  '+
                              Qry1.fieldbyname('sexname').asstring);
           Qry1.next;
       end;
    end;
  end;
  label10.caption:=inttostr(listbox2.items.count);
  label10.update;
end;

procedure TFormsal_modify.FormActivate(Sender: TObject);
begin
    Qry1.close;
    Qry1.sql.text:='Select * from pub05010 ';
    Qry1.open;
    combobox1.items.clear;
    While not Qry1.eof do
    begin
       Combobox1.Items.add(Qry1.fieldbyname('dno').asstring+copychar(' ',Qry1.fieldbyname('dno').size-length(Qry1.fieldbyname('dno').asstring))+'   '+Qry1.fieldbyname('dept').asstring);
       Qry1.next;
    end;
end;

procedure TFormsal_modify.FormKeyPress(Sender: TObject; var Key: Char);
begin
     if (activecontrol=edit8) or (activecontrol=combobox1) then exit;
     if key=#13 then
     begin
          key:=#0;
          selectnext(activecontrol,true,true);
     end;
end;

procedure TFormsal_modify.Button1Click(Sender: TObject);
var
  i:integer;
  hanGh:string;
  ygbhcd:integer;
begin
  if Listbox2.Items.Count<=0 then Exit;
  cursor:=crHourGlass;
  with datamod do
  begin
      Panel9.Visible:=true;
      self.update;
      Gauge1.MaxValue:=Listbox2.Items.Count;
      Gauge1.Progress :=0;
      adopublic.open;
      ygbhcd:=adopublicworknolength.AsInteger;
      For i:=0 to Listbox2.Items.Count -1 do
      begin
         hanGh:=Copy(Listbox2.Items[i],1,ygbhcd );
         Query1.close;
         Query1.sql.clear;
         if radiobutton2.Checked then
            Query1.sql.add('Update per24010 set basepay='+edit1.text+' where workno='''+hangh+''' ')
         else Query1.sql.add('Update per24010 set basepay=isnull(basepay,0)+'+edit1.text+' where workno='''+hangh+''' ');
         if radiobutton6.Checked then
            Query1.sql.add('Update per24010 set profmoney='+edit2.text+' where workno='''+hangh+''' ')
         else Query1.sql.add('Update per24010 set profmoney=isnull(profmoeny,0)+'+edit2.text+' where workno='''+hangh+''' ');
         if radiobutton8.Checked then
            Query1.sql.add('Update per24010 set techmoney='+edit3.text+' where workno='''+hangh+''' ')
         else Query1.sql.add('Update per24010 set techmoney=isnull(techmoney,0)+'+edit3.text+' where workno='''+hangh+''' ');
         if radiobutton10.Checked then
            Query1.sql.add('Update per24010 set deptmoney='+edit4.text+' where workno='''+hangh+''' ')
         else Query1.sql.add('Update per24010 set deptmoney=isnull(deptmoney,0)+'+edit4.text+' where workno='''+hangh+''' ');
         if radiobutton12.Checked then
            Query1.sql.add('Update per24010 set meatmoney='+edit5.text+' where workno='''+hangh+''' ')
         else Query1.sql.add('Update per24010 set meatmoney=isnull(meatmoney,0)+'+edit5.text+' where workno='''+hangh+''' ');
         if radiobutton14.Checked then
            Query1.sql.add('Update per24010 set insurance='+edit6.text+' where workno='''+hangh+''' ')
         else Query1.sql.add('Update per24010 set insurance=isnull(insurance,0)+'+edit6.text+' where workno='''+hangh+''' ');
         if radiobutton16.Checked then
            Query1.sql.add('Update per24010 set present='+edit7.text+' where workno='''+hangh+''' ')
         else Query1.sql.add('Update per24010 set present=isnull(present,0)+'+edit7.text+' where workno='''+hangh+''' ');
         Query1.sql.savetofile('c:\salupdate.sql');
         Query1.execsql;
         Gauge1.AddProgress(1);
      end;
      panel9.visible:=false;
  end;
end;

procedure TFormsal_modify.Edit1Exit(Sender: TObject);
begin
   if trim(TEdit(sender).text)='' then TEdit(sender).text:='0';
end;

procedure TFormsal_modify.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   datamod.adopersal.Close;
   datamod.adopersal.open; 
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -