Foxtable(狐表)用户栏目专家坐堂 → CheckedComboBox控件问题


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

主题:CheckedComboBox控件问题

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


加好友 发短信
等级:婴狐 帖子:38 积分:352 威望:0 精华:0 注册:2019/3/27 20:17:00
CheckedComboBox控件问题  发帖心情 Post By:2019/4/28 10:18:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下: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
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/28 10:41:00 [只看该作者]

Filter = "所属10千伏线路 in ('" & .Value.replace(",", "','") & "')"

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


加好友 发短信
等级:婴狐 帖子:38 积分:352 威望:0 精华:0 注册:2019/3/27 20:17:00
  发帖心情 Post By:2019/4/28 12:13:00 [只看该作者]

厉害,解决了。




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


加好友 发短信
等级:婴狐 帖子:38 积分:352 威望:0 精华:0 注册:2019/3/27 20:17:00
  发帖心情 Post By: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
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/29 18:29:00 [只看该作者]

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
回忆美好wy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:38 积分:352 威望:0 精华:0 注册:2019/3/27 20:17:00
  发帖心情 Post By: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 = "供电所线路统计" 绑定该表了。请问这是为什么?


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


加好友 发短信
等级:超级版主 帖子:107230 积分:545405 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/29 20:21:00 [只看该作者]

Chart.DataFilter =  "所属10千伏线路 in ('" & .Value.replace(",", "','") & "')"


 回到顶部
帅哥哟,离线,有人找我吗?
回忆美好wy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:38 积分:352 威望:0 精华:0 注册:2019/3/27 20:17:00
  发帖心情 Post By:2019/5/5 11:23:00 [只看该作者]

没看明白。问题是
图片点击可在新窗口打开查看此主题相关图片如下:批注 2019-05-05 112119.png
图片点击可在新窗口打开查看
图片中的红色圈中的表和图表不匹配

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/5 11:24:00 [只看该作者]

具体代码贴出来。

 

具体实例发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
回忆美好wy
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:38 积分:352 威望:0 精华:0 注册:2019/3/27 20:17:00
  发帖心情 Post By: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度

 回到顶部
总数 12 1 2 下一页