Foxtable(狐表)用户栏目专家坐堂 → [求助]怎样把交叉统计表在窗口中的Table中打开,并指定列名和列宽?


  共有4253人关注过本帖树形打印复制链接

主题:[求助]怎样把交叉统计表在窗口中的Table中打开,并指定列名和列宽?

帅哥哟,离线,有人找我吗?
syczmg
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:60 积分:575 威望:0 精华:0 注册:2013/4/17 19:15:00
[求助]怎样把交叉统计表在窗口中的Table中打开,并指定列名和列宽?  发帖心情 Post By:2014/3/9 13:06:00 [只看该作者]

设计交叉统计表如下:
Dim g As New CrossTableBuilder("计划执行情况表", DataTables("jh"), "[xmrq] Is Not Null")
g.Caption = "计划执行情况表"
g.HGroups.AddDef("nd")
g.VGroups.AddDef("xmrq", DateGroupEnum.Year, "{0}年")
g.VGroups.AddDef("xmrq", "{0}月")
g.Totals.AddDef("xmbh", AggregateEnum.Count, "项目数量")
g.Totals.AddDef("xmys", "项目预算")
g.HorizontalTotal = True
g.Decimals = 2
g.Filter = "[xmrq] Is Not Null"
g.Build()
MainTable = Tables("计划执行情况表")

执行后,生成临时表与其他数据表在一起。想在计划执行窗口中Table1表打开此表,并指定列名和列宽。请老师指教!


 


 回到顶部
帅哥哟,离线,有人找我吗?
有点酸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2014/3/9 23:32:00 [只看该作者]

1、直接在窗口显示统计结果:

http://www.foxtable.com/help/topics/1909.htm

 

2、设置列宽:

http://www.foxtable.com/help/topics/1775.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
syczmg
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:60 积分:575 威望:0 精华:0 注册:2013/4/17 19:15:00
  发帖心情 Post By:2014/3/11 10:44:00 [只看该作者]

问题部分解决,谢谢老师!问题是:

生成交叉统计代码为:

Dim g As New CrossTableBuilder("计划执行情况表", DataTables("jh"))
g.Caption = "计划执行情况表"
g.HGroups.AddDef("年度")
g.VGroups.AddDef("xmrq", DateGroupEnum.Year, "{0}年")
g.VGroups.AddDef("xmrq", "{0}月")
g.Totals.AddDef("xmbh", AggregateEnum.Count, "项目数量")
g.Totals.AddDef("xmys", "项目预算")
g.HorizontalTotal = True
g.Decimals = 2
Dim Filter As String
With e.Form.Controls("起始日期")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "xmrq >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("截止日期")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "xmrq <= #" & .Value & "#"
    End If
End With
If Filter > "" Then
    Tables("jh").Filter = Filter
End If
g.Filter = Filter
g.Build()
Tables("计划执行_Table1").DataSource = g.BuildDataSource()

 

如何按SetColVisibleWidth(列名1|宽度1|列名2|宽度2|列名3|宽度3...)设置列宽,因为列名不固定(年度、月份均不确定)?


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/11 10:47:00 [只看该作者]

循环所有列一个个设置吧.
for each c as col in Tables("计划执行_Table1").cols
    if c.name.Contains("XX") then
        c.width=100
    end if
next

 回到顶部