主要是修复了以前的实现方案不能调用超过3个批次的问题。 脚本写得比较笨拙,如有bug请告知。 int _fio() { int rc1,rc2,i,j; string sql,resid,add_batch_no,add_produce_date; num resinpnum,add_num; rc1 = grid_find("MG_Item","res_id","") for(i=1;i<rc1;i++) { resid=grid_get_v("MG_Item","res_id",i); resinpnum=grid_get_v("MG_Item","inp_num",i); //获取循环行的数量 sql="select res_id,edt_id,produce_date,batch_no,num from edt_res where res_id='" + resid + "' and edt_id='" + gui_get_val('ComboBox_Ext_Edt_Id') + "'order by batch_no"; db_run(sql); rc2 = db_row_count() for(j=0;j<rc2;j++) { db_go_row(j) add_num = db_res(4); if(resinpnum > 0) { if(resinpnum<=add_num) { add_num = resinpnum; } add_batch_no = db_res(3); add_produce_date = db_res(2); grid_insert_before("MG_Item",i); vr_add_res_ext(resid,add_num,'batch_no:' + add_batch_no + ';produce_date:' + add_produce_date); resinpnum = resinpnum - add_num; rc1 ++ i++ }; } } for(i=1;i<rc1;i++) { string nil_batch_no; nil_batch_no = grid_get_v('MG_Item','batch_no',i); if(nil_batch_no == '-' || nil_batch_no == '') { grid_del_row('MG_Item',i); i--; rc1--; } }; }; int func_before_save() { if(confirm('是否进行先进先出处理?')==1) { _fio(); }; //can_save=1; return 1; }; |