以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  CheckedComboBox控件问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=134127)

--  作者:回忆美好wy
--  发布时间:2019/4/28 10:18:00
--  CheckedComboBox控件问题

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190428101053.png
图片点击可在新窗口打开查看
请问我在利用ComboBox和CheckedComboBox实现了在ComboBox中选择内容后,在CheckedComboBox中只能选择相关联的内容,但是当在CheckedComboBox中选择一条内容时,可以生成统计表,如下图所示。

但是在CheckedComboBox中选择两条内容以上时就无法再生成统计表了。如图所示:


以下是我在按钮中的代码。
Dim b As New GroupTableBuilder("供电所线路统计",DataTables("缺陷隐患库原始数据表"))
b.Groups.AddDef("所属10千伏线路") \'根据所属10千伏线路分组
b.Totals.AddDef("缺陷数量") \'对数量进行统计
b.Build \'生成统计表
MainTable = Tables("供电所线路统计") \'打开生成的统计表

Dim Filter As String
With e.Form.Controls("CheckedComboBox供电所线路统计")
    If .Value IsNot Nothing Then
        Filter = "所属10千伏线路  = \'" & .Value & "\'"
    End If
End With
If Filter > "" Then
    Tables("供电所线路统计").Filter = Filter
End If


请问是为什么,怎么解决呢?


另外,我想实现在chart中实现对生成的统计表用柱状图表现,该怎么写代码呢?
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190428101031.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2019/4/28 10:41:00
--  
Filter = "所属10千伏线路 in (\'" & .Value.replace(",", "\',\'") & "\')"
--  作者:回忆美好wy
--  发布时间:2019/4/28 12:13:00
--  
厉害,解决了。




--  作者:回忆美好wy
--  发布时间:2019/4/29 16:57:00
--  
你好,有延续上面的问题。我在生成统计表后想根据所选线路生成缺陷数量统计柱状图,在以上代码的基础上增加了
   Dim Chart As WinForm.Chart \'定义一个图表变量
   Dim Series As WinForm.ChartSeries \'定义一个图系变量
   Chart = e.Form.Controls("Chart各供电所明细") \' 引用窗口中的图表
   Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
   Chart.ChartType = ChartTypeEnum.Bar \'图表类型该为Bar(条形)
   Chart.DataSource = "供电所线路统计" \'设置绑定表
   Chart.SeriesList.Clear() \'清除图表原来的图系
   Series = Chart.SeriesList.Add() \'增加第一个图系
   Series.Text = "数量"
   Series.X.DataField = "所属10千伏线路" \'X轴绑定到产品列
   Series.Y.DataField = "缺陷数量" \'Y轴绑定到数量列
   Chart.LegendVisible = True \'显示图列
   Chart.LegendCompass= CompassEnum.South
但是出来的效果是如下所示。怎么解决呢?
图片点击可在新窗口打开查看此主题相关图片如下:批注 2019-04-29 165616.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2019/4/29 18:29:00
--  

1、http://www.foxtable.com/webhelp/scr/1030.htm

 

2、加入代码清除之前的标签 Chart.AxisX.ClearValueLabel

 


--  作者:回忆美好wy
--  发布时间:2019/4/29 18:49:00
--  
谢谢。可能是我没表达清楚。

现在我的代码是
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("供电所线路统计") \'定义一个变量t引用数据表
Chart= Forms("各供电所明细").Controls("Chart各供电所明细") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型该为Bar(条形)
Chart.DataSource = "供电所线路统计" \'设置绑定表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.X.DataField = "所属10千伏线路" \'X轴绑定到产品列
Series.Y.DataField = "缺陷数量" \'Y轴绑定到数量列
Chart.AxisX.ClearValueLabel
Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度

我想实现的是当CheckedComboBox中选择一条线路时,生成的图表只有这一条线路的柱形图,当CheckedComboBox中选择两条线路时,生成的图表是这两条线路的柱形图。就是说生成的图表是根据CheckedComboBox中的选择内容生成的,而不是一生成就是全部线路的,好像通过筛选生成的统计表就没有用。


简单来说:就是我无法绑定生成的筛选表生成图表。下图中红线圈住的表,和窗口中生成的图表就没关系,虽然我通过Chart.DataSource = "供电所线路统计" 绑定该表了。请问这是为什么?


--  作者:有点蓝
--  发布时间:2019/4/29 20:21:00
--  
Chart.DataFilter =  "所属10千伏线路 in (\'" & .Value.replace(",", "\',\'") & "\')"


--  作者:回忆美好wy
--  发布时间:2019/5/5 11:23:00
--  
没看明白。问题是
图片点击可在新窗口打开查看此主题相关图片如下:批注 2019-05-05 112119.png
图片点击可在新窗口打开查看
图片中的红色圈中的表和图表不匹配
--  作者:有点甜
--  发布时间:2019/5/5 11:24:00
--  

具体代码贴出来。

 

具体实例发上来测试。


--  作者:回忆美好wy
--  发布时间:2019/5/5 18:04:00
--  
具体代码为
Dim b As New GroupTableBuilder("供电所线路统计",DataTables("缺陷隐患库原始数据表"))
b.Groups.AddDef("所属10千伏线路") \'根据所属10千伏线路分组
b.Totals.AddDef("缺陷数量") \'对数量进行统计
b.Build \'生成统计表
MainTable = Tables("供电所线路统计") \'打开生成的统计表

Dim Filter As String
With e.Form.Controls("CheckedComboBox供电所线路统计")
    If .Value IsNot Nothing Then
        Filter =  "所属10千伏线路 in (\'" & .Value.replace(",", "\',\'") & "\')"
    End If
End With
If Filter > "" Then
    Tables("供电所线路统计").Filter = Filter
End If

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("供电所线路统计") \'定义一个变量t引用数据表
Chart= Forms("各供电所明细").Controls("Chart各供电所明细") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar \'图表类型该为Bar(条形)
Chart.DataSource = "供电所线路统计" \'设置绑定表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.X.DataField = "所属10千伏线路" \'X轴绑定到产品列
Series.Y.DataField = "缺陷数量" \'Y轴绑定到数量列
Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度