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

📄 unit_hkhs.pas

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

interface

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

type
  TForm_hkhs = class(TForm)
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet5: TTabSheet;
    TabSheet6: TTabSheet;
    ScrollBox: TScrollBox;
    DBEdit7: TDBEdit;
    GroupBox8: TGroupBox;
    DBGrid1: TDBGrid;
    Query1: TADOQuery;
    DataSource1: TDataSource;
    Panel2: TPanel;
    Label1: TLabel;
    Panel5: TPanel;
    btn_first1: TButton;
    btn_prev1: TButton;
    btn_next1: TButton;
    btn_last1: TButton;
    btn_addnew1: TButton;
    btn_edit1: TButton;
    btn_save1: TButton;
    btn_cancel1: TButton;
    Button1: TButton;
    btn_delete: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    DBEdit1: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    DBEdit13: TDBEdit;
    DBEdit14: TDBEdit;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    DBEdit17: TDBEdit;
    DBEdit18: TDBEdit;
    DBEdit19: TDBEdit;
    DBEdit20: TDBEdit;
    DBEdit21: TDBEdit;
    DBEdit22: TDBEdit;
    DBEdit23: TDBEdit;
    DBEdit24: TDBEdit;
    DBEdit25: TDBEdit;
    DBComboBox1: TDBComboBox;
    DBComboBox2: TDBComboBox;
    Query_contract_client: TQuery;
    Panel4: TPanel;
    Button8: TButton;
    Button10: TButton;
    Button9: TButton;
    procedure btn_first1Click(Sender: TObject);
    procedure btn_prev1Click(Sender: TObject);
    procedure btn_next1Click(Sender: TObject);
    procedure btn_last1Click(Sender: TObject);
    procedure btn_addnew1Click(Sender: TObject);
    procedure btn_deleteClick(Sender: TObject);
    procedure btn_edit1Click(Sender: TObject);
    procedure btn_save1Click(Sender: TObject);
    procedure btn_cancel1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBEdit5Exit(Sender: TObject);
    procedure DBEdit6Exit(Sender: TObject);
    procedure DBEdit9Exit(Sender: TObject);
    procedure DBEdit11Exit(Sender: TObject);
    procedure DBComboBox1Exit(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    //集成定义;
    procedure EnableScrollBox(aScrollBox : TScrollBox);
    procedure DisableScrollBox(aScrollBox : TScrollBox);
    procedure DisableBtn;
    //定义过程,用来使某些按钮失效
    procedure EnableBtn;
    //定义过程,用来使某些按钮有效

  public
    { Public declarations }
  end;

var
  Form_hkhs: TForm_hkhs;

implementation

uses search, Unit_wxp, rp_hkhs, Unit_public_jin;

{$R *.dfm}

procedure TForm_hkhs.EnableScrollBox(aScrollBox : TScrollBox);
var Teller : Integer;
     classname1, classnameshort:string;
     ClassRef: TClass;
begin
   with aScrollBox do
  begin
    For Teller := 0 to aScrollBox.ControlCount -1 do //.ControlCount - 1 do
    begin
      ClassRef :=aScrollBox.Controls[ Teller ].ClassType; //控件类型
      classname1 :=aScrollBox.Controls[ Teller ].ClassName;
      if ClassRef <> nil then
      begin
       if classname1 = 'TDBEdit' then  aScrollBox.Controls[ Teller ].Enabled:= true;
       if classname1 = 'TDBRadioGroup' then aScrollBox.Controls[ Teller ].Enabled:= true;
       if classname1 = 'TDBMemo' then  aScrollBox.Controls[ Teller ].Enabled:= true;
       if classname1 = 'TDBComboBox' then  aScrollBox.Controls[ Teller ].Enabled:= true;
      end;
    end;
  end;
end;



procedure TForm_hkhs.DisableScrollBox(aScrollBox : TScrollBox);
 var Teller : Integer;
     classname1, classnameshort:string;
     ClassRef: TClass;
begin
   with aScrollBox do
  begin
    For Teller := 0 to aScrollBox.ControlCount -1 do //.ControlCount - 1 do
    begin
      ClassRef :=aScrollBox.Controls[ Teller ].ClassType; //控件类型
      classname1 :=aScrollBox.Controls[ Teller ].ClassName;
      if ClassRef <> nil then
      begin
       if classname1 = 'TDBEdit' then  aScrollBox.Controls[ Teller ].Enabled:= false;
       if classname1 = 'TDBRadioGroup' then aScrollBox.Controls[ Teller ].Enabled:= false;
       if classname1 = 'TDBMemo' then  aScrollBox.Controls[ Teller ].Enabled:= false;
       if classname1 = 'TDBComboBox' then  aScrollBox.Controls[ Teller ].Enabled:= false;

      end;
    end;
  end;
end;
procedure TForm_hkhs.EnableBtn ;
begin


    btn_first1.Enabled :=true;
    btn_prev1.Enabled :=true;
    btn_next1.Enabled :=true;
    btn_last1.Enabled :=true;

    btn_addnew1.Enabled :=true;
    btn_edit1.Enabled :=true;

end;

procedure TForm_hkhs.DisableBtn ;
begin
   

    btn_first1.Enabled :=false;
    btn_prev1.Enabled :=false;
    btn_next1.Enabled :=false;
    btn_last1.Enabled :=false;


    btn_addnew1.Enabled :=false;
    btn_edit1.Enabled :=false;

end;



procedure TForm_hkhs.btn_first1Click(Sender: TObject);
begin
self.Query1.First;
end;

procedure TForm_hkhs.btn_prev1Click(Sender: TObject);
begin

if not self.Query1.Bof then
self.Query1.Prior;
end;

procedure TForm_hkhs.btn_next1Click(Sender: TObject);
begin
if not self.Query1.Eof then
self.Query1.Next;
end;

procedure TForm_hkhs.btn_last1Click(Sender: TObject);
begin
self.Query1.Last;
end;

procedure TForm_hkhs.btn_addnew1Click(Sender: TObject);
begin

        EnableScrollBox(ScrollBox);
        self.DBEdit8.Enabled:=false;
        self.DBEdit19.Enabled:=false;
        self.DBEdit20.Enabled:=false;

        self.DBEdit8.Enabled :=false;
        DisableBtn;
        self.Query1.Append ;

        btn_save1.Enabled :=true;
        btn_cancel1.Enabled :=true;
        DBEdit1.SetFocus;
end;

procedure TForm_hkhs.btn_deleteClick(Sender: TObject);
begin
  if application.MessageBox(pchar('确信要删除这条记录嘛?'),
        pchar('注意'),MB_OKCANCEL)=IDOK then
        self.Query1.Delete
end;

procedure TForm_hkhs.btn_edit1Click(Sender: TObject);
begin
//UnLockEdit;
        EnableScrollBox(ScrollBox);
        DisableBtn;
        self.query1.Edit ;

        btn_save1.Enabled :=true;
        btn_cancel1.Enabled :=true;
       // btn_save.Enabled :=true;
        //btn_cancel.Enabled :=true;
end;

procedure TForm_hkhs.btn_save1Click(Sender: TObject);
begin
        self.Query1.post ;
        //self.Query2.Query_contract_machine.ApplyUpdates ;
        btn_save1.Enabled :=false;
        btn_cancel1.Enabled :=false;
        //锁住所有文本框
        //LockEdit;
        EnableScrollBox(ScrollBox);
        //使按钮有效
        EnableBtn ;

        btn_addnew1.Enabled :=true;
        btn_edit1.Enabled :=true;

      
end;

procedure TForm_hkhs.btn_cancel1Click(Sender: TObject);
begin
   self.Query1.Cancel ;
      EnableBtn;
      //LockEdit;
      DisableScrollBox(ScrollBox);
    
      btn_cancel1.Enabled :=false;
      btn_save1.Enabled :=false;
end;

procedure TForm_hkhs.Button1Click(Sender: TObject);
begin
self.Close;
end;

procedure TForm_hkhs.FormCreate(Sender: TObject);

begin
  self.Query1.Open;
  // c初始化
  self.DisableScrollBox(ScrollBox);
  Form_hkhs.KeyPreview := true;
  unit_public_jin.Setcolor(ScrollBox); //unit_public_jin 是公用变量; 设置输入框颜色
   // c初始化 结束;
    ////
    //////// ///////////////////
  //机型 FROM std_machine
  with Query_contract_client  do
  begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select distinct 机型 FROM std_machine ');
    prepare;
    open;
    DBComboBox2.Items.Clear;
    while not eof do
    begin
      DBComboBox2.Items.Add(fieldbyname('机型').AsString);
      next;
    end;
  end;
  ////////////////////
   //////// ///////////////////
  //hetong hao
  with Query_contract_client  do
  begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select distinct 合同号  from pub_z_contract');
    prepare;
    open;
    DBComboBox1.Items.Clear;
    while not eof do
    begin
      DBComboBox1.Items.Add(fieldbyname('合同号').AsString);
    next;
    end;
  end;
  ////////////////////
   ///


end;

procedure TForm_hkhs.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
    begin
      Key := #0;
      Perform(WM_NEXTDLGCTL, 0, 0);
    end;
end;

procedure TForm_hkhs.Button8Click(Sender: TObject);
begin
         Application.CreateForm(TForm_search, Form_search);
        form_search.TransADO :=self.Query1 ;
        unit_wxp.WhichForm := 201 ;
        form_search.Showmodal ;
end;

procedure TForm_hkhs.Button9Click(Sender: TObject);
begin

     self.Query1.Active :=false;
     self.Query1.SQL.Clear ;
     self.Query1.SQL.Add('select * from pub_z_hk_in ');
     self.Query1.Active :=true;
     unit_wxp.FinalSql:= 'select * from pub_z_hk_in ';
end;

procedure TForm_hkhs.Button10Click(Sender: TObject);
begin
     Application.CreateForm(TQRpt_hkhs, QRpt_hkhs);
     QRpt_hkhs.Query1.Active :=false;
     QRpt_hkhs.Query1.SQL.Clear ;
     QRpt_hkhs.Query1.SQL.Add(unit_wxp.FinalSql );
     QRpt_hkhs.Query1.Active :=true;
     QRpt_hkhs.Preview ;
     QRpt_hkhs.Free ;
end;

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

procedure TForm_hkhs.DBEdit5Exit(Sender: TObject);
var all:double;
begin
if (self.dbedit5.text<>'' ) and (self.dbedit6.text<>'' ) then
  begin
  all:=strtoint(self.DBEdit5.text)* strtofloat(self.DBEdit6.Text);
  self.DBEdit8.Text:= floattostr(all);
  end;

end;

procedure TForm_hkhs.DBEdit6Exit(Sender: TObject);
var all:double;
begin
if (self.dbedit5.text<>'' ) and (self.dbedit6.text<>'' ) then
  begin
  all:=strtoint(self.DBEdit5.text)* strtofloat(self.DBEdit6.Text);
  self.DBEdit8.Text:= floattostr(all);
  end;
 end; 

procedure TForm_hkhs.DBEdit9Exit(Sender: TObject);
var heji:double;
     yue:double;
begin
if (self.DBEdit8.text<>'')and(self.DBEdit9.text<>'') and (self.DBEdit11.text<>'') and (self.DBEdit13.text<>'') and (self.DBEdit15.text<>'') and (self.DBEdit9.text<>'') then
begin
   heji:= strtofloat(self.DBEdit9.text)+ strtofloat(self.DBEdit11.text)+ strtofloat(self.DBEdit13.text)+ strtofloat(self.DBEdit15.text)+ strtofloat(self.DBEdit17.text);
   yue:= strtofloat(self.DBEdit8.text) - heji;

   self.DBEdit19.Text:= floattostr(heji);
   self.dbedit20.Text:= floattostr(yue);

end
end;

procedure TForm_hkhs.DBEdit11Exit(Sender: TObject);
var heji:double;
     yue:double;
begin
if (self.DBEdit8.text<>'')and(self.DBEdit9.text<>'') and (self.DBEdit11.text<>'') and (self.DBEdit13.text<>'') and (self.DBEdit15.text<>'') and (self.DBEdit9.text<>'') then
begin
   heji:= strtofloat(self.DBEdit9.text)+ strtofloat(self.DBEdit11.text)+ strtofloat(self.DBEdit13.text)+ strtofloat(self.DBEdit15.text)+ strtofloat(self.DBEdit17.text);
   yue:= strtofloat(self.DBEdit8.text) - heji;

   self.DBEdit19.Text:= floattostr(heji);
   self.dbedit20.Text:= floattostr(yue);

end;


end;

procedure TForm_hkhs.DBComboBox1Exit(Sender: TObject);
var num:string;
begin
    num:=DBComboBox1.Text;
    with Query_contract_client  do
    begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select distinct 买方名称  from pub_z_contract');
    sql.Add('  where  合同号  = :aaa'); // 检索参数
    Query_contract_client.ParamByName('aaa').AsString := num;// 变数

    prepare;
    open;
    while not eof do
    begin
    //Query_contract_client.ParamByName('khmc').AsString := aaa;
    //dm_wxp.Table_contract.FieldByName('客户号').AsString:=Query_contract_client.FieldByName('客户号').AsString;
     query1.FieldByName('客户名称').AsString:=Query_contract_client.FieldByName('买方名称').AsString;
     DBEdit3.Text:= Query_contract_client.FieldByName('买方名称').AsString;
     next;
    end;
  end;
    DBComboBox2.SetFocus;
 end;//else end;




procedure TForm_hkhs.FormDestroy(Sender: TObject);
begin
Form_hkhs:=nil;
end;

end.



⌨️ 快捷键说明

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