📄 ybnsdeliver.pas
字号:
unit ybnsdeliver;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls;
type
Tfrm_ybnsdeliver = class(TForm)
GroupBox2: TGroupBox;
cbbsc: TComboBox;
GroupBox3: TGroupBox;
cbyear: TComboBox;
Panel3: TPanel;
btn_crtresult: TButton;
btn_clr: TButton;
btn_prt: TButton;
GroupBox6: TGroupBox;
s: TDBGrid;
dsbnsdeliver: TDataSource;
Queryuse: TQuery;
qbnsdeliver: TQuery;
qbnsdeliverField2: TFloatField;
qbnsdeliverBDEDesigner: TStringField;
qbnsdeliverBDEDesigner2: TStringField;
qbnsdeliverBDEDesigner3: TStringField;
qbnsdeliverBDEDesigner4: TStringField;
qbnsdeliverBDEDesigner5: TCurrencyField;
qbnsdeliverBDEDesigner6: TCurrencyField;
qbnsdeliverBDEDesigner7: TCurrencyField;
qbnsdeliverBDEDesigner8: TCurrencyField;
qbnsdeliverBDEDesigner9: TFloatField;
qbnsdeliverBDEDesigner10: TFloatField;
qbnsdeliverBDEDesigner11: TFloatField;
qbnsdeliverBDEDesigner12: TFloatField;
qbnsdeliverField: TFloatField;
Query1: TQuery;
Panel4: TPanel;
Panel9: TPanel;
Panel8: TPanel;
Panel5: TPanel;
Edit1: TEdit;
Panel6: TPanel;
Edit2: TEdit;
Panel7: TPanel;
Edit3: TEdit;
Panel10: TPanel;
Edit4: TEdit;
procedure getallratio;
procedure getotherthree;
procedure qbnsdeliverCalcFields(DataSet: TDataSet);
procedure qbnsdeliverAfteropen(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure btn_crtresultClick(Sender: TObject);
procedure btn_clrClick(Sender: TObject);
procedure btn_prtClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
allratio:real;
allmaintainratio:real;
jyckmoney:real;
sfmoney:real;
deductmoney:real;
{ Public declarations }
end;
var
frm_ybnsdeliver: Tfrm_ybnsdeliver;
implementation
uses data, rp_ybnsdeliver;
{$R *.dfm}
//****全办事处年终奖金总权重,全办事处维修人工费总权重:
procedure Tfrm_ybnsdeliver.getallratio;
begin
allratio:=1;
allmaintainratio:=1;
with query1 do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select sum(pub_z_yearratio.年终奖金权) 全办事处年终奖金总权重,sum(pub_z_yearratio.维修人工费权重) 全办事处维修人工费总权重 from pub_z_yearratio,pub_z_stuff where pub_z_stuff.办事处名称=:bscmc and pub_z_yearratio.工号=pub_z_stuff.工号');
parambyname('bscmc').AsString :=cbbsc.Text ;
prepare;
open;
if findfirst then begin
allratio:=fieldbyname('全办事处年终奖金总权重').AsFloat ;
allmaintainratio:=fieldbyname('全办事处维修人工费总权重').AsFloat ;
end;
end;
end;
//****12月份“月佣金和奖金发放表” 本人“结余存款”+12月份“月佣金和奖金发放表” 本人“应发”
//12月份“零配件计提分配表”的本人“零配件计提奖励”
procedure Tfrm_ybnsdeliver.getotherthree;
begin
jyckmoney:=0;
sfmoney:=0;
deductmoney:=0;
with query1 do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select distinct a.结余存款,a.实发,b.零配件计提奖励 from crttbl_monthdeliver a,pub_z_saledistribute b where a.年=:year and a.月=''12'' and a.工号=:gh and b.年=a.年 and b.月=a.月 and b.工号=a.工号');
parambyname('year').AsString :=cbyear.Text ;
parambyname('gh').AsString :=qbnsdeliver.fieldbyname('工号').AsString;
prepare;
open;
if findfirst then begin
jyckmoney:=fieldbyname('结余存款').AsFloat ;
sfmoney:=fieldbyname('实发').AsFloat ;
deductmoney:=fieldbyname('零配件计提奖励').AsFloat ;
end;
end;
end;
procedure Tfrm_ybnsdeliver.qbnsdeliverCalcFields(DataSet: TDataSet);
begin
with qbnsdeliver do begin
getallratio;
getotherthree;
fieldbyname('应发').AsFloat :=fieldbyname('总经理特别奖').AsFloat-fieldbyname('费用').AsFloat+fieldbyname('计划费用').AsFloat*fieldbyname('年终奖金权').AsFloat/allratio+jyckmoney+sfmoney+fieldbyname('维修人工费计提').AsFloat*fieldbyname('维修人工费权重').AsFloat/allmaintainratio+deductmoney+fieldbyname('其他奖励').AsFloat;
fieldbyname('实发').AsFloat :=fieldbyname('应发').AsFloat-fieldbyname('应扣').AsFloat;
end;
end;
procedure Tfrm_ybnsdeliver.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure Tfrm_ybnsdeliver.FormCreate(Sender: TObject);
begin
if qbnsdeliver.Active then qbnsdeliver.Close ;
//通过qforuse读出办事处名称列表
cbbsc.Items.Clear ;
with Queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 办事处名称 from pub_z_office');
prepare;
open;
while not eof do begin
cbbsc.Items.Add(fieldbyname('办事处名称').AsString);
next;
end;
end;
end;
procedure Tfrm_ybnsdeliver.btn_crtresultClick(Sender: TObject);
var
q1:string;
q2:string;
begin
q1 :=cbbsc.Text;
q2 :=cbyear.Text;
if (q1='') or (q2='')
then begin
application.MessageBox('您还没有设置查询条件呢!','提示',MB_OK);
btn_clrClick(btn_clr);
end;
if (q1<>'') and (q2<>'') then begin
with qbnsdeliver do begin
if Active then Close ;
parambyname('bscmc').AsString :=cbbsc.Text ;
parambyname('year').AsString :=cbyear.Text ;
Open ;
qbnsdeliverAfterOpen(qbnsdeliver);
if not findfirst then application.MessageBox('没有您想要的信息!','提示',MB_OK);
end;
end;
end;
procedure Tfrm_ybnsdeliver.btn_clrClick(Sender: TObject);
begin
cbbsc.Text :='';
cbyear.Text :='';
end;
procedure Tfrm_ybnsdeliver.qbnsdeliverAfterOpen(DataSet: TDataSet);
var
a1:real;
a2:real;
a3:real;
a4:real;
begin
//更改数据库
with qbnsdeliver do begin
first;
while not eof do begin
with Queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select * from pub_z_ybnsdeliver where 工号=:gh and 年=:nian');
parambyname('gh').asstring:=qbnsdeliver.fieldbyname('工号').Asstring;
parambyname('nian').AsString:=qbnsdeliver.fieldbyname('年').Asstring;
open;
//如果没有同样工号,年的记录,就插入。
if not findfirst then
sql.Add('insert into pub_z_ybnsdeliver values(:gh,:yf,:yk,:shf,:nian)')
//否则,更新数据。
else begin
sql.Add('update pub_z_ybnsdeliver set 工号=:gh,应发=:yf,应扣=:yk,实发=:shf,年=:nian');
sql.Add(' where 工号=:gh and 年=:nian');
end;
parambyname('yf').ascurrency:=qbnsdeliver.fieldbyname('应发').ascurrency;
parambyname('yk').ascurrency:=qbnsdeliver.fieldbyname('应扣').ascurrency;
parambyname('shf').ascurrency:=qbnsdeliver.fieldbyname('实发').ascurrency;
ExecSQL;
end;
next;
end;
end;
//合计列:
a1:=0;
a2:=0;
a3:=0;
a4:=0;
with qbnsdeliver do begin
first;
while not Eof do begin
a1:=a1+fieldbyname('应发').asfloat;
a2:=a2+fieldbyname('应扣').asfloat;
a3:=a3+fieldbyname('实发').asfloat;
Next ;
end;
end;
Edit1.text:=floattostr(a1);
Edit2.text:=floattostr(a2);
Edit3.text:=floattostr(a3);
Edit4.text:=floattostr(a4);
end;
procedure Tfrm_ybnsdeliver.btn_prtClick(Sender: TObject);
begin
frp_ybnsdeliver:=Tfrp_ybnsdeliver.Create(application);
frp_ybnsdeliver.QuickRep1.Preview;
frp_ybnsdeliver.free;
end;
procedure Tfrm_ybnsdeliver.FormDestroy(Sender: TObject);
begin
frm_ybnsdeliver:=nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -