$PBExportHeader$f_get_cmp_addqty.srf global type f_get_cmp_addqty from function_object end type forward prototypes global function decimal f_get_cmp_addqty (string arg_str, decimal arg_qty, decimal arg_addqty, string arg_status, string arg_woodcode, string arg_pcode, string arg_ls_mtrlsectype, string arg_ls_zxmtrlmode, decimal arg_dec_danpackqty, decimal arg_dec_packqty, long arg_mtrlid) end prototypes global function decimal f_get_cmp_addqty (string arg_str, decimal arg_qty, decimal arg_addqty, string arg_status, string arg_woodcode, string arg_pcode, string arg_ls_mtrlsectype, string arg_ls_zxmtrlmode, decimal arg_dec_danpackqty, decimal arg_dec_packqty, long arg_mtrlid);String ls_str,s_rtn Int ll_star,ll_end,ll_dy datastore ds_pricestr Decimal arg_value_dec,de_rtn ds_pricestr = Create datastore ds_pricestr.DataObject = 'ds_pricestr_cmpl' ds_pricestr.SetTransObject(sqlca) ds_pricestr.Retrieve() arg_str=trim(arg_str) ll_dy=pos(arg_str,'=') ls_str=right(arg_str,len(arg_str) - ll_dy)//格式 数量=自定义文本1 + 辅数 * 4 arg_str=ls_str //SELECT Top 1 Replace( :arg_str,'配置1',:arg_woodcode) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,'配置2',:arg_pcode) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,'配置',:arg_status) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,'自定义文本1',:arg_ls_mtrlsectype) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,'自定义文本2',:arg_ls_zxmtrlmode) Into :arg_str From u_user; // //SELECT Top 1 Replace( :arg_str,:sys_option_change_woodcode,:arg_woodcode) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,:sys_option_change_pcode,:arg_pcode) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,:sys_option_change_status,:arg_status) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,:sys_option_change_mtrlsectype,:arg_ls_mtrlsectype) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,:sys_option_change_zxmtrlmode,:arg_ls_zxmtrlmode) Into :arg_str From u_user; // // //SELECT Top 1 Replace( :arg_str,'数量',:arg_qty) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,'辅数',:arg_addqty) Into :arg_str From u_user; // // //SELECT Top 1 Replace( :arg_str,'单包装数',:arg_dec_danpackqty) Into :arg_str From u_user; //SELECT Top 1 Replace( :arg_str,'包装数',:arg_dec_packqty) Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'配置1','(' +cast(:arg_woodcode as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'配置2','(' +cast(:arg_pcode as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'配置','(' +cast(:arg_status as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'自定义文本1','(' +cast(:arg_ls_mtrlsectype as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'自定义文本2','(' +cast(:arg_ls_zxmtrlmode as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,:sys_option_change_woodcode,'(' +cast(:arg_woodcode as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,:sys_option_change_pcode,'(' +cast(:arg_pcode as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,:sys_option_change_status,'(' +cast(:arg_status as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,:sys_option_change_mtrlsectype,'(' +cast(:arg_ls_mtrlsectype as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,:sys_option_change_zxmtrlmode,'(' +cast(:arg_ls_zxmtrlmode as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'数量','(' + cast(:arg_qty as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'辅数','(' + cast(:arg_addqty as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'单包装数','(' + cast(:arg_dec_danpackqty as varchar(50))+ ')') Into :arg_str From u_user; SELECT Top 1 Replace( :arg_str,'包装数','(' + cast(:arg_dec_packqty as varchar(50))+ ')') Into :arg_str From u_user; ds_pricestr.Modify('cmpl.expression= "'+arg_str+'"') s_rtn = String(ds_pricestr.Object.cmpl[1]) decimal temp_strcheck_digit select strcheck_digit into :temp_strcheck_digit from u_mtrldef where mtrlid=:arg_mtrlid; if isnull(temp_strcheck_digit) then temp_strcheck_digit=4 if (temp_strcheck_digit)=0 then temp_strcheck_digit=4 arg_value_dec = Round(Dec(s_rtn) ,temp_strcheck_digit) RETURN arg_value_dec end function