以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]如何判断某列是表达式列? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68986) |
-- 作者:whyfoxtable -- 发布时间:2015/5/28 16:30:00 -- [求助]如何判断某列是表达式列? 示意代码如下:
dim dc as DataCol For each dc In DataTables("表A").DataCols If dc.Expression Exist then output.show("此列是表达式列") else output.show("不是表达式列") NEXT
|
-- 作者:大红袍 -- 发布时间:2015/5/28 16:35:00 -- dim dc as DataCol For each dc In DataTables("表A").DataCols If dc.Expression > "" then output.show("此列是表达式列") else output.show("不是表达式列") NEXT
|
-- 作者:whyfoxtable -- 发布时间:2015/5/28 16:40:00 -- [求助]没有表达式的表达式列,不会被排除。 靠表达式的内容来区分,只能区分出一部分,另一部分“表达式为空”的表达式列还是不能排除。。。 |
-- 作者:大红袍 -- 发布时间:2015/5/28 16:44:00 -- 看另一帖,用try catch |
-- 作者:狐狸爸爸 -- 发布时间:2015/5/28 16:55:00 -- 或者:
Dim dc As DataCol = DataTables("总表").DataCols("c")
Dim pi As System.Reflection.PropertyInfo = dc.Gettype.getproperty("IsTemporary",Reflection.BindingFlags.nonpublic Or Reflection.BindingFlags.Instance)
output.show( pi.getvalue(dc,Nothing))
|
-- 作者:whyfoxtable -- 发布时间:2015/5/28 16:56:00 -- [分享]谢谢,看过另一贴,解决完毕! 真诚感谢! 狐狸爸爸的是正路,我下面的是旁路(旁路也是大红袍、BIN大师提供的)
Dim Builder As New ADOXBuilder
If (DataTables.Contains("表A") = False) Then \'如果未加载 [此贴子已经被作者于2015/5/28 16:57:43编辑过]
|
-- 作者:e-png -- 发布时间:2015/5/28 22:51:00 --
其实,设计表的时候,用一个全局变量记录一下各表的“表达式列”就可以了。这样更简单且实用。 |
-- 作者:大红袍 -- 发布时间:2015/5/28 23:33:00 -- 以下是引用狐狸爸爸在2015/5/28 16:55:00的发言:
或者:
Dim dc As DataCol = DataTables("总表").DataCols("c")
Dim pi As System.Reflection.PropertyInfo = dc.Gettype.getproperty("IsTemporary",Reflection.BindingFlags.nonpublic Or Reflection.BindingFlags.Instance)
output.show( pi.getvalue(dc,Nothing))
mark |