f_get_tf_addqty.srf 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. $PBExportHeader$f_get_tf_addqty.srf
  2. global type f_get_tf_addqty from function_object
  3. end type
  4. forward prototypes
  5. global function string f_get_tf_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)
  6. end prototypes
  7. global function string f_get_tf_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);String ls_str,s_rtn
  8. Int ll_star,ll_end
  9. datastore ds_pricestr
  10. Decimal arg_value_dec,de_rtn
  11. ds_pricestr = Create datastore
  12. ds_pricestr.DataObject = 'ds_pricestr_cmpl'
  13. ds_pricestr.SetTransObject(sqlca)
  14. ds_pricestr.Retrieve()
  15. arg_str = Trim(arg_str)
  16. //ls_str=right(arg_str,len(arg_str) - 3) //格式 数量=自定义文本1 + 辅数 * 4
  17. //arg_str=ls_str
  18. SELECT Top 1 Replace( :arg_str,'配置1','(' +cast(:arg_woodcode as varchar(50))+ ')') Into :arg_str From u_user;
  19. SELECT Top 1 Replace( :arg_str,'配置2','(' +cast(:arg_pcode as varchar(50))+ ')') Into :arg_str From u_user;
  20. SELECT Top 1 Replace( :arg_str,'配置','(' +cast(:arg_status as varchar(50))+ ')') Into :arg_str From u_user;
  21. SELECT Top 1 Replace( :arg_str,'自定义文本1','(' +cast(:arg_ls_mtrlsectype as varchar(50))+ ')') Into :arg_str From u_user;
  22. SELECT Top 1 Replace( :arg_str,'自定义文本2','(' +cast(:arg_ls_zxmtrlmode as varchar(50))+ ')') Into :arg_str From u_user;
  23. SELECT Top 1 Replace( :arg_str,:sys_option_change_woodcode,'(' +cast(:arg_woodcode as varchar(50))+ ')') Into :arg_str From u_user;
  24. SELECT Top 1 Replace( :arg_str,:sys_option_change_pcode,'(' +cast(:arg_pcode as varchar(50))+ ')') Into :arg_str From u_user;
  25. SELECT Top 1 Replace( :arg_str,:sys_option_change_status,'(' +cast(:arg_status as varchar(50))+ ')') Into :arg_str From u_user;
  26. SELECT Top 1 Replace( :arg_str,:sys_option_change_mtrlsectype,'(' +cast(:arg_ls_mtrlsectype as varchar(50))+ ')') Into :arg_str From u_user;
  27. SELECT Top 1 Replace( :arg_str,:sys_option_change_zxmtrlmode,'(' +cast(:arg_ls_zxmtrlmode as varchar(50))+ ')') Into :arg_str From u_user;
  28. SELECT Top 1 Replace( :arg_str,'数量','(' + cast(:arg_qty as varchar(50))+ ')') Into :arg_str From u_user;
  29. SELECT Top 1 Replace( :arg_str,'辅数','(' + cast(:arg_addqty as varchar(50))+ ')') Into :arg_str From u_user;
  30. SELECT Top 1 Replace( :arg_str,'单包装数','(' + cast(:arg_dec_danpackqty as varchar(50))+ ')') Into :arg_str From u_user;
  31. SELECT Top 1 Replace( :arg_str,'包装数','(' + cast(:arg_dec_packqty as varchar(50))+ ')') Into :arg_str From u_user;
  32. SELECT Top 1 Replace( :arg_str,'=',' - ( ') Into :arg_str From u_user;
  33. arg_str=arg_str + ' )'
  34. ds_pricestr.Modify('cmpl.expression= "'+arg_str+'"')
  35. s_rtn = String(ds_pricestr.Object.cmpl[1])
  36. IF Abs(Dec(s_rtn)) > 0.1 THEN
  37. s_rtn = 'false'
  38. ELSE
  39. s_rtn = 'true'
  40. END IF
  41. //arg_value_dec = Round(Dec(s_rtn) ,5)
  42. RETURN s_rtn
  43. end function