📄 per_sal_modify.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 + -