?? ygzjs.pas
字號:
unit ygzjs;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls;
type
Tygzjsfrm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Label1: TLabel;
ComboBox1: TComboBox;
CheckBox1: TCheckBox;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
SpeedButton5: TSpeedButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure jiesuan;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
yfgz,ykgz,sfgz:integer;
end;
var
ygzjsfrm: Tygzjsfrm;
implementation
uses dbdata;
{$R *.dfm}
procedure Tygzjsfrm.FormShow(Sender: TObject);
begin
combobox1.Clear;
with data.ADOQYkhgl do
begin
close;
sql.Clear;
sql.Add('select distinct 考核月份 from 考核表');
open;
end;
while not data.ADOQYkhgl.Eof do
begin
combobox1.Items.Add(data.ADOQYkhgl.FieldByName('考核月份').Value);
data.ADOQYkhgl.Next;
end;
with data.ADOQYygzjs do
begin
close;
sql.Clear;
sql.Add('select * from 工資表');
open;
end;
data.ADOQYygzjs.Active:=true;
end;
procedure Tygzjsfrm.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked=true then
groupbox1.Enabled:=true
else
groupbox1.Enabled:=false;
end;
procedure Tygzjsfrm.jiesuan;
begin
with data.ADOQYbmxx do
begin
close;
sql.Clear;
sql.Add('select * from 工資表 where 工資月份=:aaa');
parameters.ParamByName('aaa').Value:=trim(combobox1.Text);
open;
end;
if data.ADOQYbmxx.FieldByName('應(yīng)發(fā)工資').Value<>null then
application.MessageBox('該月工資已結(jié)算,請不要重復(fù)結(jié)算','提示',64)
else
begin
with data.ADOQYygzjs do
begin
close;
sql.Clear;
sql.Add('select * from 工資表');
open;
end;
while not data.ADOQYygzjs.Eof do
begin
yfgz:=data.ADOQYygzjs.FieldByName('基本工資').Value +data.ADOQYygzjs.FieldByName('加班費').Value +data.ADOQYygzjs.FieldByName('全勤獎').Value +data.ADOQYygzjs.FieldByName('職務(wù)津貼').Value +data.ADOQYygzjs.FieldByName('其它金額').Value;
ykgz:=data.ADOQYygzjs.FieldByName('曠工費').Value +data.ADOQYygzjs.FieldByName('養(yǎng)老保險').Value +data.ADOQYygzjs.FieldByName('醫(yī)療保險').Value +data.ADOQYygzjs.FieldByName('失業(yè)保險').Value +data.ADOQYygzjs.FieldByName('其它扣額').Value +data.ADOQYygzjs.FieldByName('扣稅').Value;
sfgz:=yfgz - ykgz;
with data.ADOQYygzjs do
begin
edit;
fieldbyname('應(yīng)發(fā)工資').Value:=yfgz;
fieldbyname('應(yīng)扣工資').Value:=ykgz;
fieldbyname('實發(fā)工資').Value:=sfgz;
next;
end;
end;
application.MessageBox('結(jié)算完畢','提示',64);
end
end;
procedure Tygzjsfrm.SpeedButton1Click(Sender: TObject);
var
ctext:string;
begin
ctext:=combobox1.Text;
if combobox1.Text<>'' then
begin
with data.ADOQYbmxx do
begin
close;
sql.Clear;
sql.Add('select * from 工資表 where 工資月份=:aaa');
parameters.ParamByName('aaa').Value:=trim(combobox1.Text);
open;
end;
if data.ADOQYbmxx.RecordCount>0 then
application.MessageBox('該月工資已經(jīng)生成','提示',64)
else
begin
with data.ADOpublic do
begin
close;
sql.Clear;
sql.Add('select * from 考核表 where 考核月份=:aa');
parameters.ParamByName('aa').value:=combobox1.Text;
open;
end;
with data.ADOQYkqxx do
begin
close;
sql.Clear;
sql.Add('select * from 考勤表');
open;
end;
while not data.ADOpublic.Eof do
begin
with data.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from 工資模板 where 員工編號=:bb');
parameters.ParamByName('bb').Value:=data.ADOpublic.FieldByName('員工編號').Value;
open;
end;
with data.ADOQYsdszz do
begin
close;
sql.Clear;
sql.Add('select * from 所得稅稅率表 where 級別號=:cc');
parameters.ParamByName('cc').Value:=data.ADOQuery1.FieldByName('扣稅級別').Value;
open;
end;
try
with data.ADOQYygzjs do
begin
close;
sql.Clear;
sql.Add('insert 工資表 values (:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o,:p,:q,:r)');
parameters.ParamByName('a').Value:=trim(combobox1.Text);
parameters.ParamByName('b').Value:=data.ADOpublic.FieldByName('員工編號').Value;
parameters.ParamByName('c').Value:=data.ADOQuery1.FieldByName('員工姓名').Value;
parameters.ParamByName('d').Value:=data.ADOQuery1.FieldByName('基本工資').Value;
parameters.ParamByName('g').Value:=data.ADOQuery1.FieldByName('職務(wù)津貼').Value;
parameters.ParamByName('h').Value:=trim(edit2.Text);
parameters.ParamByName('j').Value:=data.ADOQuery1.FieldByName('基本工資').Value*data.ADOQuery1 .FieldByName('養(yǎng)老保險').Value;
parameters.ParamByName('k').Value:=data.ADOQuery1.FieldByName('基本工資').Value*data.ADOQuery1 .FieldByName('失業(yè)保險').Value;
parameters.ParamByName('l').Value:=data.ADOQuery1.FieldByName('基本工資').Value*data.ADOQuery1 .FieldByName('醫(yī)療保險').Value;
parameters.ParamByName('m').Value:=data.ADOQuery1.FieldByName('基本工資').Value*data.ADOQYsdszz .FieldByName('稅率').Value;
parameters.ParamByName('n').Value:=trim(edit1.Text);
parameters.ParamByName('o').Value:=null;
parameters.ParamByName('p').Value:=null;
parameters.ParamByName('q').Value:=null;
parameters.ParamByName('r').Value:=trim(edit3.Text);
if data.ADOpublic.FieldByName('加班時數(shù)').Value > 0 then
parameters.ParamByName('e').Value:=data.ADOQuery1.FieldByName('基本工資').Value/data.ADOQYkqxx .FieldByName('月平均工作天數(shù)').Value/8*data.ADOQYkqxx .FieldByName('幾倍').Value*data.ADOpublic.FieldByName('加班時數(shù)').Value
else
parameters.ParamByName('e').Value:=0;
if (data.ADOpublic.FieldByName('出勤天數(shù)').Value < data.ADOQYkqxx.FieldByName('出勤天數(shù)').Value) or ((data.ADOpublic.FieldByName('遲到天數(shù)').Value + data.ADOpublic.FieldByName('早退天數(shù)').Value) >= data.ADOQYkqxx.FieldByName('遲到早退次數(shù)').Value) then
parameters.ParamByName('f').Value:=0
else
parameters.ParamByName('f').Value:=data.ADOQuery1.FieldByName('全勤獎').Value;
if data.ADOpublic.FieldByName('曠工天數(shù)').Value > 0 then
parameters.ParamByName('i').Value:=data.ADOQuery1.FieldByName('基本工資').Value/data.ADOQYkqxx.FieldByName('月平均工作天數(shù)').Value*data.ADOQYkqxx.FieldByName('幾倍').Value*data.ADOpublic.FieldByName('曠工天數(shù)').Value
else
parameters.ParamByName('i').Value:=0;
execsql;
end;
except
application.MessageBox('生成失敗','提示',64);
end;
data.ADOpublic.Next;
data.ADOQuery1.Next;
data.ADOQYsdszz.Next;
end;
end;
end
else
application.MessageBox('請選擇日期','提示',64);
with data.ADOQYygzjs do
begin
close;
sql.Clear;
sql.Add('select * from 工資表 where 工資月份=:a');
parameters.ParamByName('a').Value:=ctext;
open;
end;
data.ADOQYygzjs.Active:=true;
end;
procedure Tygzjsfrm.SpeedButton2Click(Sender: TObject);
begin
if (edit1.Text='0') and (edit2.Text='0') then
if MessageBox(self.Handle,'確定沒有其它金額或扣額嗎?','月工資結(jié)算',mb_yesno+mb_iconquestion)=idyes then
jiesuan
else
checkbox1.Checked:=true
else
jiesuan;
end;
procedure Tygzjsfrm.SpeedButton3Click(Sender: TObject);
begin
with data.ADOQYygzjs do
begin
close;
sql.Clear;
sql.Add('delete 工資表 where 工資月份=:a');
parameters.ParamByName('a').Value:=combobox1.Text;
execsql;
end;
self.OnShow(sender);
end;
procedure Tygzjsfrm.SpeedButton4Click(Sender: TObject);
begin
close;
end;
procedure Tygzjsfrm.SpeedButton5Click(Sender: TObject);
begin
if (edit1.Text<>'0') or (edit2.Text<>'0') then
if edit3.Text<>'' then
begin
with data.ADOQYygzjs do
begin
edit;
fieldbyname('其它金額').Value:=trim(edit2.Text);
fieldbyname('其它扣額').Value:=trim(edit1.Text);
fieldbyname('備注').Value:=trim(edit3.Text);
post;
end;
checkbox1.Checked:=false;
edit1.Text:='0';
edit2.Text:='0';
edit3.Clear;
end
else
application.MessageBox('請對其它金額或扣額作出說明!','提示',64);
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -