📄 wagemanage.pas
字号:
unit WageManage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ExtCtrls, DB, ADODB, DBGrids;
type
TWageManageFrm = class(TForm)
Panel1: TPanel;
wageG: TStringGrid;
Button2: TButton;
Button3: TButton;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
WageManageFrm: TWageManageFrm;
implementation
uses PersonnelDataDM,WageManageSQL;
{$R *.dfm}
//表格初始化及读出数据库数据
procedure TWageManageFrm.FormCreate(Sender: TObject);
var i:integer;
begin
with wageG do
begin
cells[0,0]:='部门代码';
cells[1,0]:='部门名称';
cells[2,0]:='职工类型';
cells[3,0]:='职工代码';
cells[4,0]:='职工姓名';
cells[5,0]:='基本工资';
cells[6,0]:='基本奖金';
cells[7,0]:='效益奖金';
cells[8,0]:='养老保险';
cells[9,0]:='医疗保险';
cells[10,0]:='扣发工资';
cells[11,0]:='扣发奖金';
cells[12,0]:='考勤扣发';
cells[13,0]:='实发工资';
end;
with PersonnelData.ADOQuery1 do
begin
close;
sql.clear;
SQL.Add('Select * from wage_manage');
open;
first;
with wageG do
begin
wageG.RowCount:=PersonnelData.ADOQuery1.RecordCount+1;
for i:=1 to PersonnelData.ADOQuery1.RecordCount do
begin
cells[0,i]:=inttostr(fieldbyname('DepartID').AsInteger);
cells[1,i]:=fieldbyname('DepartName').AsString;
cells[2,i]:=fieldbyname('EmployeeClass').AsString;
cells[3,i]:=floattostr(fieldbyname('EmployeeID').AsFloat);
cells[4,i]:=fieldbyname('Name').AsString;
cells[5,i]:=floattostr(fieldbyname('Base_pay').AsFloat);
cells[6,i]:=floattostr(fieldbyname('Base_prize').AsFloat);
cells[7,i]:=floattostr(fieldbyname('Benefit_prize').AsFloat);
cells[8,i]:=floattostr(fieldbyname('E_insurance').AsFloat);
cells[9,i]:=floattostr(fieldbyname('Medicare').AsFloat);
cells[10,i]:=floattostr(fieldbyname('Deprive_pay').AsFloat);
cells[11,i]:=floattostr(fieldbyname('Deprive_prize').AsFloat);
cells[12,i]:=floattostr(fieldbyname('Deprive_attend').AsFloat);
cells[13,i]:=floattostr(fieldbyname('Pay').AsFloat);
next;
end;
end;
end;
end;
procedure TWageManageFrm.Button2Click(Sender: TObject);
begin
if WageManageSQLFrm=nil then
Application.CreateForm(TWageManageSQLFrm, WageManageSQLFrm); //创建工资查询窗口
WageManageSQLFrm.show;
end;
procedure TWageManageFrm.Button3Click(Sender: TObject);
begin
WageManageFrm.Close;
end;
procedure TWageManageFrm.Button1Click(Sender: TObject);
var i:integer;
begin
//数据修改
with wageG do
for i:=1 to wageG.RowCount-1 do
if PersonnelData.Wage_manageADOTable.Locate('EmployeeID',cells[3,i],[]) then
begin
PersonnelData.Wage_manageADOTable.Edit;
PersonnelData.Wage_manageADOTable['Base_pay']:=strtofloat(cells[5,i]);
PersonnelData.Wage_manageADOTable['Base_prize']:=strtofloat(cells[6,i]);
PersonnelData.Wage_manageADOTable['Benefit_prize']:=strtofloat(cells[7,i]);
PersonnelData.Wage_manageADOTable['E_insurance']:=strtofloat(cells[8,i]);
PersonnelData.Wage_manageADOTable['Medicare']:=strtofloat(cells[9,i]);
PersonnelData.Wage_manageADOTable['Deprive_pay']:=strtofloat(cells[10,i]);
PersonnelData.Wage_manageADOTable['Deprive_prize']:=strtofloat(cells[11,i]);
PersonnelData.Wage_manageADOTable['Deprive_attend']:=strtofloat(cells[12,i]);
PersonnelData.Wage_manageADOTable.Post;
end;
//对实发工资计算
with PersonnelData.ADOQuery1 do
begin
close;
SQL.clear;
SQL.Add('Select * from wage_manage');
open;
first;
with wageG do
for i:=1 to PersonnelData.ADOQuery1.RecordCount do
begin
cells[13,i]:=floattostr(fieldbyname('Base_pay').AsFloat+fieldbyname('Base_prize').AsFloat+fieldbyname('Benefit_prize').AsFloat-fieldbyname('E_insurance').AsFloat
-fieldbyname('Medicare').AsFloat-fieldbyname('Deprive_pay').AsFloat-fieldbyname('Deprive_prize').AsFloat-fieldbyname('Deprive_attend').AsFloat);
next;
end;
end;
//对实发工资写入数据库
with wageG do
for i:=1 to wageG.RowCount-1 do
if PersonnelData.Wage_manageADOTable.Locate('EmployeeID',cells[3,i],[]) then
begin
PersonnelData.Wage_manageADOTable.Edit;
PersonnelData.Wage_manageADOTable['Pay']:=strtofloat(cells[13,i]);
PersonnelData.Wage_manageADOTable.Post;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -