Foxtable(狐表)用户栏目专家坐堂 → 图标按自定义顺序显示


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

主题:图标按自定义顺序显示

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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
图标按自定义顺序显示  发帖心情 Post By:2022/10/11 14:06:00 [只看该作者]

老师我想让下图按“入职”、“初级”、“中级”、“优秀”的顺序显示
同时我还想在每个柱状图上加上对应值的数字,如下代码如何修改?


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20221011140356.png
图片点击可在新窗口打开查看



Dim g As New GroupTableBuilder("统计表1", DataTables("userinfo"))
g.Groups.AddDef("period")
g.Totals.AddDef("pname", AggregateEnum.Count)
g.GrandProportion = True
g.FromServer = True
g.Build()

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart2") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
'Chart.HeaderText = "员工能力等级概览"
Chart.ChartType = ChartTypeEnum.Bar '图表1类型为Bar(条形)
Chart.DataSource = "统计表1" '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '给图表1增加一个图系
Series.Text = "period"
Series.X.DataField = "period" 'X轴绑定到产品列
Series.Y.DataField = "pname" 'Y轴绑定到数量列
Series.MarkShape = MarkShapeEnum.Dot
Series.MarkSize = 3

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/11 14:08:00 [只看该作者]

不要使用绑定,按这种遍历赋值的方法:http://www.foxtable.com/webhelp/topics/0966.htm


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


加好友 发短信
等级:三尾狐 帖子:641 积分:5194 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2022/10/11 15:52:00 [只看该作者]

Dim g As New GroupTableBuilder("统计表1", DataTables("userinfo"))
g.Groups.AddDef("period")
g.Totals.AddDef("pname", AggregateEnum.Count)
g.GrandProportion = True
g.FromServer = True
g.Build()
Dim cns() As String = {"入职", "初级", "中级", "优秀"}
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart2") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
'Chart.HeaderText = "员工能力等级概览"
Chart.ChartType = ChartTypeEnum.Bar '图表1类型为Bar(条形)
Chart.DataSource = "统计表1" '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '给图表1增加一个图系
For Each cn As String In cns
Series.Text = cn
Series.X(cn) = "period" 'X轴绑定到产品列
Series.Y(cn) = "pname" 'Y轴绑定到数量列
Next
Series.MarkShape = MarkShapeEnum.Dot
Series.MarkSize = 3


老师我还是没弄出来,上面的报错?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/11 15:59:00 [只看该作者]

Dim g As New GroupTableBuilder("统计表1", DataTables("userinfo"))
g.Groups.AddDef("period")
g.Totals.AddDef("pname", AggregateEnum.Count)
g.GrandProportion = True
g.FromServer = True
g.Build()
Dim cns() As String = {"入职", "初级", "中级", "优秀"}
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart2") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
'Chart.HeaderText = "员工能力等级概览"
Chart.ChartType = ChartTypeEnum.Bar '图表1类型为Bar(条形)
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = 4
For i As integer = 0 to cns.length - 1 '指定每个数据点的位置
dim dr as datarow = datatables("统计表1").find("period='" & cns(i) & "'")
if dr isnot nothing
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = 
dr("pname") '垂直坐标用随机数生成
Chart.AxisX.SetValueLabel(i, cns(i)'指定字符表示
endif
Next
Chart.AxisX.AnnoWithLabels = True

 回到顶部