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

📄 stdtable.pas

📁 主要是介绍DELPHI三层应用以及分布式数据库的应用
💻 PAS
字号:
unit stdtable;

interface

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

type
  Tfrm_stdtable = class(TForm)
    Lbtablename: TListBox;
    Pan_ostation: TPanel;
    ostation: TTable;
    dsostation: TDataSource;
    DBGostation: TDBGrid;
    btnsave_ostation: TButton;
    Pan_coefficient: TPanel;
    btnsave_coefficient: TButton;
    dscoefficient: TDataSource;
    coefficient: TTable;
    DBGcoefficient: TDBGrid;
    Pan_deduct: TPanel;
    Btnsave_deduct: TButton;
    DBGdeduct: TDBGrid;
    dsdeduct: TDataSource;
    deduct: TTable;
    Label1: TLabel;
    float: TTable;
    dsfloat: TDataSource;
    Pan_float: TPanel;
    btnsave_float: TButton;
    Pan_headoffice: TPanel;
    DBGheadoffice: TDBGrid;
    btnsave_headoffice: TButton;
    headoffice: TTable;
    dsheadoffice: TDataSource;
    Pan_maintain: TPanel;
    btnsave_maintain: TButton;
    dsmaintain: TDataSource;
    maintain: TTable;
    Pan_office: TPanel;
    btnsave_office: TButton;
    DBGoffice: TDBGrid;
    dsoffice: TDataSource;
    office: TTable;
    Pan_upper: TPanel;
    btnsave_upper: TButton;
    DBGupper: TDBGrid;
    dsupper: TDataSource;
    upper: TTable;
    sstation: TTable;
    dssstation: TDataSource;
    Pan_sstation: TPanel;
    btnsave_sstation: TButton;
    DBGsstation: TDBGrid;
    Label2: TLabel;
    DBEdit1: TDBEdit;
    Label3: TLabel;
    Pan_bonus: TPanel;
    btnsave_bonus: TButton;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    bonus: TQuery;
    floatBDEDesigner: TFloatField;
    floatBDEDesigner2: TFloatField;
    floatBDEDesigner3: TFloatField;
    floatBDEDesigner4: TFloatField;
    Panel1: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    ostationBDEDesigner2: TStringField;
    headofficeBDEDesigner2: TFloatField;
    headofficeBDEDesigner3: TFloatField;
    officeBDEDesigner: TStringField;
    officeBDEDesigner2: TStringField;
    officeBDEDesigner3: TStringField;
    coefficientBDEDesigner2: TFloatField;
    coefficientBDEDesigner3: TFloatField;
    deductBDEDesigner2: TFloatField;
    deductBDEDesigner3: TFloatField;
    Query1: TQuery;
    upperBDEDesigner2: TStringField;
    upperBDEDesigner3: TCurrencyField;
    procedure btnsave_ostationClick(Sender: TObject);
    procedure btnsave_bonusClick(Sender: TObject);
    procedure btnsave_coefficientClick(Sender: TObject);
    procedure LbtablenameClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Btnsave_deductClick(Sender: TObject);
    procedure DBGmaintainKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGfloatKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnsave_upperClick(Sender: TObject);
    procedure btnsave_officeClick(Sender: TObject);
    procedure btnsave_maintainClick(Sender: TObject);
    procedure btnsave_headofficeClick(Sender: TObject);
    procedure btnsave_floatClick(Sender: TObject);
    procedure btnsave_sstationClick(Sender: TObject);
    procedure DBGofficeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGofficeKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGcoefficientKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGdeductKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGupperKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    procedure falsevisible;
  public
    { Public declarations }
  end;

var
  frm_stdtable: Tfrm_stdtable;

implementation

uses data;

{$R *.dfm}

procedure Tfrm_stdtable.btnsave_ostationClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
      ostation.ApplyUpdates;
      DatabaseJxw.commit;
      //ostation.CommitUpdates ;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;

end;

procedure Tfrm_stdtable.btnsave_bonusClick(Sender: TObject);
begin


      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
              with bonus do begin
                if active then close;
                unprepare;
                sql.Clear;
                sql.Add('update std_pay_bonus set 奖励率=:jl1,惩罚率=:cf1 where 吨位是否大于600t=''是''');
                sql.Add('update std_pay_bonus set 奖励率=:jl2,惩罚率=:cf2 where 吨位是否大于600t=''否''');
                parambyname('jl1').AsFloat :=strtofloat(edit1.text);
                parambyname('cf1').AsFloat :=strtofloat(edit2.text);
                parambyname('jl2').AsFloat :=strtofloat(edit3.text);
                parambyname('cf2').AsFloat :=strtofloat(edit4.text);
                prepare;
              ExecSQL ;
              end;
      DatabaseJxw.commit;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;

end;

procedure Tfrm_stdtable.btnsave_coefficientClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
       coefficient.ApplyUpdates ;
      DatabaseJxw.commit;
//      coefficient.CommitUpdates ;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;
end;

