以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  字典记录过滤条件 的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82683)

--  作者:凡夫俗子
--  发布时间:2016/3/22 19:12:00
--  字典记录过滤条件 的问题
Dim tbz As Table = e.Form.Controls("Table1").Table
Dim tbm As Table
try
    For i As Integer = 0 To  vars(tbz.name & "_MxbJs")-1
        Dim bkj As String = "PgTb" & i + 1
        tbm = e.Form.Controls(bkj).Table
        tbm.Filter =  vars(tbz.name & "_MxbFil")(i)
    Next
Catch ex As Exception    
End Try


其中 vars(tbz.name & "_MxbFil")字典值只有一个
vars(tbz.name & "_MxbFil")(i) 的值 为 1=1 and Guid = \'" & tbz.Current("Guid") & "\'

但是这样执行 最终显示和 表的过滤值 条件为 1=1 and Guid = \'" & tbz.Current("Guid") & "\'  
tbz.Current("Guid")  并未替换成真正的字段值

但是如果 用 tbm.Filter = “1=1 and Guid = \'" & tbz.Current("Guid") & "\'” 则可行

dim str as string = 1=1 and Guid = \'" & tbz.Current("Guid") & "\'”  
tbm.Filter = = str 也行


dim str as string = vars(tbz.name & "_MxbFil")(i)
tbm.Filter = str 就是不

tbm.Filter vars(tbz.name & "_MxbFil")(i)  也是不行
[此贴子已经被作者于2016/3/22 19:15:20编辑过]

--  作者:大红袍
--  发布时间:2016/3/22 19:27:00
--  

 不能这样用,字符串不能当代码来用的,如果你要获取值,你就必须动态编译。

 

Functions.remove("函数")
Dim Code As String
Code = "return tables(""表A"").current(""第一列"")"
Functions.Add("函数",Code)
Functions.Complie()
Dim str = Functions.Execute("函数")
msgbox(str)