以文本方式查看主题

-  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=100141)

--  作者:nbsfy
--  发布时间:2017/5/5 13:53:00
--  [求助]如何用代码判断当前列是否表达式列
[求助]如何用代码判断当前列是否表达式列
--  作者:有点色
--  发布时间:2017/5/5 14:03:00
--  
 Dim dc As DataCol  = DataTables("表A").DataCols("第一列")
Dim pi As System.Reflection.PropertyInfo = dc.Gettype.getproperty("IsTemporary",Reflection.BindingFlags.nonpublic Or Reflection.BindingFlags.Instance)
output.show( pi.getvalue(dc,Nothing))

--  作者:有点色
--  发布时间:2017/5/5 14:04:00
--  

或者

 


Dim dc As DataCol  = DataTables("表A").DataCols("第一列")
msgbox(dc.Expression <> Nothing)


--  作者:nbsfy
--  发布时间:2017/5/5 16:51:00
--  
ok,感谢!
--  作者:chnfo
--  发布时间:2017/7/7 10:14:00
--  
但如果设了表达式列,但未设置公式,方法无效呀
--  作者:有点甜
--  发布时间:2017/7/7 10:17:00
--  
以下是引用chnfo在2017/7/7 10:14:00的发言:
但如果设了表达式列,但未设置公式,方法无效呀

 

Dim dc As DataCol  = DataTables("表C").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))


--  作者:chnfo
--  发布时间:2017/7/7 10:36:00
--  
代码执行出错,错误信息
system.nullreferenceexception:未将对象引用设置到对象的实例
在usercode.test()

--  作者:有点甜
--  发布时间:2017/7/7 10:46:00
--  

测试没问题

 

Dim dc As DataCol  = DataTables("表A").DataCols("第一列")
Dim pi As System.Reflection.PropertyInfo = dc.Gettype.getproperty("IsTemporary",Reflection.BindingFlags.nonpublic Or Reflection.BindingFlags.Instance)
output.show( pi.getvalue(dc,Nothing))


--  作者:chnfo
--  发布时间:2017/7/7 10:55:00
--  
IsTemporary,这个居然必须区分大小写?如果小写就不行
--  作者:有点甜
--  发布时间:2017/7/7 10:57:00
--  
以下是引用chnfo在2017/7/7 10:55:00的发言:
IsTemporary,这个居然必须区分大小写?如果小写就不行

 

区分大小写