以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  输出表结构时:只能判断“逻辑列、字符列、如何输出列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42999)

--  作者:foxtable1
--  发布时间:2013/11/27 21:26:00
--  输出表结构时:只能判断“逻辑列、字符列、如何输出列

现在对列类型的判断属性只有四种:IsBoolean、IsDate、IsString、IsNumeric。

我想数值列,包括如integer  double  single等,就无法进行属性判断了。请问有其他方法吗?

另外,扩展列也无法判断。

还有,表达式列也无法判断。

如果这些列类型无法进行判断,那如何才能输出各个数据表的结构?(系统菜单输出的WORD版的表结构不好使,想在FOX中建立一个表,自写代码输出表结构到此表中贮存,而不是输出到WORD文件中)。

请教


--  作者:有点甜
--  发布时间:2013/11/27 21:34:00
--  
  比较麻烦,建议楼主放弃。也是不建议这样做的。导出到word,然后复制进来吧。
--  作者:有点甜
--  发布时间:2013/11/27 21:40:00
--  
 获取类型,你可以这样做,例如

 msgbox(Tables("表A").Current("第一列").Gettype.name)

 至于扩展类型,你可以这样判断


 至于表达式列,可以这样判断

[此贴子已经被作者于2013-11-28 21:51:25编辑过]

--  作者:foxtable1
--  发布时间:2013/11/28 11:17:00
--  

嗯,通过你的方法,可以获取到列类型并输出。

扩展类型的判断,你给的链接打不开?麻烦你再给个链接,谢谢。从输出的列长度来看,似乎扩展列可以通过列长度来判断,你说行吗?

表达式列的判断,如果存在表达式,可以根据表达式是否为空来判断,但如果表达式列还没有设置表达式,那就无法用代码判断并输出了。

 


--  作者:Bin
--  发布时间:2013/11/28 11:20:00
--  
http://www.foxtable.com/help/topics/1656.htm
--  作者:foxtable1
--  发布时间:2013/11/28 11:36:00
--  
我是想如何判断一个列是不是表达式列,而不是已知这个列为表达式列而返回这个列的表达式。
--  作者:有点甜
--  发布时间:2013/11/28 21:51:00
--  
以下是引用foxtable1在2013-11-28 11:36:00的发言:
我是想如何判断一个列是不是表达式列,而不是已知这个列为表达式列而返回这个列的表达式。


楼主你这样想哦,有表达式的,自然就是表达式列。

--  作者:foxtable1
--  发布时间:2013/11/29 21:27:00
--  
有这种情况,可能在设计表结构的时候,增加了表达式列,或者预设几个表达式列方便发布后能根据自身的要求对其自定义表达式,那么在新增表达式列时,并不会对该表达式列设置表达式,但通过输出表结构时,能醒目地显示某列是否为表达式列,那就能利用该列进行自定义表达式,这样就增加了一定的灵活性。
另外,使用动态修改表结构ADOXBUILDER,为什么不能增加表达式?如果能增加表达式列,那就可以根据表结构自动建立相同的表(数据表的复制功能,似乎只能复制非表达式列)


--  作者:有点甜
--  发布时间:2013/11/29 21:38:00
--  
 表达式的判读,也可以这样:尝试给列赋值,用try catch捕捉错误,出错,就是表达式列。

try
    Tables("xxx").Rows(0)("xxx") = 1
catch ex As exception
    msgbox("出错")
End try

 另一个,不解释,不能增加表达式列。只能是在你afteropenproject以后动态add上去。