⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 officepay.pas

📁 主要是介绍DELPHI三层应用以及分布式数据库的应用
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -