以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  解决部分函数嵌套问题的方法  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=26116)

--  作者:wjq1072
--  发布时间:2013/7/22 10:57:00
--  解决部分函数嵌套问题的方法

在执行某个函数的时候,往往需要对于其中的常量用表达式来替代,从而使结果达到“动态效果”。这样就存在了一个函数嵌套问题,而得不到我们需要的正确结果。这时候,解决方法有二个。一、用一个变量来替代这个“表达式”;二、使用Eval来执行这个带“表达式”的函数。前者使用“变量来替代”的方法可以解决大部分问题,但有时可能仍然得不到结果。所以在这里举几个“使用Eval来执行函数”的例子供大家参考。

 

1、精确计算二个日期之间的天数。
DAYSBTW($"2013-2-1",$"2013-3-1") = 28
-----------------------------------------
如果二个日期为表达式取得,就可以使用Eval执行否则无结果:
例如:Eval("DaysBtw($"""+Text(FindText(GridName,"日期","名称","=",[名称],1))+""",$"""+Text(FindText(GridName,"日期","名称","=",[名称],2))+""")")

*注意:其中因为是日期型,所以必须用Text()转换为字符型。
======================================================================

2、返回多个“字符串”中的第几个“字符串”。
Split("中国|广东|湛江","|",2) = "广东"
------------------------------------------
如果多个“字符串”来自表达式,就可以使用Eval执行否则无结果:
例如:Eval("Split("""+ListCols("表1")+""",""|"",2)")
======================================================================

3、在当前表增加一行,对某些列进行赋值。
AddRow(GridName,"第一列,第二列,第三列",1000,0.85,500)
------------------------------------------
进行赋值时(常量字符、数值都没有问题)
a、如果是字符型表达式:
Eval("AddRow(GridName,""第一列,第二列,第三列"","""+Cell(7,"第一列")+""","""+Cell(7,"第二列")+""","""+Cell(7,"第三列")+""")")
b、如果是数值或者日期型表达式:(必须用Text()转换为字符型)
Eval("AddRow(GridName,""第一列,第二列,第三列"","+Text(Cell(7,"第一列"))+","+Text(Cell(7,"第二列"))+","+Text(Cell(7,"第三列"))+")")
======================================================================


--  作者:wjq1072
--  发布时间:2013/7/24 11:43:00
--  
呵呵!抛了一块“玉”半块“砖”都没有得到!---------------图片点击可在新窗口打开查看
--  作者:hao123
--  发布时间:2013/7/24 14:19:00
--  
请问一下,易表中对于变量的使用,这个变量的作用域是什么?并发时怎么办?

如网络多人使用,比如说:

我系统中 表A中用到了变量 %日期%
    表B中也用到了变量 %日期%   
                
两人分别同时操作表A和表B,那么这个 %日期% 会共享吗?
再者,两人同时操作表A ,这个 %日期%  会数据共享吗?


易表中的设计原理是什么?

以上,谢谢!

--  作者:lyjzyq
--  发布时间:2013/7/24 15:58:00
--  
感谢版主,总结为,公式中的[,$]等字符不用加引号,其他的表达式包括连接符[+]用三引号括起来(指字符型),如果用text函数转换则用单引号 ,表达式中的单引号不变,原公式中单引号用双引号即可。不知对付请版主指正。
[此贴子已经被作者于2013-7-24 16:00:58编辑过]

--  作者:hbfnmxb
--  发布时间:2013/7/24 16:51:00
--  
很受用,学习了,虽然有的地方不是太懂,但还是感谢老前辈!!