以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  [求助]Eval("")  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=28954)

--  作者:iyplx2425
--  发布时间:2016/11/6 16:04:00
--  [求助]Eval("")
在Eval("")函数内使用EvalFor()函数时,EvalFor()里面的引号是什么规则?谢谢。
--  作者:iyplx2425
--  发布时间:2016/11/7 8:56:00
--  
自己摸明白了。
--  作者:客人
--  发布时间:2016/11/7 14:46:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:eval()函数的运用.rar

求教各位版主了。谢谢!


--  作者:iyplx2425
--  发布时间:2016/11/7 14:47:00
--  
怎么成客人了?
--  作者:dancedy
--  发布时间:2016/11/8 8:49:00
--  

假如[%XL%],值为“等割|大剪

 

Eval("Substitute(""|@|#|"",""|"","""+Substitute("等割|分割|大剪","|",""")+""|""+Substitute(""|@|#|"",""|"",""")+""")")

 

这个公式为二翻公式,原公式为Substitute("|@|#|","|","等割")+"|"+Substitute("|@|#|","|","大剪")

 

结果为等割@等割#等割|大剪@大剪#大剪


--  作者:iyplx2425
--  发布时间:2016/11/8 10:00:00
--  
Substitute("|@|#|","|","等割")+"|"+Substitute("|@|#|","|","大剪")的执行结果是 :等割@等割#等割|大剪@大剪#大剪,再用Substitute()做三次替换就实现套用了。是这样的吗?谢谢!

--  作者:iyplx2425
--  发布时间:2016/11/8 10:08:00
--  
我自己用了下面的公式,也能实现和前面说的公式一样的结果,但就是去处时间老长。不知是什么原因?请版主看看。谢谢!!
ClearGrid(GridName) And Eval("AppendRows(""下料"") And EvalFor(GridName,""工序名称"",""""""" + Substitute(ListFor("工序表","下料"),"|",""""""",""工序名称"", ""="" ,"""") And RecalcCol(GridName,""工价"") And AppendRows(""下料"") And EvalFor(GridName,""工序名称"",""""""")+ """"""",""工序名称"", ""="" ,"""") And RecalcCol(GridName,""工价"")") And DelFor(GridName,"工价", "=" ,"")

--  作者:iyplx2425
--  发布时间:2016/11/8 10:08:00
--  
但就是运算时间老长……
--  作者:dancedy
--  发布时间:2016/11/9 22:59:00
--  

运行时间长可能在于RecalcCol(GridName,"工价")

每次AppendRows,都要重算工价列,重算的数据越来越多

试试AppendRows全部数据后,再重算工价列


--  作者:iyplx2425
--  发布时间:2016/11/10 8:00:00
--  
已经做了一个先导入工价不为空的行,最后一次性重算[工价]的公式,快了许多。