📄 sequence_price.pas
字号:
end;
end;
end;
if temp_seqname<>edit_seqname then
if find_record('sequence_price','ord_id','seq_name',temp_ordid,temp_seqname,info) then
begin
MsgOK(handle,'该订单批号下已存在该工序名称,请重新输入!');
DBE_seq_name.SetFocus;
exit;
end;
temp_key:=fieldvalues['temp_key'];
end;//[dsedit].End
if trim(DBEdit1.text)='' then fieldvalues['seq_price']:=0;
if fieldvalues['seq_price']<0 then
begin
Msgok(handle,'请输入正确的工序加工工价!');
DBEdit1.SetFocus; exit;
end;
if not ToMoney(floattostr(FieldValues['seq_price']),info) then
begin
MsgErr(handle,'金额格式不对[0.00]!');
DBEdit1.SetFocus; abort; exit;
end;
try
post;
except
MsgErr(handle,'工序及工价信息操作失败!');
exit;
end;
with ADOT_price do
begin
close; open;
locate('temp_key',temp_key,[]);
end;
end;
end;
//[ADOT_seq_price]表取消编辑操作
procedure TForm_seq_price.CancelBtnClick(Sender: TObject);
begin
if not ADOT_price.Active then exit;
if not (ADOT_price.State in [dsedit,dsinsert]) then exit;
ADOT_price.Cancel;
end;
//计算客供整件工价及厂内部的所有工序工价的总和
procedure Tform_seq_price.account_unitprice;
var
temp_str:string;
temp_number: real;
begin
if DBLookupComboBox1.Text='' then exit;
temp_str:=trim(DBLookupComboBox1.Text);
try
//到对应的订单信息表读取该订单的客供工价/件
begin
with Adoq_temp do
begin
Close; SQL.Clear;
SQL.Add('select unit_price from order_msg where ord_id=:temp_ordid');
Parameters.ParamValues['temp_ordid']:=temp_str;
try
execsql; Open;
if recordcount<1 then edit1.Text:='¥0.00' else
begin
if Adoq_temp.FieldValues['unit_price']=null then Edit1.Text:='未知'
else
begin
temp_number:=0;
temp_number:=Adoq_temp.FieldValues['unit_price'];
Edit1.Text:='¥'+format('%.2f',[temp_number]);
end;
end;
except
MsgErr(handle,'系统查找记录值失败!');
edit1.Text:='¥0.00'; edit2.Text:='¥0.00';
end;
end;
end;
//到对应的工序工价表查找并计算同一批订单的所有工序工价的合计金额
begin
with Adoq_temp do
begin
Close; SQL.Clear;
SQL.Add('select sum(seq_price) as total from sequence_price where ord_id=:temp_ordid');
Parameters.ParamValues['temp_ordid']:=temp_str;
try
execsql; Open;
if recordcount<1 then edit2.Text:='¥0.00' else
begin
if fieldvalues['total']=null then temp_number:=0
else temp_number:=fieldvalues['total'];
Edit2.Text:='¥'+format('%.2f',[temp_number]);
end;
except
MsgErr(handle,'系统查找记录值失败!');
edit1.Text:='¥0.00'; edit2.Text:='¥0.00';
exit;
end;
end;
end;
except
MsgErr(handle,'系统合计工价数据出错!');
edit1.Text:='¥0.00'; edit2.Text:='¥0.00';
end;
end;
//查找到对应的[ADOT_seq_price]表的数据及[ADOQ_order_msg]订单管理表的数据
procedure TForm_seq_price.PageControl1Change(Sender: TObject);
var unit_price, money:real;
begin
if trim(DBLookupComboBox1.Text)='' then exit;
if not ADOT_price.Active then exit;
if PageControl1.ActivePageIndex=0 then refreshdb;
if PageControl1.ActivePageIndex=0 then exit;
if ADOT_price.State in [dsinsert, dsedit] then exit;
if ADOT_price.RecordCount=0 then exit;
Editcustmer.Clear; Editname.clear;
Editcloth.Clear; Editnum.Clear;
Editprice.Clear; Editmoney.Clear;
//得到对应订单的信息
with adoq_temp do
begin
close; sql.Clear;
sql.Add('select ord_id,cust_name,clo_name,costume_name,num,unit_price,money');
sql.Add(' from order_msg, customer, clothing ');
sql.Add('where order_msg.clo_id=clothing.clo_id and customer.cust_id=order_msg.cust_id');
sql.Add('and ord_id=:ord_id');
parameters.ParamValues['ord_id']:=ADOT_price.FieldValues['ord_id'];
execsql; open;
if recordcount=0 then exit;
Editcustmer.text:=fieldvalues['cust_name'];
Editname.text:=fieldvalues['costume_name'];
Editcloth.text:=fieldvalues['clo_name'];
Editnum.text:=inttostr(fieldvalues['num']);
unit_price:=fieldvalues['unit_price'];
money:=fieldvalues['money'];
Editprice.Text:='¥'+format('%.2f',[unit_price]);
Editmoney.Text:='¥'+format('%.2f',[money]);
end;
end;
procedure TForm_seq_price.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if (ADOT_price.State in [dsedit,dsinsert]) then
begin
MsgOK(handle,'数据库正处在操作状态,请先按 [取消] 按钮!');
AllowChange:=false;
end;
end;
procedure TForm_seq_price.DBLookup_ordidClick(Sender: TObject);
var
ord_id, seq_id:string;
begin
ord_id:=trim(DBLookup_ordid.Text);
if ADOT_price.State in [dsedit] then exit;
if ord_id='' then exit;
if not Get_seqid(ord_id, seq_id) then
begin
showmessage('自动生成工序编号失败,请重新选择订单批号!');
DBLookup_ordid.SetFocus;
exit;
end;
ADOT_price.FieldValues['seq_id']:=seq_id;
end;
procedure TForm_seq_price.DBLookupComboBox1KeyPress(Sender: TObject;
var Key: Char);
begin
if trim(DBLookupComboBox1.Text)='' then exit;
if key<>chr(13) then exit;
with adoq_temp do
begin
close; sql.Clear;
sql.Add('select ord_id from order_msg where ord_id=:ord_id');
parameters.ParamValues['ord_id']:=trim(DBLookupComboBox1.Text);
execsql; open;
if recordcount=0 then
begin
MsgErr(handle,'当前不存在该订单批号,请重新选择!');
exit;
end;
end;
refreshdb;
ADOT_price.Filter:='ord_id='+''''+trim(DBLookupComboBox1.Text)+'''';
adot_price.Filtered:=true;
PrtBtn.Enabled:=ADOT_price.RecordCount>0;
account_unitprice;
end;
procedure TForm_seq_price.DBLookupComboBox1Change(Sender: TObject);
begin
DBLookupComboBox1.Text:=trim(DBLookupComboBox1.Text);
edit1.Text:='¥0.00'; edit2.Text:='¥0.00';
end;
procedure TForm_seq_price.DBGrid1DblClick(Sender: TObject);
begin
if not ADOT_price.Active then exit;
if ADOT_price.RecordCount=0 then exit;
PageControl1.ActivePageIndex:=1;
PageControl1Change(self);
end;
procedure TForm_seq_price.FormShow(Sender: TObject);
begin
add_ordid_item;
end;
procedure TForm_seq_price.DS_priceStateChange(Sender: TObject);
begin
//[ADOT_seq_price]表内的数据在编辑状态下的控件的Enable状态
if (Sender as TDataSource).DataSet.State in [dsedit,dsinsert] then
Begin
DBGrid1.Enabled:=false;
Panel5.Enabled:=true;
AddBtn.Enabled:=false;
EdtBtn.Enabled:=false;
DelBtn.Enabled:=false;
DBE_seq_name.readonly:=false;
dbe_seq_name.ParentColor:=false;
DBE_seq_name.Color:=clwindow;
DBEdit1.ReadOnly:=false;
DBEdit1.ParentColor:=false;
DBEdit1.Color:=clwindow;
if (Sender as TDataSource).DataSet.State in [dsinsert] then
begin
DBLookup_ordid.ReadOnly:=false;
DBLookup_ordid.ParentColor:=false;
DBLookup_ordid.Color:=clwindow;
end;
if (Sender as TDataSource).DataSet.State in [dsedit] then
begin
DBLookup_ordid.ReadOnly:=true;
DBLookup_ordid.ParentColor:=true;
end;
DBE_seq_name.SetFocus;
end;
//[ADOT_seq_price]表内的数据在浏览状态下的控件的Enable状态
if (Sender as TDataSource).DataSet.State in [dsBrowse] then
Begin
DBLookup_ordid.Enabled:=true;
DBLookup_ordid.ParentColor:=false;
DBGrid1.Enabled:=true;
Panel5.Enabled:=false;
AddBtn.Enabled:=true;
EdtBtn.Enabled:=true;
DelBtn.Enabled:=true;
DBE_seq_name.ReadOnly:=true;
dbe_seq_name.ParentColor:=true;
DBEdit1.ReadOnly:=true;
DBEdit1.ParentColor:=true;
DBLookup_ordid.ReadOnly:=true;
DBLookup_ordid.ParentColor:=true;
end;
end;
procedure TForm_seq_price.ADOT_priceAfterInsert(DataSet: TDataSet);
var unit_price, money:real;
begin
if trim(DBLookupComboBox1.Text)<>'' then
DataSet.FieldValues['ord_id']:=trim(DBLookupComboBox1.Text)
else if trim(DBLookup_ordid.Text)<>'' then
DataSet.FieldValues['ord_id']:=trim(DBLookup_ordid.Text);
ADOT_price.FieldValues['seq_price']:=0.00;
DBLookup_ordidClick(self);
//得到对应订单的信息
with adoq_temp do
begin
close; sql.Clear;
sql.Add('select ord_id,cust_name,clo_name,costume_name,num,unit_price,money');
sql.Add(' from order_msg, customer, clothing ');
sql.Add('where order_msg.clo_id=clothing.clo_id and customer.cust_id=order_msg.cust_id');
sql.Add('and ord_id=:ord_id');
parameters.ParamValues['ord_id']:=ADOT_price.FieldValues['ord_id'];
execsql; open;
if recordcount=0 then exit;
Editcustmer.text:=fieldvalues['cust_name'];
Editname.text:=fieldvalues['costume_name'];
Editcloth.text:=fieldvalues['clo_name'];
Editnum.text:=inttostr(fieldvalues['num']);
unit_price:=fieldvalues['unit_price'];
money:=fieldvalues['money'];
Editprice.Text:='¥'+format('%.2f',[unit_price]);
Editmoney.Text:='¥'+format('%.2f',[money]);
end;
end;
procedure TForm_seq_price.ADOT_priceAfterEdit(DataSet: TDataSet);
begin
edit_seqprice:=dataset.FieldValues['seq_price'];
edit_seqname:=dataset.FieldValues['seq_name'];
end;
procedure TForm_seq_price.DBLookup_ordidChange(Sender: TObject);
var unit_price,money:real;
begin
if not adot_price.Active then exit;
if adot_price.State in [dsBrowse] then exit;
if trim(DBLookup_ordid.Text)='' then exit;
Editcustmer.Clear; Editname.clear;
Editcloth.Clear; Editnum.Clear;
Editprice.Clear; Editmoney.Clear;
with adoq_temp do
begin
close; sql.Clear;
sql.Add('select cust_name,clo_name,costume_name,num,unit_price,money');
sql.Add(' from order_msg, customer, clothing ');
sql.Add('where order_msg.clo_id=clothing.clo_id and customer.cust_id=order_msg.cust_id');
sql.Add('and ord_id=:ord_id');
parameters.ParamValues['ord_id']:=trim(DBLookup_ordid.Text);
execsql; open;
if recordcount=0 then exit;
Editcustmer.text:=fieldvalues['cust_name'];
Editname.text:=fieldvalues['costume_name'];
Editcloth.text:=fieldvalues['clo_name'];
Editnum.text:=inttostr(fieldvalues['num']);
unit_price:=fieldvalues['unit_price'];
money:=fieldvalues['money'];
Editprice.Text:='¥'+format('%.2f',[unit_price]);
Editmoney.Text:='¥'+format('%.2f',[money]);
end;
end;
procedure TForm_seq_price.PrtBtnClick(Sender: TObject);
var costume_name, ord_id: string;
begin
if not ADOT_price.Active then exit;
if ADOT_price.RecordCount=0 then exit;
costume_name:=adot_price.FieldValues['costume_name'];
ord_id:=adot_price.FieldValues['ord_id'];
InitPage(RvProject1,RvSystem1,apppath+'\'+ReportName,apppath+'\'+ReportNdrName,0);
SelectPage(RvProject1,'Report1',9);
//传递参数
AddParameter(RvProject1,'ord_id',ord_id);
AddParameter(RvProject1,'costume_name',costume_name);
AddParameter(RvProject1,'UserName',curAdmin.user_name);
AddParameter(RvProject1,'companyname',sysconfig.COMPANYANME);
//显示页
PageShow(RvProject1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -