以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]按钮直接调出分组统计表和窗口  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=562)

--  作者:易服
--  发布时间:2008/9/17 15:46:00
--  [求助]按钮直接调出分组统计表和窗口
     分组统计表平时是隐藏的,要打开就必须日常统计--分组统计---启用历史统计---统计表1,要打开窗口还要来一篇。我想在一常用窗口中设一按钮直接打开统计表1和窗口,窗口有图表

图片点击可在新窗口打开查看此主题相关图片如下:解手.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:矸.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:退耕还林管理系统.rar


--  作者:shaof
--  发布时间:2008/9/17 15:57:00
--  
Maintable = Tables("统计表1")
Forms("窗口名").Open()

--  作者:贺老六
--  发布时间:2008/9/17 15:58:00
--  
如果是独立窗口或者模式窗口,可直接打开另一个表的窗口,无需切换过去:

forms("另一个窗口名").Opened()

--  作者:易服
--  发布时间:2008/9/17 16:37:00
--  
以下是引用贺老六在2008-9-17 15:58:00的发言:
如果是独立窗口或者模式窗口,可直接打开另一个表的窗口,无需切换过去:

forms("另一个窗口名").Opened()

两种方法都不行的,只有统计表1可见的情况下(还是要打开统计表1)统计图是独立窗口邦定统计表1

Maintable = Tables("统计表1")
Forms("统计图").Open()

才可以,要的不是这种结果

[此贴子已经被作者于2008-9-17 16:47:13编辑过]

--  作者:贺老六
--  发布时间:2008/9/17 16:47:00
--  
以下是引用易服在2008-9-17 16:37:00的发言:

两种方法都不行的,只有统计表1可见的情况下

Maintable = Tables("统计表1")
Forms("统计图").Open()

才可以,要的不是这种结果


如果不是停靠窗口,绝对可以打开的。

估计你窗口的统计代码用的是CurrentTable/MainTable这样的语法,导致代码运行出错。

你可以修改代码,直接:tables("表名"),不用currenttable/maintable


--  作者:易服
--  发布时间:2008/9/17 16:57:00
--  
     窗口的统计代码用的是
Chart.SeriesList.Clear() \'清除图表原来的图系
For Each c As Col in t.Cols
    If c.Name <> "乡名" Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t.Rows.Count \'设置图系的长度
        For r As Integer = 0 To t.Rows.Count - 1
            Series.X(r) = r
            Series.Y(r) = t.Rows(r)(c.Name)
        Next
    End If
Next
For r As Integer = 0 to t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, t.Rows(r)("乡名")) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
Chart.BarClusterWidth = 80
        有什么不对吗?怎么写?

--  作者:狐狸爸爸
--  发布时间:2008/9/17 17:02:00
--  
t.Rows(r)(c.Name)

贴的不完整吧?上面这个t是怎么来的?
--  作者:易服
--  发布时间:2008/9/17 17:12:00
--  
是这样
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("统计表1") \'定义一个变量t引用数据表
Chart= Forms("统计图").Controls("Chart1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型该为Bar(条形)
Chart.SeriesList.Clear() \'清除图表原来的图系
For Each c As Col in t.Cols
    If c.Name <> "乡名" Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = c.Name \'设置图系的标题
        Series.Length = t.Rows.Count \'设置图系的长度
        For r As Integer = 0 To t.Rows.Count - 1
            Series.X(r) = r
            Series.Y(r) = t.Rows(r)(c.Name)
        Next
    End If
Next
For r As Integer = 0 to t.Rows.Count - 1
    Chart.AxisX.SetValueLabel(r, t.Rows(r)("乡名")) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
Chart.BarClusterWidth = 80
        烦劳改一下
[此贴子已经被作者于2008-9-17 17:14:09编辑过]

--  作者:贺老六
--  发布时间:2008/9/17 17:24:00
--  
没看出问题,传上来看看
--  作者:易服
--  发布时间:2008/9/17 17:26:00
--  
文件已经上传了在一楼