以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  发现一个窗口加载的问题(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5949)

--  作者:yangming
--  发布时间:2010/2/6 13:47:00
--  发现一个窗口加载的问题(已解决)
窗口中有一目录树和一个表
目录树的NodeMouseClick事件代码为:
Tables("RS_项目管理_Table1").Fill("Select * From {"& e.Node.Name &"}","rs",False)
但是我发现,如果其中有一个表是双层列标题,当选过此表后,再选其它的单层列标题的表时,仍会出现双层列,只不过是第二层列标题是空的,这一定是的BUG了,请看下图

图片点击可在新窗口打开查看此主题相关图片如下:双层列.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2010-2-6 17:29:13编辑过]

--  作者:czy
--  发布时间:2010/2/6 16:11:00
--  
一直都是这样的。
--  作者:yangming
--  发布时间:2010/2/6 16:31:00
--  
以下是引用czy在2010-2-6 16:11:00的发言:
一直都是这样的。

才发现,有无办法或是变通办法?


--  作者:czy
--  发布时间:2010/2/6 16:44:00
--  
如果知道fill的是只有一层表头的话很容易解决,如:
Tables("窗口名_Table1").SetHeaderRowHeight(20,0)
--  作者:yangming
--  发布时间:2010/2/6 16:57:00
--  
有没有办法判断是多层表头还是单层表头?
--  作者:czy
--  发布时间:2010/2/6 16:58:00
--  
这样试试:

Dim s As String
Tables("RS_项目管理_Table1").Fill("Select * From {"& e.Node.Name &"}","rs",False)
For Each dc As DataCol In DataTables(e.Node.Name).DataCols
    if dc.Caption <> ""
        s = s & "|" & dc.Caption
    Else
        s = s & "|" & dc.name
    End If
Next
if s.Contains("_") Then
    Tables("窗口1_Table1").SetHeaderRowHeight(20,0)
End If

--  作者:yangming
--  发布时间:2010/2/6 17:04:00
--  
目前只能是先这样了
If e.Node.Name = "家庭成员"
Tables("RS_项目管理_Table1").SetHeaderRowHeight(20,20)
Else
Tables("RS_项目管理_Table1").SetHeaderRowHeight(20,0)
End If

--  作者:czy
--  发布时间:2010/2/6 17:08:00
--  

如果动态生成的表比较多,用6楼合适,就这两个表的话if更简单。


--  作者:yangming
--  发布时间:2010/2/6 17:28:00
--  
以下是引用czy在2010-2-6 16:58:00的发言:
这样试试:

Dim s As String
Tables("RS_项目管理_Table1").Fill("Select * From {"& e.Node.Name &"}","rs",False)
For Each dc As DataCol In DataTables(e.Node.Name).DataCols
    if dc.Caption <> ""
        s = s & "|" & dc.Caption
    Else
        s = s & "|" & dc.name
    End If
Next
if s.Contains("_") Then
    Tables("窗口1_Table1").SetHeaderRowHeight(20,0)
End If

我这样改了一下,因为表是在后台,谢谢CZY版主,呵呵

[此贴子已经被作者于2010-2-6 17:28:48编辑过]