📄 order_info.pas
字号:
unit order_info;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Spin, StdCtrls, Buttons, ComCtrls, Mask, DBCtrls,
Grids, DBGrids, ImgList, ToolWin, DB, ADODB;
type
TForm_order_info = class(TForm)
Panel1: TPanel;
AddBtn: TBitBtn;
EdtBtn: TBitBtn;
DelBtn: TBitBtn;
SaveBtn: TBitBtn;
CancelBtn: TBitBtn;
ExtBtn: TBitBtn;
DS_order_msg: TDataSource;
ADOQ_order_msg: TADOQuery;
ADOQ_order_msgord_id: TStringField;
ADOQ_order_msgcostume_name: TStringField;
ADOQ_order_msgclo_id: TIntegerField;
ADOQ_order_msgcust_id: TIntegerField;
ADOQ_order_msgorder_date: TDateTimeField;
ADOQ_order_msgexpect_date: TDateTimeField;
ADOQ_order_msgcomplete_date: TDateTimeField;
ADOQ_order_msgnum: TIntegerField;
ADOQ_order_msgunit: TStringField;
ADOQ_order_msgunit_price: TFloatField;
ADOQ_order_msgmoney: TFloatField;
ADOQ_order_msgsize_1: TIntegerField;
ADOQ_order_msgsize_2: TIntegerField;
ADOQ_order_msgsize_3: TIntegerField;
ADOQ_order_msgsize_4: TIntegerField;
ADOQ_order_msgsize_5: TIntegerField;
ADOQ_order_msgsize_6: TIntegerField;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
DBGrid1: TDBGrid;
TabSheet2: TTabSheet;
GroupBox1: TGroupBox;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label1: TLabel;
Label3: TLabel;
Label6: TLabel;
Label7: TLabel;
BitBtn_ordid: TSpeedButton;
DBEdit_unit: TDBEdit;
DBE_num: TDBEdit;
DBE_money: TDBEdit;
DBLookup_clo_name: TDBLookupComboBox;
DBE_ord_id: TDBEdit;
DBLookup_cust_name: TDBLookupComboBox;
DBE_price: TDBEdit;
DBE_costume: TDBEdit;
DBE_order_date: TDBEdit;
DBE_expect_date: TDBEdit;
DBE_complete_date: TDBEdit;
GroupBox2: TGroupBox;
Label8: TLabel;
Label9: TLabel;
Label4: TLabel;
Label5: TLabel;
Label2: TLabel;
Label10: TLabel;
DBE_S: TDBEdit;
DBE_XL: TDBEdit;
DBE_M: TDBEdit;
DBE_L: TDBEdit;
DBE_XXL: TDBEdit;
DBE_XXXL: TDBEdit;
Label18: TLabel;
Label19: TLabel;
ADOT_customer: TADOTable;
ADOT_customercust_id: TAutoIncField;
ADOT_customercust_name: TStringField;
ADOT_clothing: TADOTable;
ADOT_clothingclo_id: TAutoIncField;
ADOT_clothingclo_name: TStringField;
ADOQ_order_msgclo_name: TStringField;
ADOQ_order_msgcust_name: TStringField;
ADOQtmp: TADOQuery;
LocateBtn: TBitBtn;
Panel5: TPanel;
Label22: TLabel;
Label23: TLabel;
Label25: TLabel;
Bevel1: TBevel;
Label28: TLabel;
Label20: TLabel;
Label21: TLabel;
OKBtn: TBitBtn;
EndBtn: TBitBtn;
ComboBox1: TComboBox;
Edit1: TEdit;
ComboBox3: TComboBox;
Edit2: TEdit;
ComboBox2: TComboBox;
GroupBox6: TGroupBox;
Label31: TLabel;
Label32: TLabel;
Sdate: TDateTimePicker;
Edate: TDateTimePicker;
ComBox_cloname: TComboBox;
Edit_name: TEdit;
Edit_ordid: TEdit;
Bevel3: TBevel;
Bevel2: TBevel;
ComBox_custname: TComboBox;
Label26: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure AddBtnClick(Sender: TObject);
procedure EdtBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure DelBtnClick(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure DBE_SKeyPress(Sender: TObject; var Key: Char);
procedure PageControl1Change(Sender: TObject);
procedure BitBtn_ordidClick(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure DBGrid1DblClick(Sender: TObject);
procedure LocateBtnClick(Sender: TObject);
procedure EndBtnClick(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure OKBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ADOQ_order_msgAfterInsert(DataSet: TDataSet);
private
{ Private declarations }
procedure refreshdb;
procedure invalidation_control;
procedure active_control;
public
{ Public declarations }
end;
var
Form_order_info: TForm_order_info;
implementation
uses sharevar, sharefun, data;
{$R *.dfm}
procedure Tform_order_info.refreshdb;
begin
with ADOT_customer do begin close; open; end;
with ADOT_clothing do begin close; open; end;
with ADOQ_order_msg do
begin
close;
sql.Strings[1]:='';
open;
end;
end;
procedure TForm_order_info.FormCreate(Sender: TObject);
begin
try
if not ADOT_customer.Active then ADOT_customer.Open;
if not ADOT_clothing.Active then ADOT_clothing.Open;
if not ADOQ_order_msg.Active then ADOQ_order_msg.Open;
except
MsgErr(handle,'打开订单信息数据库失败!');
end;
DBGrid1.DataSource:=DS_order_msg;
refreshdb;
end;
procedure TForm_order_info.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
try
if ADOT_customer.Active then ADOT_customer.Close;
if ADOT_clothing.Active then ADOT_clothing.Close;
if ADOQ_order_msg.Active then ADOQ_order_msg.close;
except
MsgErr(handle,'关闭订单信息数据库失败!');
end;
action:=cafree;
end;
procedure Tform_order_info.invalidation_control;
begin
BitBtn_ordid.Enabled:=false;
dbe_ord_id.Enabled:=true;
dbe_ord_id.ParentColor:=false;
dbe_ord_id.Color:=clwindow;
GroupBox1.Enabled:=false;
GroupBox2.Enabled:=false;
DBGrid1.Enabled:=true;
AddBtn.Enabled:=true;
EdtBtn.Enabled:=true;
DelBtn.Enabled:=true;
end;
procedure TForm_order_info.active_control;
begin
if ADOQ_order_msg.State in [dsinsert] then
begin
BitBtn_ordid.Enabled:=true;
dbe_ord_id.Enabled:=true;
dbe_ord_id.ParentColor:=false;
dbe_ord_id.Color:=clwindow;
end;
if ADOQ_order_msg.State in [dsedit] then
begin
BitBtn_ordid.Enabled:=false;
dbe_ord_id.Enabled:=false;
dbe_ord_id.ParentColor:=true;
end;
GroupBox1.Enabled:=true;
GroupBox2.Enabled:=true;
DBGrid1.Enabled:=false;
AddBtn.Enabled:=false;
EdtBtn.Enabled:=false;
DelBtn.Enabled:=false;
end;
procedure TForm_order_info.AddBtnClick(Sender: TObject);
begin
PageControl1.ActivePageIndex:=1;
if ADOQ_order_msg.State in [dsinsert,dsedit] then exit;
ADOQ_order_msg.Append;
active_control;
DBE_ord_id.SetFocus;
end;
procedure TForm_order_info.EdtBtnClick(Sender: TObject);
begin
if ADOQ_order_msg.State in [dsinsert,dsedit] then exit;
if ADOQ_order_msg.RecordCount<1 then exit;
PageControl1.ActivePageIndex:=1;
ADOQ_order_msg.edit;
active_control;
DBLookup_cust_name.SetFocus;
end;
procedure TForm_order_info.CancelBtnClick(Sender: TObject);
begin
if not (ADOQ_order_msg.State in [dsedit,dsinsert]) then exit;
invalidation_control;
ADOQ_order_msg.Cancel;
end;
procedure TForm_order_info.DelBtnClick(Sender: TObject);
var
temp_customer, temp_costume: string;
begin
with ADOQ_order_msg do
begin
if RecordCount<1 then exit;
if State in [dsinsert,dsedit] then exit;
temp_customer:=fieldvalues['cust_name'];
temp_costume:=fieldvalues['costume_name'];
if MsgQst(handle,'确定删除客户 ['+temp_customer+'] 所提供的服装 ['+temp_costume+'] 订单吗?') =IDNO then exit;
try
delete;
except
MsgErr(handle,'当前数据在相关连的表中用到,不能删除!');
exit;
end;
end;
end;
procedure TForm_order_info.SaveBtnClick(Sender: TObject);
var
temp_ordid, temp_costume, info, temp_num: string;
temp_num_S, temp_num_M, temp_num_L, temp_num_XL,
temp_num_XXL, temp_num_XXXL, temp_sum_num: integer;
temp_money:real;
begin
with ADOQ_order_msg do
begin
if not (State in [dsinsert,dsedit]) then exit;
temp_ordid:=trim(DBE_ord_id.Text);
temp_costume:=trim(dbe_costume.Text);
temp_num:= trim(dbe_num.Text);
begin
if trim(dbe_s.Text)='' then begin temp_num_s:=0; dbe_s.Text:='0' end
else temp_num_S:=strtoint(DBE_S.Text);
if trim(dbe_m.Text)='' then begin temp_num_m:=0; dbe_m.Text:='0' end
else temp_num_m:=strtoint(dbe_m.Text);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -