以文本方式查看主题

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

--  作者:gudao123456
--  发布时间:2020/5/31 15:10:00
--  如何判断数据表中的列名称是否是逻辑列?
1.要判断当前表中的那一列是逻辑列?
2.要判断当前表中的那一列是表达式列?
判断的代码怎么写?谢谢!

--  作者:sloyy
--  发布时间:2020/5/31 15:25:00
--  
if DataTables("订单").DataCols("是否开单").IsBoolean then 是逻辑列
if DataTables("订单").DataCols("金额").Expression > "" then 是表达式列

--  作者:gudao123456
--  发布时间:2020/5/31 15:32:00
--  
但当前表tb=currenttable是table类型,如何才能转到datatable呢?是tb.datacols(“是否开单”)还是 tb.datatable.datacols("是否开单")?
谢谢!

--  作者:sloyy
--  发布时间:2020/5/31 16:02:00
--  
 if Tables("订单").Cols("是否开单").IsBoolean then 是逻辑列
 if Tb.Cols("是否开单").IsBoolean then 是逻辑列

[此贴子已经被作者于2020/5/31 16:03:44编辑过]

--  作者:gudao123456
--  发布时间:2020/5/31 17:12:00
--  
还是不行
测试代码如下:
Dim lm As String
Dim i As Integer
For Each c As Col In tb.Cols
  If tb.Cols(c).IsBoolean
i=i+1
End If
lm=lm+c.name+","
Next
msgbox(lm)
编译没通过,出现了以下错误提示:

图片点击可在新窗口打开查看此主题相关图片如下:r%tuhkd1lsby}xpc5juzstu.png
图片点击可在新窗口打开查看




--  作者:y2287958
--  发布时间:2020/5/31 20:02:00
--  
If c.IsBoolean
--  作者:sloyy
--  发布时间:2020/5/31 20:14:00
--  
c 本身就是col ,tb.Cols(c)是什么? 
不如改为这样:
Dim lm As String
Dim i As Integer
Dim tb As Table= Tables("表A")
For i= 0 To tb.Cols.Count -1
    If tb.Cols(i).IsBoolean= False Then
        lm=lm+tb.Cols(i).name+","
        
    End If
Next
msgbox(lm)

--  作者:gudao123456
--  发布时间:2020/5/31 20:19:00
--  
谢谢!