以文本方式查看主题 - 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控件问题 ![]() ![]() 请问我在利用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 请问是为什么,怎么解决呢? |
-- 作者:有点甜 -- 发布时间: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/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/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度
|