以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码放在表的备注列中,要什么引用? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7484) |
-- 作者:知无 -- 发布时间:2010/6/30 8:57:00 -- 代码放在表的备注列中,要什么引用? 由于涉及产品的变化,有一些判定用代码要经常做修改,故统一放在表“ABC”的“第三列”备注列中。 但现在要引用参与运算时不时什么处理,请高手指点。
如:Tables("ABC").Rows(0)("第三列") 的备注内容为:dt.Compute("Count(姓名)", dr("科目") & " > 0 And [期数] = \'" & e.Datarow("期数") & "\'And [班级] = \'" & e.Datarow("班级") & "\'" )
Dim dr As DataRow = e.DataRow Dim CC As String = dt.Compute("Count(姓名)", dr("科目") & " > 0 And [期数] = \'" & e.Datarow("期数") & "\'And [班级] = \'" & e.Datarow("班级") & "\'" ) End If
但要是用引用就不行,什么处理?提示数据列转换错误。
Dim dr As DataRow = e.DataRow Dim CC As String = Tables("ABC").Rows(0)("第三列") \'引用备注列的内容 e.DataRow("参考人数") = CC \'想达到以下的运行效果:e.DataRow("参考人数") = dt.Compute("Count(姓名)", dr("科目") & " > 0 And [期数] = \'" & e.Datarow("期数") & "\'And [班级] = \'" & e.Datarow("班级") & "\'" ) |
-- 作者:狐狸爸爸 -- 发布时间:2010/6/30 9:02:00 -- 代码不是表达式,代码是需要编译才能运行的,你变化的只是条件表达式,并非代码本身,你可以在代码中动态合成表达式。 |
-- 作者:知无 -- 发布时间:2010/6/30 9:37:00 -- 我的想法是这样,把一段经常要改的代码,放在表的备注列,用的时候引用过来参与运行,这样避免去改客户端。 |
-- 作者:知无 -- 发布时间:2010/6/30 9:46:00 -- 经常要改的代码是涉及产品的多方面参数的变化,条件变化会比较多,只好想这样的方法去处理。 有什么方法可以取备注列代码内容转换成可运行的代码? |
-- 作者:狐狸爸爸 -- 发布时间:2010/6/30 9:52:00 -- 参考帮助“自定义函数 - 动态函数管理”。 |
-- 作者:知无 -- 发布时间:2010/6/30 10:58:00 -- 对动态函数管理不太会,请再指点:
如:Tables("ABC").Rows(0)("第三列") 的备注内容为:dt.Compute("Count(姓名)", dr("科目") & " > 0 And [期数] = \'" & e.Datarow("期数") & "\'And [班级] = \'" & e.Datarow("班级") & "\'" )
动态函数名为“ABC” ,以下是参照帮助写的,实在写不好。 Dim Code As String Code = Code & "Return "
DataColChanged中这样写:
Dim dr As DataRow = e.DataRow End If |
-- 作者:狐狸爸爸 -- 发布时间:2010/6/30 11:08:00 -- 你要传递参数过去的,e.DataRow,dr,dt等等,都应该作为参数传递过去。
不如直接在函数管理中定义好,测试通过后,将函数的代码复制到某个备注列,再删除这个函数,以后启动项目后,就从备注列读取代码并编译。
实在不会写就算了吧,你这个想法其实没有实际价值的,动态合成表达式好得多。 |
-- 作者:知无 -- 发布时间:2010/6/30 11:33:00 -- 谢谢,再想想看要什么弄 |