在添写产品组成后,不时会或多或少的进行修改,但每次修改都要进产品资料,有点麻烦,于是想到本文介绍方法 1.在组装单中添加字典型字段emf_process_id_zzd 2.添加如下脚本 //检查产品组成,与单据明细是否一至,并提示更新 int func_after_check()//审核后执行 { int x,m,m0,k,j,found,n,pd0,pd1,pd2,pd3;//整型变量定义 float m_std_num,s_std_num,factor;//浮点变量定义 string s,s0,s1,m_res_id,s_res_id,ins_sql,s_note_info,s_zzd,yzm0,data0,user0;//字符变量定义 //审核之后更新产品组成 m_res_id = gui_get_val("ComboBox_Ext_Main_Res_Id"); //取主物资编码 m_std_num = gui_get_val("Edit_Main_Res_Num"); //取主物资基准数量 grid_seek('MG_Item','res_id','');//定位 j=grid_cur_row('MG_Item')-1; //取出明细物资列表最大的行号 for (m=1;m<=j;m++) //循环取每一个明细物资 { n=m-1 s_res_id = grid_get_v('MG_Item','res_id',m);//取此明细物资编码 s_std_num = grid_get_v('MG_Item','std_num',m); //取此明细物资基准数量 s_note_info = grid_get_v('MG_Item','note_info',m); //取此明细物资明细备注 s_zzd = grid_get_v('MG_Item','emf_process_id_zzd',m)//取此明细物资工序 factor = s_std_num/m_std_num ; //计算明细组成数量 //msg(s_res_id+' '+s_std_num+' '+m_std_num+' '+s_note_info+' '+factor); s="select sub_res_id,num,note_info,emf_process_id from res_composing where res_id = '" + m_res_id + "' and order_id = " + n //取出数据库中的值 db_run(s) //msg(db_res(0)+" "+db_res(1)+" "+db_res(2)+" "+db_res(3)) if ( s_res_id == db_res(0) && to_float(factor) == to_float(db_res(1)) && s_note_info == db_res(2) && s_zzd == db_res(3) ) //对比单据中的内容与数据库的内容是否一至 { } else { pd0 = confirm('"明细数据"与默认"产品组成"不一至,是否将本单据"明细数据"更新为默认"产品组成? ') if(pd0==1) { do { pd3 = confirm('警告:以下操作会更新数据库内容,操作后的内容是不可逆的,如果您不了解本次操作的后果,建议您"取消"本次操作!!!') if(pd3==1) { inp_clear(); inp_def_string('yzm','录入验证码:') inp_para_set_title('录入 更新 后,点击 确定 更新产品组成') pd1=inp_para() if(pd1==1)//判断3 { yzm0=inp_get_val('yzm') //msg(yzm0) if(yzm0 == '更新')//判断2 { //msg('y') s0 =" delete from res_composing where res_id = '" + m_res_id + "'" //删除数据库中原有产品组成 db_run(s0) //根据单据添加新的产品组成 for (m0=1;m0<=j;m0++) { n=m0-1 s_res_id = grid_get_v('MG_Item','res_id',m0);//取此明细物资编码 s_std_num = grid_get_v('MG_Item','std_num',m0); //取此明细物资基准数量 s_note_info = grid_get_v('MG_Item','note_info',m0); //取此明细物资明细备注 s_zzd = grid_get_v('MG_Item','emf_process_id_zzd',m0)//取此明细物资工序 factor = s_std_num/m_std_num ; //计算明细组成数量 ins_sql="insert into res_composing (res_id,sub_res_id,num,note_info,order_id,emf_process_id) values ('"+m_res_id+"','"+ s_res_id+"',"+factor+",'"+s_note_info+"',"+n+",'"+s_zzd+"')" db_run(ins_sql)//添加到数据库的内容 //dbg(ins_sql) } //修改产品更新记录 data0=get_cur_date_std() user0=get_user_id() s1="Update res set last_modi_date = '" + data0 + "' , last_modi_user_id = '" + user0 + "' where res_id = '" + m_res_id + "'" db_run(s1) //dbg(s1) msg('"产品组成"更新完毕!"') return 1; } else { //msg('n') pd2=confirm('您录入的验证内容不正确,是否重新录入')//判断1 if(pd2==1) { } } } else { return 1; } } else { return 1; } } while(pd2==1) } else { return 1; } } } return 1; } |