以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46626)

--  作者:bobolan521
--  发布时间:2014/2/26 15:00:00
--  [求助]

图片点击可在新窗口打开查看(图1)

图片点击可在新窗口打开查看(图2)

 

我做了一个复选组合框,选择一个部门后可以实现图1,请问我选择多个部门后怎么实现图1效果??

 

 

代码如下:

Dim k As WinForm.CheckedComboBox = e.Form.Controls("请选择部门")
Dim g As New GroupTableBuilder("工资表1", DataTables("工资表"))
g.Groups.AddDef("部门")
g.Totals.AddDef("实发工资", "总工资")

g.Filter = "[部门] = \'" & k.value & "\'"

g.Build()

 

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Bar \'图表1类型该为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.XYPlot \'图表2类型该为线形
Chart.DataSource = "工资表1" \'设置绑定表
Chart.AxisY.Min = 0 \'指定Y轴的最小值
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'给图表1增加一个图系
Series.Text = "总工资"
Series.X.DataField = "部门" \'X轴绑定到产品列
Series.Y.DataField = "总工资" \'Y轴绑定到数量列
Chart.SeriesList2.Clear() \'清除图表原来的图系
Series.DataLabelText = "{#YVAL}" \'图表上显示具体数据
Chart.AxisY.Text = "总工资"


--  作者:狐狸爸爸
--  发布时间:2014/2/26 15:07:00
--  

呵呵,图示多个产品和图示多个部门,应该是一回事,看帮助:

http://www.foxtable.com/help/topics/0970.htm

http://www.foxtable.com/help/topics/0971.htm

[此贴子已经被作者于2014-2-26 15:08:47编辑过]

--  作者:bobolan521
--  发布时间:2014/2/26 15:20:00
--  
狐狸爸爸,你理解错了,我们要增加的不是图系,我们的图系只要一个,而是横坐标上,要显示的部门个数,如果我勾选了3个部门就显3个部门的总工资,而且都是单图系的
--  作者:bobolan521
--  发布时间:2014/2/26 15:23:00
--  

我感觉应该是,我们沟财务的时候g.fliter =“部门=财务” 沟两个的时候比如 g.fliter =“部门=财务或部门=行政”

沟三个的时候应该是g.fliter =“部门=财务或部门=行政or 部门=成型”相当于我想动态的控制过滤条件

[此贴子已经被作者于2014-2-26 15:24:18编辑过]

--  作者:狐狸爸爸
--  发布时间:2014/2/26 15:34:00
--  

你最好设计一个表,就是你要图示的表,输入一些测试数据,然后传上来,说明你需要一个什么样的图,否则理解起来很困难。


--  作者:bobolan521
--  发布时间:2014/2/26 15:49:00
--  

你好狐狸爸爸,我现在的文件里实现了钩选单个部门出图表,如果要实现钩多个该怎么,请赐教

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.rar

实现钩四个部图片点击可在新窗口打开查看

[此贴子已经被作者于2014-2-26 15:50:43编辑过]

--  作者:狐狸爸爸
--  发布时间:2014/2/26 15:56:00
--  

调整一行代码就行:

 

Dim k As WinForm.CheckedComboBox = e.Form.Controls("请选择部门")
Dim g As New GroupTableBuilder("工资表1", DataTables("工资表"))
g.Groups.AddDef("部门")
g.Totals.AddDef("实发工资", "总工资")
g.Filter = "[部门] in (\'" & k.value.Replace(",","\',\'") & "\')"
g.Build()


--  作者:bobolan521
--  发布时间:2014/2/26 16:13:00
--  
爱死你了,图片点击可在新窗口打开查看