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

📄 z_machine_out.pas

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

interface

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

type
  TForm_machine_out = class(TForm)
    DataSource1: TDataSource;
    Query12222: TQuery;
    Query12222BDEDesigner2: TStringField;
    Query12222BDEDesigner3: TStringField;
    Query12222BDEDesigner4: TDateTimeField;
    Query12222BDEDesigner5: TStringField;
    Query12222BDEDesigner6: TStringField;
    Query12222BDEDesigner7: TStringField;
    Query12222BDEDesigner8: TStringField;
    Query12222BDEDesigner9: TStringField;
    Query12222BDEDesigner10: TStringField;
    Query12222BDEDesigner11: TStringField;
    Query12222BDEDesigner12: TDateTimeField;
    Query12222BDEDesigner13: TDateTimeField;
    Query12222BDEDesigner14: TDateTimeField;
    Query12222BDEDesigner15: TStringField;
    Query12222BDEDesigner16: TMemoField;
    Query12222BDEDesigner17: TStringField;
    Query_contractNo: TQuery;
    DataSource2: TDataSource;
    Query2: TQuery;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel2: TPanel;
    ScrollBox: TScrollBox;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label3: TLabel;
    Label1: TLabel;
    Label18: TLabel;
    Label12: TLabel;
    Panel3: TPanel;
    btn_save1: TButton;
    btn_prev1: TButton;
    btn_next1: TButton;
    btn_last1: TButton;
    btn_first1: TButton;
    btn_edit1: TButton;
    btn_delete: TButton;
    btn_cancel1: TButton;
    btn_addnew1: TButton;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBRadioGroup1: TDBRadioGroup;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    DBMemo1: TDBMemo;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    DBEdit13: TDBEdit;
    DBComboBox1: TDBComboBox;
    DBComboBox2: TDBComboBox;
    DBComboBox3: TDBComboBox;
    DBGrid1: TDBGrid;
    Panel4: TPanel;
    btn_filterfield: TButton;
    btn_filterrecord: TButton;
    Query1: TADOQuery;
    Panel1: TPanel;
    Label17: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    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_edit1Click(Sender: TObject);
    procedure btn_deleteClick(Sender: TObject);
    procedure btn_save1Click(Sender: TObject);
    procedure btn_cancel1Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DBComboBox1Change(Sender: TObject);
    procedure Query12222BeforeDelete(DataSet: TDataSet);
    procedure DBComboBox1Exit(Sender: TObject);
    procedure DBComboBox1Enter(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btn_filterfieldClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure btn_filterrecordClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
   private
    { private declarations }
    procedure EnableScrollBox(aScrollBox : TScrollBox);
    procedure DisableScrollBox(aScrollBox : TScrollBox);

    procedure DisableBtn;
    //定义过程,用来使某些按钮失效
    procedure EnableBtn;
    //定义过程,用来使某些按钮有效

  public
    { public declarations }
    DBComboBox1_str:string;
    DBComboBox2_str:string;
    DBComboBox3_str:string;
    DBComboBox1_index:integer;
  end;

var
  Form_machine_out: TForm_machine_out;

implementation

uses Unit_wxp, search, rp_machine_out, Unit_public_jin;

{$R *.DFM}
 procedure TForm_machine_out.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_machine_out.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_machine_out.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;
    btn_delete.Enabled :=true;

end;

procedure TForm_machine_out.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;
    btn_delete.Enabled :=false;

end;



procedure TForm_machine_out.FormCreate(Sender: TObject);
begin
  Query1.Open;

  // c初始化 结束;
  Form_machine_out.KeyPreview :=true ;   // use enter replace of tab ;

  DisableScrollBox(ScrollBox);
  unit_public_jin.Setcolor(ScrollBox); //unit_public_jin 是公用变量; 设置输入框颜色
  // c初始化 结束;

  //add item;
 // with query2 do begin
 //   if not active then open;
  //end;


  // 合同编号
  with Query_contractNo  do
  begin
    if active then close;
    unprepare;
    sql.Clear;
    sql.Add('select distinct 合同号  from pub_z_contract');
    prepare;
    open;
    while not eof do
    begin
      DBComboBox1.Items.Add(fieldbyname('合同号').AsString);
      next;
    end;
  end;



end;



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

procedure TForm_machine_out.btn_prev1Click(Sender: TObject);
begin
 if not Query1.Bof then
               Query1.Prior ;

end;

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

end;

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

procedure TForm_machine_out.btn_addnew1Click(Sender: TObject);
begin
   //让文本框可以编辑
        //UnlockEdit;
        EnableScrollBox(ScrollBox);
        DisableBtn;

        DBComboBox2.ReadOnly := true;
        DBComboBox3.ReadOnly := true;

        Query1.Append ;
        btn_save1.Enabled :=true;
        btn_cancel1.Enabled :=true;

        DBRadioGroup1.ItemIndex := 0;
        DBRadioGroup1.SetFocus;

end;

procedure TForm_machine_out.btn_edit1Click(Sender: TObject);
begin
 //UnLockEdit;
        EnableScrollBox(ScrollBox);
        DisableBtn;
        Query1.Edit ;

        //
        DBComboBox2.ReadOnly := true;
        DBComboBox3.ReadOnly := true;

        btn_save1.Enabled :=true;
        btn_cancel1.Enabled :=true;



        DBRadioGroup1.SetFocus;

end;

procedure TForm_machine_out.btn_deleteClick(Sender: TObject);
begin
   Query1.Delete ;
end;

procedure TForm_machine_out.btn_save1Click(Sender: TObject);
begin
//dm_wxp.Table1.Post  ;
       Query1.post; //ApplyUpdates ;


       //锁住所有文本框
        //LockEdit;
        DisableScrollBox(ScrollBox);
        //使按钮有效
        EnableBtn ;

        btn_save1.Enabled :=false;
        btn_cancel1.Enabled :=false;

end;

procedure TForm_machine_out.btn_cancel1Click(Sender: TObject);
begin
      Query1.Cancel ;

      //LockEdit;
      DisableScrollBox(ScrollBox);

      EnableBtn;
      btn_cancel1.Enabled :=false;
      btn_save1.Enabled :=false;
end;



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

procedure TForm_machine_out.DBComboBox1Change(Sender: TObject);
begin

   //  if DBComboBox1.Items.IndexOf(DBComboBox1.Text )< 0 then
  //      showmessage('aa')
  //   else
  //        showmessage(inttostr(DBComboBox1.Items.IndexOf(DBComboBox1.Text ) ) )     ;


end;

procedure TForm_machine_out.Query12222BeforeDelete(DataSet: TDataSet);
begin

begin
//确认删除记录
if MessageBox(handle,'确实要删除当前记录吗?','确认',MB_IconQuestion+MB_YesNo)=IDNO then
Abort;
end;


end;

procedure TForm_machine_out.DBComboBox1Exit(Sender: TObject);
var
 aaa: string;
 intb: integer;
begin

  if DBComboBox1.Items.IndexOf(DBComboBox1.Text )< 0 then
     begin //1
     if  Query1.State = dsInsert  then //yes  /add new //保留text 值
       begin //
          aaa:= DBComboBox1.Text ;
          if MessageBox(handle,'此合同编号不存在,  请输入一个已经存在的合同编号,或者在列表框中选择一个合同编号!  是否重新输入合同编号?','出错',MB_IconQuestion+ MB_YESNO)=IDYES then
             begin
               self.DBComboBox1.SetFocus ;
               self.DBComboBox1.SelText := aaa;
             end
          else
            begin
              //Abort ;
             self.ScrollBox.SetFocus;
             self.DBComboBox2.SetFocus;

             self.DBComboBox1.text :='';
             self.DBComboBox2.text :='';
             self.DBComboBox3.Text :='';


             self.DBEdit6.SetFocus;

            end  //
       end;
     if  Query1.State = dsEdit  then //add new   dsEdit;//保留原来的值
       begin   //
          if MessageBox(handle,'此合同编号不存在,  请输入一个已经存在的合同编号,或者在列表框中选择一个合同编号!  是否重新输入合同编号?','出错',MB_IconQuestion+ MB_YESNO)=IDYES then
             begin
               Query1.FieldByName('合同编号').AsString := DBComboBox1_str;
               self.DBComboBox1.SetFocus ;
               self.DBComboBox1.SelText := DBComboBox1_str; //   DBComboBox1_str is  a public var
             end
          else
            begin
              //Abort ;
             self.ScrollBox.SetFocus  ;
             self.DBComboBox2.SetFocus;
             self.DBComboBox1.Text := DBComboBox1_str;
             self.DBComboBox2.text :=DBComboBox2_str;
             self.DBComboBox3.Text :=DBComboBox3_str;

             self.DBEdit6.SetFocus;

            end  //

       end;  //
     end //1
  else //是一个已经存在的合同
    begin
      //根据合同编号,选择客户号,名称;
     // intb:=DBComboBox1.Items.IndexOf(DBComboBox1.Text);
    aaa:= DBComboBox1.Text ; //Names[DBComboBox1.Items.IndexOf(DBComboBox1.Text)] ;
     ////////////
      // 合同编号
    with Query_contractNo  do
       begin
         if active then close;
         unprepare;
         sql.Clear;
         sql.Add('select  客户号,买方名称 from pub_z_contract');
         sql.Add('where  合同号 = :contract');
         Query_contractNo.ParamByName('contract').AsString := aaa;
         prepare;
         open;
         while not eof do
            begin
               Query1.FieldByName('客户代号').AsString:=Query_contractNo.FieldByName('客户号').AsString;
               Query1.FieldByName('客户名称').AsString:=Query_contractNo.FieldByName('买方名称').AsString;
               next;
            end;
       end;
    //self.DBComboBox2.SetFocus ;
    self.DBEdit6.SetFocus;
    end;//else end;

end;

procedure TForm_machine_out.DBComboBox1Enter(Sender: TObject);

begin

  DBComboBox1_str :=  DBComboBox1.Text;//.FieldByName('合同编号').AsString;
  DBComboBox1_index:=DBComboBox1.Items.IndexOf(DBComboBox1_str);
  DBComboBox2_str :=  Query1.FieldByName('客户代号').AsString;
  DBComboBox3_str :=  Query1.FieldByName('客户名称').AsString;

end;

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

procedure TForm_machine_out.btn_filterfieldClick(Sender: TObject);
begin
 Application.CreateForm(TForm_search, Form_search);
 form_search.TransADO :=self.Query1 ;
 unit_wxp.WhichForm := 300 ;
 //showmessage(inttostr(adoquery1.FieldCount))
  //adoquery1.FieldCount

 form_search.Showmodal ;
end;

procedure TForm_machine_out.Button1Click(Sender: TObject);
begin
     self.Query1.Active :=false;
     self.Query1.SQL.Clear ;
     self.Query1.SQL.Add('select * from pub_z_machine_out ');
     self.Query1.Active :=true;
     unit_wxp.FinalSql:= 'select * from pub_z_machine_out ';
end;

procedure TForm_machine_out.btn_filterrecordClick(Sender: TObject);
begin
     Application.CreateForm(TQRpt_machine_out, QRpt_machine_out);
     QRpt_machine_out.Query1 .Active :=false;
     QRpt_machine_out.Query1.SQL.Clear ;
     QRpt_machine_out.Query1.SQL.Add(unit_wxp.FinalSql );
     QRpt_machine_out.Query1.Active :=true;
     QRpt_machine_out.Preview ;
     QRpt_machine_out.Free ;
end;

procedure TForm_machine_out.FormDestroy(Sender: TObject);
begin
  Form_machine_out:=nil;
end;

end.

⌨️ 快捷键说明

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