1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- $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
|