📄 z_machine_out.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 + -