以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 动态加载问题 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=94344) |
-- 作者:xvkewen -- 发布时间:2016/12/21 15:36:00 -- 动态加载问题 我想做到程序在启动的时候,可以根据后台数据表中保存的表达式来动态加裁,在Afteropenproject事件下添加以下代码; Dim cl As DataRow = DataTables("RolesAuthorityControl").Find("Userroles = \'" & _userroles & "\'")
执行完毕后没有报错,但没有加载到任何数据,但时如果将DataTables("mainschedule").LoadFilter= str代码替换为如下代码,则加载正常;
DataTables("mainschedule").LoadFilter ="[ScheduleStu] = \'正常\' and [QAgroup] = \'" & _userteam & "\' and [SamplePrepareStu] = \'false\'"
下图是MSGBOX的弹窗,其实Str字符串与"[ScheduleStu] = \'正常\' and [QAgroup] = \'" & _userteam & "\' and [SamplePrepareStu] = \'false\'"相同,难道是Str里面的_userteam不能够执行? 如果此方法行不通,有没有其他别的方法?主要是不想在Afteropenproject事件加载的时候使用过多的静态代码; |
-- 作者:blackzhu -- 发布时间:2016/12/21 15:42:00 -- _userteam 没赋值 |
-- 作者:xvkewen -- 发布时间:2016/12/21 15:52:00 -- 回复:(blackzhu)_userteam 没赋值 从使用DataTables("mainschedule").LoadFilter ="[ScheduleStu] = \'正常\' and [QAgroup] = \'" & _userteam & "\' and [SamplePrepareStu] = \'false\'"加载正常来看,全局代码的_userteam其实是有赋值的;
会不会在Str变量里的表达式,把_userteam就只当作了普通的字符串处理了,没有当作全局变量来取值呢? |
-- 作者:有点色 -- 发布时间:2016/12/21 16:04:00 -- 字符串不能直接用。
必须动态编译一次,才能得到 _userteam 的值
http://www.foxtable.com/webhelp/scr/1487.htm
|
-- 作者:xvkewen -- 发布时间:2016/12/21 16:36:00 -- 我在Afteropenproject事件里自定义以下动态函数 dim code as string code = cl("Runloadfilter") functions.add("loadstr",code) functions.complie()
datatables("mainschedule").loadfilter = functions.execute("loadstr")
提示以下错误,怎么办?
|
-- 作者:xvkewen -- 发布时间:2016/12/21 16:47:00 -- 回复:(有点色) 字符串不能直接用。 ... 原来是函数写错了;改成这样就没问题了;谢谢你
dim code as string code = “dim str as string =” & cl("Runloadfilter") & vbcrlf code = code & "return str" functions.add("loadstr",code) functions.complie() |
-- 作者:有点色 -- 发布时间:2016/12/21 17:29:00 -- 前面,应该加一句
functions.remove("loadstr") |
-- 作者:xvkewen -- 发布时间:2016/12/21 21:54:00 -- 回复:(有点色)前面,应该加一句 function... 如果不用Remove,这个动态函数会一直存储程序里吗? |
-- 作者:有点色 -- 发布时间:2016/12/21 22:53:00 -- 以下是引用xvkewen在2016/12/21 21:54:00的发言:
如果不用Remove,这个动态函数会一直存储程序里吗?
如果你重复多次使用此名称的函数,你就必须先remove掉,才能add的,不然会报错。 |