📄 officepay.pas
字号:
unit officepay;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ComCtrls, DBTables, Grids, DBGrids, ExtCtrls, StdCtrls,
Mask, DBCtrls;
type
TFrm_officepay = class(TForm)
PageControl1: TPageControl;
TabSheet2: TTabSheet;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox6: TGroupBox;
Panel2: TPanel;
btn_qry: TButton;
btn_clr: TButton;
btn_prt: TButton;
dsmpc_var: TDataSource;
Queryuse: TQuery;
GroupBox4: TGroupBox;
Label12: TLabel;
Label13: TLabel;
cbhth: TComboBox;
cbbsc: TComboBox;
cbmonth: TComboBox;
Button1: TButton;
Panel4: TPanel;
Panel9: TPanel;
Panel8: TPanel;
Panel5: TPanel;
Edit1: TEdit;
Panel6: TPanel;
Edit2: TEdit;
Panel7: TPanel;
Edit3: TEdit;
Panel10: TPanel;
Edit4: TEdit;
Panel11: TPanel;
Edit5: TEdit;
Panel12: TPanel;
Edit6: TEdit;
qgatherpay: TQuery;
Query1: TQuery;
cbyear: TComboBox;
Button2: TButton;
qmpc_var: TQuery;
qmpc_jtssjg: TFloatField;
qmpc_jc: TFloatField;
qmpc_varField: TFloatField;
qmpc_varField2: TFloatField;
qmpc_varField3: TFloatField;
qmpc_varField4: TFloatField;
qmpc_varField5: TFloatField;
qmpc_varField6: TFloatField;
qmpc_varField7: TFloatField;
qmpc_varField8: TFloatField;
qmpc_varField9: TFloatField;
qmpc_varField10: TFloatField;
qmpc_varField11: TFloatField;
qmpc_varBDEDesigner20: TStringField;
qmpc_varBDEDesigner21: TStringField;
qmpc_varBDEDesigner22: TIntegerField;
qmpc_varBDEDesigner23: TFloatField;
qmpc_varBDEDesigner24: TFloatField;
qmpc_varBDEDesigner25: TFloatField;
qmpc_varBDEDesigner26: TFloatField;
qmpc_varField16: TFloatField;
qmpc_varBDEDesigner: TStringField;
qmpc_varBDEDesigner2: TStringField;
qmpc_varBDEDesigner3: TCurrencyField;
qmpc_varBDEDesigner4: TCurrencyField;
qmpc_varBDEDesigner5: TCurrencyField;
qmpc_varBDEDesigner6: TCurrencyField;
qmpc_varBDEDesigner7: TCurrencyField;
qmpc_varBDEDesigner8: TCurrencyField;
qmpc_varBDEDesigner9: TIntegerField;
qmpc_varBDEDesigner10: TCurrencyField;
qmpc_varBDEDesigner27: TStringField;
Query2: TQuery;
Query2BDEDesigner: TStringField;
Query2BDEDesigner2: TStringField;
Query2BDEDesigner3: TCurrencyField;
Query2BDEDesigner4: TCurrencyField;
Query2BDEDesigner5: TCurrencyField;
Query2BDEDesigner6: TCurrencyField;
Query2BDEDesigner7: TCurrencyField;
Query2BDEDesigner8: TCurrencyField;
Query2BDEDesigner9: TIntegerField;
Query2BDEDesigner10: TStringField;
Query2BDEDesigner11: TCurrencyField;
Query2BDEDesigner12: TStringField;
Query2BDEDesigner13: TStringField;
Query2BDEDesigner14: TIntegerField;
Query2BDEDesigner15: TStringField;
Query2BDEDesigner16: TFloatField;
Query2BDEDesigner17: TFloatField;
Query2BDEDesigner18: TFloatField;
Query2BDEDesigner19: TFloatField;
qmpc_varBDEDesigner11: TStringField;
qgatherpayBDEDesigner: TStringField;
qgatherpayBDEDesigner2: TStringField;
qgatherpayBDEDesigner3: TStringField;
qgatherpayBDEDesigner4: TCurrencyField;
qgatherpayBDEDesigner5: TCurrencyField;
qgatherpayBDEDesigner6: TCurrencyField;
qgatherpayBDEDesigner7: TCurrencyField;
qgatherpayBDEDesigner8: TCurrencyField;
qgatherpayBDEDesigner9: TCurrencyField;
qgatherpayBDEDesigner10: TCurrencyField;
qmpc_varStringField: TStringField;
qmpc_varStringField2: TStringField;
forshow: TQuery;
dsforshow: TDataSource;
forshowBDEDesigner2: TIntegerField;
forshowBDEDesigner3: TStringField;
forshowBDEDesigner4: TStringField;
forshowBDEDesigner5: TCurrencyField;
forshowBDEDesigner6: TCurrencyField;
forshowBDEDesigner7: TCurrencyField;
forshowBDEDesigner8: TCurrencyField;
forshow_: TCurrencyField;
forshow_2: TCurrencyField;
forshow_3: TCurrencyField;
forshow_4: TCurrencyField;
forshow_5: TCurrencyField;
forshow_6: TCurrencyField;
forshow_7: TCurrencyField;
forshow_8: TCurrencyField;
forshowBDEDesigner9: TStringField;
forshowBDEDesigner10: TStringField;
forshowBDEDesigner11: TStringField;
DBGrid1: TDBGrid;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure btn_qryClick(Sender: TObject);
procedure btn_clrClick(Sender: TObject);
procedure qmpc_varCalcFields(DataSet: TDataSet);
procedure qmpc_varAfterOpen(DataSet: TDataSet);
procedure btn_prtClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure cbyearExit(Sender: TObject);
procedure cbmonthExit(Sender: TObject);
procedure forshowAfterOpen(DataSet: TDataSet);
procedure FormDestroy(Sender: TObject);
private
function GetFieldType(FieldIndex:Integer):String;
{ Private declarations }
procedure getcoefficient;
procedure getbonus;
procedure updatedatabase;
procedure clearsumbox;
public
punish: real;
award: real;
coefficientnew:real;
coefficientold:real;
coefficientnew2:real;
coefficientold2:real;
saleout: real;
{ Public declarations }
end;
var
Frm_officepay: TFrm_officepay;
j:integer;
myIndex:array[1..6] of integer;
FieldType:array[0..150] of TFieldType;
myValue:array[1..6] of single;
Year, Month, Day: Word;
Present: TDateTime;
implementation
uses data, rp_officepay, rp_realprice, rp_gatherpay;
{$R *.dfm}
//***************释放空间********************
procedure TFrm_officepay.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
//***************以下是自定义的按纽和编辑的可否应用部分*********************
//***************以上是按纽操作。*********************
//***************打开数据集********************
procedure TFrm_officepay.FormCreate(Sender: TObject);
begin
//默认的datetime:
Present:= Now;
DecodeDate(Present, Year, Month, Day);
cbyear.Text:=inttostr(year);
cbmonth.Text:=inttostr(month);
//给出查询页的下拉列表。
with query1 do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 合同号 from pub_z_contract');
prepare;
open;
cbhth.Items.Clear ;
while not Eof do begin
cbhth.Items.Add(FieldByName('合同号').AsString);
Next;
end;
end;
with query1 do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 办事处名称 from pub_z_office');
prepare;
open;
cbbsc.Items.Clear ;
while not Eof do begin
cbbsc.Items.Add(FieldByName('办事处名称').AsString);
Next;
end;
end;
end;
procedure TFrm_officepay.btn_qryClick(Sender: TObject);
var
qitem,q1,q2,q3,q4:string;
begin
//晴空合计编辑况
clearsumbox;
q1 :=cbhth.Text;
q2 :=cbbsc.Text;
q3 :=cbyear.Text;
q4 :=cbmonth.Text;
//如果没有设置条件,给出提示:
if (q3='') or (q4='') or (q3=null) or (q4=null)
then application.MessageBox('日期必须完整填写!','提示',MB_OK)
else begin
//根据年月获取数据进行计算
with qmpc_var do begin
if qmpc_var.Active then qmpc_var.close;
qmpc_var.parambyname('year').AsString:=q3;
qmpc_var.parambyname('month').AsString:=q4;
qmpc_var.open;
end;
//更新数据库;
updatedatabase;
//过滤查询
if not(cbhth.Text='') then
begin
q1:=cbhth.Text;
q1:=' 合同号='''+q1+''' ';
end
else
q1:='';
if not(cbbsc.Text='') then
begin
q2:=cbbsc.Text;
q2:=' 办事处名称='''+q2+''' ';
end
else
q2:='';
if not(cbyear.Text='') then
begin
q3:=cbyear.Text;
q3:=' 年='''+q3+''' ';
end
else
q3:='';
if not(cbmonth.Text='') then
begin
q4:=cbmonth.Text;
q4:=' 月='''+q4+''' ';
end
else
q4:='';
//将条件累加成子句
if q1<>'' then qitem:=q1 else qitem:='';
if qitem='' then
if q2<>'' then qitem:=q2 ;
if qitem<>'' then
if q2<>'' then qitem:=qitem+' and '+q2 ;
if qitem='' then
if q3<>'' then qitem:=q3 ;
if qitem<>'' then
if q3<>'' then qitem:=qitem+' and '+q3;
if qitem='' then
if q4<>'' then qitem:=q4;
if qitem<>'' then
if q4<>'' then qitem:=qitem+' and '+q4;
with forshow do begin
if qitem<>'' then qitem:=qitem+' and 鉴别=0'
else qitem:=' 鉴别=0';
filter:=qitem;
filtered:=true;
open;
DBGrid1.DataSource :=dsforshow;
end;
end;
end;
procedure TFrm_officepay.updatedatabase;
begin
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('delete from crttbl_officepay where 年=:year and 月=:month');
parambyname('year').AsString:=cbyear.text;
parambyname('month').asstring:=cbmonth.text;
ExecSQL;
end;
with qmpc_var do begin
while not eof do begin
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('insert into crttbl_officepay values(:flag,:htbh,:xh,:jtssjg,:hktzxs,:jcjl,:jcfk,:jlbq,:ywybq,:wxbq,:fdjjbq,:wybbq,:khbbq,:jllj,:ywylj,:bsc,:nian,:yue)');
if (qmpc_var.fieldbyname('经理佣金_本期').ascurrency=0) or (qmpc_var.fieldbyname('业务员佣金_本期').ascurrency=0) or (qmpc_var.fieldbyname('经理佣金_本期').ascurrency=null) or (qmpc_var.fieldbyname('业务员佣金_本期').ascurrency=null) then
parambyname('flag').AsInteger :=1
else parambyname('flag').AsInteger :=0;
parambyname('htbh').AsString:=qmpc_var.fieldbyname('合同号').Asstring;
parambyname('xh').asstring:=qmpc_var.fieldbyname('机型').Asstring;
parambyname('nian').AsString:=qmpc_var.fieldbyname('年').Asstring;
parambyname('yue').asstring:=qmpc_var.fieldbyname('月').Asstring;
parambyname('jtssjg').ascurrency:=qmpc_var.fieldbyname('机台实收价格').ascurrency;
parambyname('hktzxs').asfloat:=qmpc_var.fieldbyname('货款调整系数').Asfloat;
parambyname('jcjl').ascurrency:=qmpc_var.fieldbyname('价差奖励').ascurrency;
parambyname('jcfk').ascurrency:=qmpc_var.fieldbyname('价差罚款').ascurrency;
parambyname('jlbq').ascurrency:=qmpc_var.fieldbyname('经理佣金_本期').ascurrency;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -