123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- $PBExportHeader$f_cmpl_with_parms.srf
- global type f_cmpl_with_parms from function_object
- end type
- forward prototypes
- global function integer f_cmpl_with_parms (string arg_formula, s_cmpl_parm arg_cmpl, ref decimal arg_qty, ref string arg_msg)
- end prototypes
- global function integer f_cmpl_with_parms (string arg_formula, s_cmpl_parm arg_cmpl, ref decimal arg_qty, ref string arg_msg);Int rslt = 1
- datastore ds_cmp
- Decimal ls_number
- String ls_exp
- String ls_rs
- Decimal ld_temp
- string ls_temp
- ls_exp = arg_formula
- IF ls_exp = '' THEN GOTO ext
- ds_cmp = CREATE datastore
- ds_cmp.DataObject = "ds_cmp_qty"
- ds_cmp.SetTransObject(sqlca)
- ds_cmp.Retrieve()
- ds_cmp.InsertRow(0)
- long i
- for i = 1 to upperbound(arg_cmpl.parmname)
- f_str_replace(ls_exp, '['+arg_cmpl.parmname[i]+']', string(arg_cmpl.parmvalue[i]))
- next
- ls_rs = ds_cmp.Modify("cmp.Expression='"+ ls_exp+"'")
- IF ls_rs = '' THEN
- ds_cmp.AcceptText()
- ls_number = ds_cmp.Object.cmp[ds_cmp.GetRow()]
- ELSE
- rslt = 0
- arg_msg = '非法格式,不能计算!'+ls_exp
- GOTO ext
- END IF
- arg_qty = ls_number
- ext:
- RETURN rslt
- end function
|