Foxtable(狐表)用户栏目专家坐堂 → 修改自定义函数


  共有1989人关注过本帖树形打印复制链接

主题:修改自定义函数

帅哥哟,离线,有人找我吗?
lur320
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:969 积分:8532 威望:0 精华:0 注册:2015/8/12 16:28:00
修改自定义函数  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/18 8:47:00 [只看该作者]

不要传入单个的参数,改成传入数组、集合或字典的参数,如

Dim lst As new List(of object)

Functions.Execute("函数名",lst)

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:969 积分:8532 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/18 10:34:00 [只看该作者]


 回到顶部