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

📄 ybnsdeliver1.pas

📁 主要是介绍DELPHI三层应用以及分布式数据库的应用
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit ybnsdeliver1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Mask,
  ComCtrls;

type
  Tfrm_ybnsdeliver1 = class(TForm)
    PCtrl_whole: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox2: TGroupBox;
    cbgh: TComboBox;
    GroupBox3: TGroupBox;
    cbname: TComboBox;
    GroupBox4: TGroupBox;
    Label2: TLabel;
    Label13: TLabel;
    cbmonth: TComboBox;
    Panel2: TPanel;
    btn_brs: TButton;
    btn_qry: TButton;
    btn_clr: TButton;
    btn_prt: TButton;
    GroupBox6: TGroupBox;
    DBGrid1: TDBGrid;
    Panel4: TPanel;
    Panel9: TPanel;
    Panel8: TPanel;
    Panel5: TPanel;
    Edit1: TEdit;
    Panel6: TPanel;
    Edit2: TEdit;
    Panel7: TPanel;
    Edit3: TEdit;
    Panel10: TPanel;
    Edit4: TEdit;
    qbnsdeliver1: TQuery;
    qbnsdeliver1BDEDesigner: TStringField;
    qbnsdeliver1BDEDesigner2: TFloatField;
    qbnsdeliver1BDEDesigner3: TFloatField;
    qbnsdeliver1BDEDesigner4: TFloatField;
    qbnsdeliver1BDEDesigner5: TStringField;
    qbnsdeliver1BDEDesigner6: TStringField;
    qbnsdeliver1BDEDesigner7: TStringField;
    qbnsdeliver1BDEDesigner8: TStringField;
    qbnsdeliver1Field: TFloatField;
    qbnsdeliver1Field2: TFloatField;
    dsbnsdeliver1: TDataSource;
    Queryuse: TQuery;
    qall: TQuery;
    dsall: TDataSource;
    qbnsdeliver1BDEDesigner13: TCurrencyField;
    qcheckmark: TQuery;
    dscheckmark: TDataSource;
    qcheckmarkBDEDesigner: TAutoIncField;
    qcheckmarkBDEDesigner2: TStringField;
    qcheckmarkBDEDesigner3: TSmallintField;
    qcheckmarkBDEDesigner4: TSmallintField;
    qcheckmarkBDEDesigner5: TSmallintField;
    qcheckmarkBDEDesigner6: TSmallintField;
    qcheckmarkBDEDesigner7: TSmallintField;
    qcheckmarkBDEDesigner8: TSmallintField;
    qcheckmarkBDEDesigner9: TSmallintField;
    qcheckmarkBDEDesigner10: TSmallintField;
    qcheckmarkBDEDesigner11: TSmallintField;
    qcheckmarkBDEDesigner12: TSmallintField;
    qcheckmarkBDEDesigner13: TSmallintField;
    qcheckmarkBDEDesigner14: TStringField;
    qcheckmarkBDEDesigner15: TStringField;
    quse2: TQuery;
    qcheckmarkBDEDesigner16: TStringField;
    qcheckmarkField1: TIntegerField;
    qcheckmarkField2: TIntegerField;
    qcheckmarkField12: TFloatField;
    qcheckmarkField22: TFloatField;
    quse1: TQuery;
    updatecheckmark: TUpdateSQL;
    upall: TUpdateSQL;
    quse: TQuery;
    qcheckmarkBDEDesigner18: TStringField;
    qbnsdeliver1Field3: TFloatField;
    cbyear: TComboBox;
    qforcount: TQuery;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label8: TLabel;
    DBComboBox2: TDBComboBox;
    DBComboBox1: TDBComboBox;
    Label12: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    DBEdit4: TDBEdit;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    Label6: TLabel;
    DBEdit5: TDBEdit;
    Label7: TLabel;
    DBEdit10: TDBEdit;
    btn_first: TButton;
    btn_prev: TButton;
    btn_next: TButton;
    btn_last: TButton;
    btn_addnew: TButton;
    btn_edit: TButton;
    btn_cancel: TButton;
    btn_delete: TButton;
    btn_save: TButton;
    GroupBox5: TGroupBox;
    Panel11: TPanel;
    cbbsc: TComboBox;
    btn_toperson: TButton;
    btn_savecheckmark: TButton;
    btn_check1: TButton;
    btn_check2: TButton;
    PCtrl_person: TPageControl;
    TabSheet4: TTabSheet;
    DBGck1: TDBGrid;
    TabSheet5: TTabSheet;
    DBGck2: TDBGrid;
    procedure qbnsdeliver1CalcFields(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure btn_clrClick(Sender: TObject);
    procedure btn_brsClick(Sender: TObject);
    procedure btn_qryClick(Sender: TObject);
    procedure qbnsdeliver1AfterOpen(DataSet: TDataSet);
    procedure btn_prtClick(Sender: TObject);
    procedure btn_lastClick(Sender: TObject);
    procedure btn_addnewClick(Sender: TObject);
    procedure btn_saveClick(Sender: TObject);
    procedure btn_prevClick(Sender: TObject);
    procedure btn_nextClick(Sender: TObject);
    procedure btn_editClick(Sender: TObject);
    procedure btn_cancelClick(Sender: TObject);
    procedure btn_deleteClick(Sender: TObject);
    procedure btn_firstClick(Sender: TObject);
    procedure btn_topersonClick(Sender: TObject);
    procedure qallAfterScroll(DataSet: TDataSet);
    procedure btn_savecheckmarkClick(Sender: TObject);
    procedure qcheckmarkCalcFields(DataSet: TDataSet);
    procedure btn_check1Click(Sender: TObject);
    procedure btn_check2Click(Sender: TObject);
    procedure TabSheet2Enter(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    procedure getmoneyratio;
    procedure getallratio;
    { Private declarations }
    procedure LockEdit;
    //定义函数,来改变各个输入框是否可以编辑,当用户再增加新记录
    //或者编辑记录以前,不可以修改
    procedure UnlockEdit;
    //定义函数,用来让输入文本框可以编辑
    procedure DisableBtn;
    //定义过程,用来使某些按钮失效
    procedure EnableBtn;
    //定义过程,用来使某些按钮有效

  public
    total:real;    //原来的总奖金,现在不用了。
    ratio:real;    //个人奖金系数;即原来的个人权重
    allratio:real; //奖金总系数;即原来的总权重
    checkresult:real;               //考核得分率
    { Public declarations }
  end;

var
  frm_ybnsdeliver1: Tfrm_ybnsdeliver1;

implementation

uses rp_ybnsdeliver1, data, rp_checkmark1, rp_checkmark2;

{$R *.dfm}
//***************以下是自定义的按纽和编辑的可否应用部分*********************
//自定义过程,用来确定每个Edit空间是否可以编辑
procedure Tfrm_ybnsdeliver1.LockEdit;
begin
{      DBEdit1.ReadOnly :=true;
      DBEdit2.ReadOnly :=true;
      DBEdit3.ReadOnly := true;
      DBEdit4.ReadOnly := true;
      DBEdit5.ReadOnly := true;
      DBComboBox1.ReadOnly := true;
      DBEdit10.ReadOnly :=true;}
      GroupBox1.Enabled :=false;
end;

procedure Tfrm_ybnsdeliver1.UnlockEdit ;
begin
{      DBEdit1.ReadOnly :=false;
      DBEdit2.ReadOnly :=false;
      DBEdit3.ReadOnly :=false;
      DBEdit4.ReadOnly :=false;
      DBEdit5.ReadOnly :=false;
      DBComboBox1.ReadOnly :=false;
      DBEdit10.ReadOnly :=true;}
      GroupBox1.Enabled :=true;  
end;


procedure Tfrm_ybnsdeliver1.DisableBtn ;
begin
    btn_first.Enabled :=false;
    btn_prev.Enabled :=false;
    btn_next.Enabled :=false;
    btn_last.Enabled :=false;

    btn_addnew.Enabled :=false;
    btn_edit.Enabled :=false;
    btn_toperson.Enabled :=false;
end;

procedure Tfrm_ybnsdeliver1.EnableBtn ;
begin
    btn_first.Enabled :=true;
    btn_prev.Enabled :=true;
    btn_next.Enabled :=true;
    btn_last.Enabled :=true;

    btn_addnew.Enabled :=true;
    btn_edit.Enabled :=true;
    btn_toperson.Enabled :=true;
end;

//***************以上是自定义的按纽和编辑的可否应用部分*********************

//***************以下是按纽操作。*********************
procedure Tfrm_ybnsdeliver1.btn_firstClick(Sender: TObject);
begin
        if not qall.Bof then qall.First;

end;

procedure Tfrm_ybnsdeliver1.btn_lastClick(Sender: TObject);
begin
        if not qall.eof then qall.Last;

end;
 procedure Tfrm_ybnsdeliver1.btn_prevClick(Sender: TObject);
begin
        if not qall.Bof then qall.Prior;

end;

procedure Tfrm_ybnsdeliver1.btn_nextClick(Sender: TObject);
begin
        if not qall.Eof then qall.Next;
end;
procedure Tfrm_ybnsdeliver1.btn_addnewClick(Sender: TObject);
var
  Present: TDateTime;
begin
        UnlockEdit;
        qall.append;

        DisableBtn;
        btn_save.Enabled :=true;
        btn_cancel.Enabled :=true;
//给下面审核栏默认值:
//日期:
    Present:= Now;
     qall.fieldbyname('录入日期').AsString :=datetimetostr(present);
//人名:
  with queryuse do begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select 主管,审核,录入 from pub_z_ybnsdeliverall1');
    prepare;
    open;
    last;
    qall.fieldbyname('主管').AsString:=fieldbyname('主管').AsString;
    qall.fieldbyname('审核').AsString:=fieldbyname('审核').AsString;
    qall.fieldbyname('录入').AsString:=fieldbyname('录入').AsString;
  end;
end;

procedure Tfrm_ybnsdeliver1.btn_saveClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
      qall.ApplyUpdates;
      DatabaseJxw.commit;
        //使编辑框和按钮有反应:
        LockEdit;
        EnableBtn ;
        btn_save.Enabled :=false;
        btn_cancel.Enabled :=false;
      except
        DatabaseJxw.Rollback;
        raise;
      end;

    end;
{        qall.Close ;
    qall.Open ;
 }
end;



procedure Tfrm_ybnsdeliver1.btn_editClick(Sender: TObject);
begin

        qall.Edit ;
        //让文本框可以编辑
        UnlockEdit;
        //使一些按钮失效
        DisableBtn;
        btn_save.Enabled :=true;
        btn_cancel.Enabled :=true;

end;


procedure Tfrm_ybnsdeliver1.btn_cancelClick(Sender: TObject);
begin
        qall.Cancel ;

        lockedit;

        enablebtn;
        btn_cancel.Enabled :=false;
        btn_save.Enabled :=false;

end;


procedure Tfrm_ybnsdeliver1.btn_deleteClick(Sender: TObject);
begin
     qall.Delete;

     lockedit;

     enablebtn;
     btn_delete.Enabled :=false;
     btn_save.Enabled :=false;

end;
//***************以上是按纽操作。*********************

procedure Tfrm_ybnsdeliver1.getmoneyratio;
var
   Year, Month, Day:word;
begin
   total:=0;
   ratio:=0;
      with queryuse do begin
      if active then close;
      unprepare;
      sql.Clear;
      sql.Add('select 合计价款_数值表达,买方签订日期 from  pub_z_contract');
      prepare;
      open;
      if findfirst then begin
       while not eof do
         begin
          DecodeDate(fieldbyname('买方签订日期').AsDateTime,Year,Month,Day);
         if (Year=qbnsdeliver1.fieldbyname('年').AsInteger) and (Month=qbnsdeliver1.fieldbyname('月').AsInteger) then
           total:=total+fieldbyname('合计价款_数值表达').Asfloat;
          next;
        end;
      end;
 //计算对应的奖金比例
      with queryuse do begin
      if active then close;
      unprepare;
      sql.Clear;
      sql.Add('select * from  std_pay_headoffice');
      prepare;
      open;
         last;
         while not bof do begin
            if total >= fieldbyname('销售额').Asfloat  then
            ratio:= fieldbyname('奖金比例').Asfloat;
            Prior;
         end;
     end;

   end;
end;

procedure Tfrm_ybnsdeliver1.getallratio;
begin
  checkresult:=0;
  allratio:=0;
     with queryuse do begin
      if active then close;
      unprepare;
      sql.Clear;
      sql.Add('select 奖金权重 from  pub_z_bonusratio1 where 年=:year and 月=:month');
      parambyname('year').AsString:=qbnsdeliver1.fieldbyname('年').AsString;
      parambyname('month').asstring:=qbnsdeliver1.fieldbyname('月').AsString;
      prepare;
      open;

      if findfirst then begin
      first;
       while not eof do
         begin
          allratio:=allratio+fieldbyname('奖金权重').Asfloat ;
          next;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -