客户要求国内和国外的采购订单能有不同的前缀区分且3位数的后缀流水号能自动续接 思路:国内外的不同供应商放在不同的供应商分组里面 新建下面的这段脚本: int 采购订单编号自动生成() { string sql,v_fz,v_maxid,v_maxno,m_ny,m_qz,m_xh,v_id; num m_xh,m_dz; m_dz = '1' m_ny = get_cur_month() v_id = grid_get_v("MG_Item","voucher_id",1) db_run("select service_id from sup where Sup_id = '" + gui_get_val("ComboBox_Ext_Sup_Id") + "'"); //获取供应商分组编号 v_fz = db_res(0) if(v_fz == '001' && v_id < 1) //单据没有保存记录的时候执行 { db_run("select MAX(voucher_id) from ebs_v where voucher_type = 'AA' and voucher_no like 'CN"+m_ny+"%'") v_maxid = db_res(0) db_run("select voucher_no from ebs_v where voucher_id = '"+v_maxid+"'") v_maxno = db_res(0) m_qz = str_get_sub(v_maxno,0,2) m_xh = str_get_sub(v_maxno,8,3) m_xh = fmt_int(str_add_as_num(m_dz,m_xh),"%03d") gui_set_val("Edit_Voucher_No",'CN'+m_ny+m_xh) } if(v_fz == '002' && v_id < 1)//单据没有保存记录的时候执行 { db_run("select MAX(voucher_id) from ebs_v where voucher_type = 'AA' and voucher_no like 'VN"+m_ny+"%'") v_maxid = db_res(0) db_run("select voucher_no from ebs_v where voucher_id = '"+v_maxid+"'") v_maxno = db_res(0) m_qz = str_get_sub(v_maxno,0,2) m_xh = str_get_sub(v_maxno,8,3) m_xh = fmt_int(str_add_as_num(m_dz,m_xh),"%03d") gui_set_val("Edit_Voucher_No",'VN'+m_ny+m_xh) }; if(v_fz == '001' && v_id > 0)//单据有保存记录后执行 { db_run("select MAX(voucher_id) from ebs_v where voucher_type = 'AA' and voucher_no like 'CN"+m_ny+"%' and voucher_id < '" + v_id + "'") v_maxid = db_res(0) db_run("select voucher_no from ebs_v where voucher_id = '"+v_maxid+"'") v_maxno = db_res(0) m_qz = str_get_sub(v_maxno,0,2) m_xh = str_get_sub(v_maxno,8,3) m_xh = fmt_int(str_add_as_num(m_dz,m_xh),"%03d") gui_set_val("Edit_Voucher_No",'CN'+m_ny+m_xh) } if(v_fz == '002' && v_id > 0)//单据有保存记录后执行 { db_run("select MAX(voucher_id) from ebs_v where voucher_type = 'AA' and voucher_no like 'VN"+m_ny+"%' and voucher_id < '" + v_id + "'") v_maxid = db_res(0) db_run("select voucher_no from ebs_v where voucher_id = '"+v_maxid+"'") v_maxno = db_res(0) m_qz = str_get_sub(v_maxno,0,2) m_xh = str_get_sub(v_maxno,8,3) m_xh = fmt_int(str_add_as_num(m_dz,m_xh),"%03d") gui_set_val("Edit_Voucher_No",'VN'+m_ny+m_xh) }; return 1; }; 把上面的脚本放在下列2段里面,在选择供应商和保存单据的时候执行 int obj_change() { if(change_obj == "ComboBox_Ext_Sup_Id") { 采购订单编号自动生成() }; //msg(change_obj) return 1; }; int func_before_save() { 采购订单编号自动生成() //can_save=1; return 1; }; |