procedure Tfrm_stdtable.LbtablenameClick(Sender: TObject);
begin
      if Lbtablename.itemindex>=0
      then begin
      label1.Caption :=Lbtablename.Items[Lbtablename.itemindex];
      falsevisible;
      if  Lbtablename.Items[Lbtablename.itemindex]='职位名称'
          then Pan_ostation.Visible :=true;
      if  Lbtablename.Items[Lbtablename.itemindex]='价差奖罚率表'
         then begin
          Pan_bonus.Visible :=true;
          with bonus do begin
           if active then close;
            unprepare;
            sql.Clear;
            sql.Add('select * from std_pay_bonus');
            open ;
              first;
              edit1.text:=floattostr(FieldByName('奖励率').AsFloat);
              edit2.text:=floattostr(FieldByName('惩罚率').AsFloat);
              next;
              edit3.text:=floattostr(FieldByName('奖励率').AsFloat);
              edit4.text:=floattostr(FieldByName('惩罚率').AsFloat);
            end;
         end;
      if  Lbtablename.Items[Lbtablename.itemindex]='货款调整系数表'
          then Pan_coefficient.Visible :=true;
      if  Lbtablename.Items[Lbtablename.itemindex]='零配件销售回款提成表'
          then Pan_deduct.Visible :=true;
      if  Lbtablename.Items[Lbtablename.itemindex]='公司佣金浮动率表'
          then Pan_float.Visible :=true;
      if  Lbtablename.Items[Lbtablename.itemindex]='总公司奖金比例表'
          then Pan_headoffice.Visible :=true;
      if  Lbtablename.Items[Lbtablename.itemindex]='维修人工费计提率表'
          then Pan_maintain.Visible :=true;
      if  Lbtablename.Items[Lbtablename.itemindex]='公司佣金率表'
          then Pan_office.Visible :=true;
      if  Lbtablename.Items[Lbtablename.itemindex]='月发放佣金上限表'
          then begin
          Pan_upper.Visible :=true;
          Query1.ExecSQL  ;
          end;


      if  Lbtablename.Items[Lbtablename.itemindex]='职位名称2'
          then Pan_sstation.Visible :=true;

      end;

end;
procedure Tfrm_stdtable.falsevisible;
begin
        Pan_coefficient.Visible :=false;
        Pan_bonus.Visible :=false;
        Pan_ostation.Visible :=false;
        Pan_deduct.Visible :=false;
    Pan_office.Visible :=false;
    Pan_sstation.Visible :=false;
    Pan_upper.Visible :=false;
    Pan_maintain.Visible :=false;
    Pan_headoffice.Visible :=false;
    Pan_float.Visible :=false;

end;
procedure Tfrm_stdtable.FormCreate(Sender: TObject);
begin
  falsevisible;
    coefficient.Open ;
    ostation.Open ;
    deduct.Open ;
    office.Open ;
    sstation.Open ;
    upper.Open ;
    maintain.Open ;
    headoffice.Open ;
    float.Open ;


end;

procedure Tfrm_stdtable.Btnsave_deductClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
     deduct.ApplyUpdates ;
      DatabaseJxw.commit;
//      deduct.CommitUpdates ;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;
end;

procedure Tfrm_stdtable.DBGmaintainKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if maintain.RecordCount>0 then   begin
      maintain.Delete;
   end;
end;

procedure Tfrm_stdtable.DBGfloatKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if float.RecordCount>0 then   begin
      float.Delete;
   end;

end;

procedure Tfrm_stdtable.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
        Action:=cafree;
end;

procedure Tfrm_stdtable.btnsave_upperClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
     upper.ApplyUpdates ;
      DatabaseJxw.commit;
 //     upper.CommitUpdates ;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;

end;

procedure Tfrm_stdtable.btnsave_officeClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
      office.ApplyUpdates ;
      DatabaseJxw.commit;
//office.CommitUpdates ;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;

end;

procedure Tfrm_stdtable.btnsave_maintainClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
     maintain.ApplyUpdates ;
      DatabaseJxw.commit;
//      maintain.CommitUpdates ;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;

end;

procedure Tfrm_stdtable.btnsave_headofficeClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
     headoffice.ApplyUpdates ;
      DatabaseJxw.commit;
//      headoffice.CommitUpdates ;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;

end;

procedure Tfrm_stdtable.btnsave_floatClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
      float.ApplyUpdates ;
      DatabaseJxw.commit;
//      float.CommitUpdates ;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;
     float.Open;
end;

procedure Tfrm_stdtable.btnsave_sstationClick(Sender: TObject);
begin
      with data.zxjxdata do begin
      if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
      try
     sstation.ApplyUpdates ;
      DatabaseJxw.commit;
      except
        DatabaseJxw.Rollback;
        raise;
      end;
    end;

end;

procedure Tfrm_stdtable.DBGofficeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
//if office.Eof and (key=40) then office.Last ;
end;

procedure Tfrm_stdtable.DBGofficeKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
            if office.Eof and (key=40) then office.Last ;
end;

procedure Tfrm_stdtable.DBGcoefficientKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
            if coefficient.Eof and (key=40) then coefficient.Last ;
end;

procedure Tfrm_stdtable.DBGdeductKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
            if deduct.Eof and (key=40) then deduct.Last ;
end;

procedure Tfrm_stdtable.DBGupperKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
            if upper.Eof and (key=40) then upper.Last ;

end;

end.

⌨️ 快捷键说明

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