以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 修改自定义函数 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87701) |
-- 作者:lur320 -- 发布时间:2016/7/17 17:15:00 -- 修改自定义函数 目的还是为了在发布后让用户可以自己修改一些简单的计算代码。 我目前将会用到的一些计算代码按照1234顺序编了进内部函数里面。 Dim q1,q2,q3,q4,q5,q6,wt,siz,cost As Single Dim ex As String ex=args(0) ‘ex是计算方法的编号,不同表格里面的ex数字代表不同的计算方法。 q1=args(1) q2=args(2) q3=args(3) q4=args(4) q5=args(5) q6=args(6) wt=args(7) siz=args(8) If ex=1 Then cost = math.Max(q1 * wt,q2 * siz) + q3 + IIF(wt < 3,q4,q5) ElseIf ex=2 Then If wt<= 3000 Then cost=q1 ElseIf wt>3000 And wt<=5000 Then cost=q2 。。。。 问问有没有什么办法可以在后期修改这些计算方法? 例如新增一个ex=6 |
-- 作者:Hyphen -- 发布时间:2016/7/18 8:47:00 -- 不要传入单个的参数,改成传入数组、集合或字典的参数,如 Dim lst As new List(of object) Functions.Execute("函数名",lst) |
-- 作者:lur320 -- 发布时间:2016/7/18 10:06:00 -- 不是这个意思 ex=args(0) ‘ex是计算方法的编号,不同表格里面的ex数字代表不同的计算方法。
q1=args(1) ‘ 所有计算方法都会用到q1~q6和wt,siz
q2=args(2)
q3=args(3)
q4=args(4)
q5=args(5)
q6=args(6)
wt=args(7)
siz=args(8)
按照不同的ex编号,就有不同的计算方法。
我目前编辑了4个ex,如:
If ex=1 Then
cost = math.Max(q1 * wt,q2 * siz) + q3 + IIF(wt < 3,q4,q5)
ElseIf ex=2 Then
如果将来要新增一个ex=5,怎么在项目发布后修改这个自定义函数? |
-- 作者:Hyphen -- 发布时间:2016/7/18 10:34:00 -- 动态编译 |