易表在线答疑技术与交流用户社区 → 解决部分函数嵌套问题的方法


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

主题:解决部分函数嵌套问题的方法

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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
解决部分函数嵌套问题的方法  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2013/7/24 11:43:00 [显示全部帖子]

呵呵!抛了一块“玉”半块“砖”都没有得到!---------------图片点击可在新窗口打开查看

 回到顶部