以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教表达式列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87675)

--  作者:lur320
--  发布时间:2016/7/16 17:28:00
--  请教表达式列
遇到一个关于表达式列的问题。

列A: 供应商名字
列B: 供应商报价逻辑

上面这个例子,公司有多个供应商,今后也会增加。每个供应商都有一个报价的逻辑,很简单的逻辑。
本来想将这个逻辑写在程序里面,但是想到后期维护和新增太难。

所以能不能再列B写上逻辑的代码,然后在程序里面调用?就像EXCEL那样。
例如: [报价]*0.9 
能够这样讲字符串列的内容直接转为计算代码么?

--  作者:lur320
--  发布时间:2016/7/16 17:29:00
--  
其实这个和表达式没啥关系,只是问可不可以这样将有规律的字符串转为计算的代码。
还有,如果可以的话,怎么做呢?

--  作者:Hyphen
--  发布时间:2016/7/16 17:34:00
--  
简单的应用还可以,比如用到筛选条件中,或者动态增加表达式列的时候。

否则就要自己做一套解析表达式的规则逻辑



--  作者:lur320
--  发布时间:2016/7/16 17:40:00
--  
动态增加表达式列,能否给一些提示?
--  作者:lur320
--  发布时间:2016/7/16 17:50:00
--  

我在考虑下面这个函数,有没有人试过?


Foxtable专门提供了一个名为CExp的函数,可以用更清晰的方式动态合成表达式。

语法:

CExp(StrExp, V0, V1, V2, ...)

StrExp:    要合成的表达式,包含位置标记,{0}表示第一个值,{1}表示第二个值,{2}表示第三个值...
V0,V1,V2: 用于替换位置标记的值,V0替换{0},V1替换{1},V0替换{0}...


Dim exp As String = "{0} + {1} + {2} = {3}"
exp
= CExp(exp,1,3,5,9)
output
.show(exp)

得到的结果为:1 + 3 + 5 = 9


dim exp as string =tables().rows()()

.......


--  作者:lur320
--  发布时间:2016/7/16 21:42:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

计算代码变成字符串了。怎么让狐表进行计算啊?

--  作者:lur320
--  发布时间:2016/7/16 21:54:00
--  
我记得有一个excel的函数:EVALUATE()
可以将字符串的表达式转化为计算代码,狐表里面怎么调用?

--  作者:狐狸爸爸
--  发布时间:2016/7/18 8:31:00
--  
 在这里:
http://www.foxtable.com/webhelp/scr/1277.htm