📄 order_info.pas
字号:
if trim(dbe_l.Text)='' then begin temp_num_l:=0; dbe_l.Text:='0' end
else temp_num_l:=strtoint(dbe_l.Text);
if trim(dbe_XL.Text)='' then begin temp_num_Xl:=0; dbe_XL.Text:='0' end
else temp_num_Xl:=strtoint(dbe_Xl.Text);
if trim(dbe_XXl.Text)='' then begin temp_num_XXl:=0; dbe_xxl.Text:='0' end
else temp_num_XXL:=strtoint(dbe_XXl.Text);
if trim(dbe_XXXl.Text)='' then begin temp_num_XXXl:=0; dbe_XXXl.Text:='0' end
else temp_num_XXXl:=strtoint(dbe_XXXl.Text);
end;
if (State in [dsinsert]) and (temp_ordid='') then
begin
showmessage('订单批号不能为空!!!');
DBE_ord_id.SetFocus;
exit;
end;
if temp_costume='' then
begin
showmessage('服装名称不能为空!!!');
dbe_costume.SetFocus;
exit;
end;
if trim(DBLookup_cust_name.Text)='' then
begin
Msgok(handle,'客户名称不能为空!');
DBLookup_cust_name.SetFocus;
exit;
end;
if trim(DBLookup_clo_name.Text)='' then
begin
Msgok(handle,'服装类别不能为空!');
DBLookup_clo_name.SetFocus;
exit;
end;
//检测所输入的日期的合法性
{ if trim(DBE_order_date.Text)<>'' then
if not check_dateformat(trim(DBE_order_date.Text)) then begin DBE_order_date.SetFocus; exit; end;
if trim(DBE_expect_date.Text)<>'' then
if not check_dateformat(trim(DBE_expect_date.Text)) then begin DBE_expect_date.SetFocus; exit; end;
if trim(DBE_complete_date.Text)<>'' then
if not check_dateformat(trim(DBE_complete_date.Text)) then begin DBE_complete_date.SetFocus; exit; end;
}
if (temp_num='') or (strtoint(temp_num)=0) then
begin
showmessage('请输入该批订单的服装数量!');
dbe_num.SetFocus;
exit;
end;
if (State in [dsinsert]) and findRec('order_msg','ord_id',temp_ordid,info) then
begin
MsgOK(handle,'该订单批号已存在,致数据不可更新!');
DBE_ord_id.SetFocus;
exit;
end;
temp_sum_num:=temp_num_S + temp_num_M + temp_num_L + temp_num_xl + temp_num_XXl + temp_num_xxxl;
if strtoint(temp_num)<>temp_sum_num then
begin
MsgOK(handle,'订单总数与各大小型号服装数量明细不一致,请重新输入!');
DBE_num.SetFocus;
exit;
end;
if fieldvalues['unit_price']<=0 then
if MsgQst(handle,'建议客供工价为真实数据,因涉及到公司收入的计算,要继续保存吗?')=idNo then
begin
DBE_price.SetFocus;
exit;
end;
if fieldvalues['unit_price']>0 then
begin
if not ToMoney(floattostr(FieldValues['unit_price']),info) then
begin
MsgErr(handle,'金额格式不对[0.00]!');
DBE_price.SetFocus; abort; exit;
end;
end;
if (DBE_price.Text<>'') then
begin
temp_money:=fieldvalues['unit_price'] * strtoint(temp_num);
DBE_money.Text:=floattostr(temp_money);
end
else DBE_money.Text:='';
if trim(DBEdit_unit.Text)='' then DBEdit_unit.Text:='件';
try
post;
except
MsgErr(handle,'订单信息操作失败!');
exit;
end;
invalidation_control;
end;
end;
procedure TForm_order_info.DBE_SKeyPress(Sender: TObject; var Key: Char);
begin
// if not (key in ['0'..'9',#13,#8]) then abort;
end;
procedure TForm_order_info.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePageIndex=0 then
begin
LocateBtn.Enabled:=true;
refreshdb;
end
else LocateBtn.Enabled:=false;
end;
//根据客户名称及服装名称得到订单批号
procedure TForm_order_info.BitBtn_ordidClick(Sender: TObject);
var tmpstr:string;
len_str:integer;
begin
if trim(DBLookup_cust_name.Text)='' then
begin
MsgOk(handle,'请先确认该订单的客户名称!');
DBLookup_cust_name.SetFocus;
exit;
end;
if trim(DBLookup_clo_name.Text)='' then
begin
MsgOk(handle,'请先确认该订单所属的服装类别!');
DBLookup_clo_name.SetFocus;
exit;
end;
tmpstr:=getstringpy(trim(DBLookup_cust_name.Text));
if length(tmpstr)>3 then tmpstr:=copy(tmpstr,1,3)+'-'
else tmpstr:=tmpstr+'-';
tmpstr:=tmpstr+copy(getstringpy(trim(DBLookup_clo_name.Text)),1,2);
with ADOQtmp do
begin
close; sql.Clear;
sql.Add('select ord_id from order_msg where ord_id like '+''''+'%'+tmpstr+'%'+'''');
sql.Add('order by ord_id desc');
execsql; open;
len_str:=length(tmpstr);
if recordcount=0 then
tmpstr:=tmpstr+copy('00000000000',1,9-len_str)+'1'
else
begin
first;
tmpstr:=fieldvalues['ord_id'];
end;
end;
ADOQ_order_msg.FieldValues['ord_id']:=tmpstr;
end;
procedure TForm_order_info.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if not adoq_order_msg.Active then exit;
if ADOQ_order_msg.State in [dsedit, dsinsert] then
begin
AllowChange:=false;
Msgok(handle,'数据库正处在操作状态,请先按 [取消] 按钮!');
end;
end;
procedure TForm_order_info.DBGrid1DblClick(Sender: TObject);
begin
if ADOQ_order_msg.RecordCount=0 then exit;
PageControl1.ActivePageIndex:=1;
end;
procedure TForm_order_info.LocateBtnClick(Sender: TObject);
var
tmpdatetime:Tdatetime;
begin
if PageControl1.ActivePageIndex<>0 then PageControl1.ActivePageIndex:=0;
if not panel5.Visible then
begin
panel5.Enabled:=true;
panel5.Visible:=true;
//得到下单日期
GetHostDateTime(datamod.ADOCon,tmpdatetime);
edate.DateTime:=tmpdatetime;
Edit_ordid.Clear; Edit_name.Clear;
edit1.Clear; edit2.Clear;
ComBox_cloname.Text:='';
ComBox_custname.Text:='';
ExtBtn.Cancel:=false;
EndBtn.cancel:=true;
end;
end;
procedure TForm_order_info.EndBtnClick(Sender: TObject);
begin
panel5.Visible:=false;
panel5.Enabled:=false;
ExtBtn.Cancel:=true;
EndBtn.cancel:=false;
end;
procedure TForm_order_info.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#13, #8]) then abort;
end;
procedure TForm_order_info.OKBtnClick(Sender: TObject);
var
tmpnum, ordid, costume_name,clotype,
cust_name, strwhere: string;
begin
ordid:=trim(Edit_ordid.text);
costume_name:=trim(Edit_name.Text);
clotype:=trim(ComBox_cloname.Text);
cust_name:=trim(ComBox_custname.Text);
tmpnum:=Getquery_char(ComboBox1.Text,trim(Edit1.Text),trim(ComboBox2.Text),ComboBox3.Text,trim(Edit2.Text),'num');
//得到查询的条件语句
begin
strwhere:='where (order_date between :TmpStart and :TmpEnd )';
if ordid<>'' then
strwhere:=strwhere+' and (ord_id = '+''''+ordid+''''+')';
if costume_name<>'' then
strwhere:=strwhere+' and (costume_name like '+''''+'%'+costume_name+'%'+''''+')';
if clotype<>'' then
strwhere:=strwhere+' and (clo_id in (select clo_id from clothing where clo_name = '+''''+clotype+''''+')'+')';
if cust_name<>'' then
strwhere:=strwhere+' and (cust_id in (select cust_id from customer where cust_name = '+''''+cust_name+''''+')'+')';
strwhere:=strwhere + tmpnum;
end;
with ADOQ_order_msg do
begin
try
close;
sql.Strings[1]:=strwhere;
sql.Strings[2]:='order by clo_id,cust_id,order_date,num desc';
parameters.ParamValues['TmpStart']:=strtodatetime(formatdatetime('yyyy-mm-dd',sdate.Date)+' 00:00:00');
parameters.ParamValues['TmpEnd']:=strtodatetime(formatdatetime('yyyy-mm-dd',edate.Date)+' 23:59:59');
execsql;
open;
except
MsgErr(handle,'数据库检索失败(Order_msg_Q)!');
refreshdb;
exit;
end;
end;
panel5.Visible:=false;
panel5.Enabled:=false;
ExtBtn.Cancel:=true;
CancelBtn.cancel:=false;
end;
procedure TForm_order_info.FormShow(Sender: TObject);
begin
with ADOQtmp do
begin
close; sql.Clear;
sql.Add('select clo_name from clothing');
open;
ComBox_cloname.Items.Clear;
ComBox_cloname.Items.Add(' ');
first;
while not eof do
begin
ComBox_cloname.Items.Add(fieldvalues['clo_name']);
next;
end;
close; sql.Clear;
sql.Add('select cust_name from customer');
open;
ComBox_custname.Items.Clear;
ComBox_custname.Items.Add(' ');
first;
while not eof do
begin
ComBox_custname.Items.Add(fieldvalues['cust_name']);
next;
end;
end;
end;
procedure TForm_order_info.ADOQ_order_msgAfterInsert(DataSet: TDataSet);
var
order_date: Tdatetime;
begin
GetHostDateTime(datamod.ADOCon,order_date);
ADOQ_order_msg.FieldValues['order_date']:=order_date;
ADOQ_order_msg.FieldValues['unit']:='件';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -