Foxtable(狐表)用户栏目专家坐堂 → [求助]图表问题


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

主题:[求助]图表问题

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


加好友 发短信
等级:婴狐 帖子:99 积分:732 威望:0 精华:0 注册:2014/6/11 15:06:00
[求助]图表问题  发帖心情 Post By:2014/7/30 14:10:00 [只看该作者]

 

想实现 选择 相应型号,以及起始日期以后,针对“故障”数量形成图表。下列代码不知道问题出在哪里了。

 

Dim g As New GroupTableBuilder("统计表1", DataTables("检测维修单"))
g.Groups.AddDef("故障")
g.Totals.AddDef("业务编号", AggregateEnum.Count, "数量")
g.Build()
Dim Filter As String
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        Filter = Filter & "型号 like '*" & .Value & "*'"
         End If
End With

With e.Form.Controls("StartDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "接修日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("EndDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "接修日期 <= #" & .Value & "#"
    End If
End With

If Filter > "" Then
    Tables("检测维修单").Filter = Filter
End If
MainTable = Tables("统计表1")

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("统计表1") '定义一个变量t引用数据表
Dim sm As Integer = t.Compute("Sum(数量)") '计算总数量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For Each r As Row In t.Rows
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = r("故障") & "(" & r("数量") & ")" '设置图系的标题
    Series.Y(0) = r("数量") '指定值
    Series.DataLabelText = Math.Round(r("数量")*100/sm,2) & "%" '计算百分比
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)


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


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

 对应例子发上来,说明是在哪个窗口。

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


加好友 发短信
等级:婴狐 帖子:99 积分:732 威望:0 精华:0 注册:2014/6/11 15:06:00
  发帖心情 Post By:2014/7/30 14:50:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:售后服务管理系统v1.3.table

  图表分析窗口

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


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

 哪里有对应的控件啊!

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


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

 你是不是这个意思?


Dim Filter As String
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        Filter = Filter & "型号 like '*" & .Value & "*'"
         End If
End With

With e.Form.Controls("StartDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "接修日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("EndDate")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "接修日期 <= #" & .Value & "#"
    End If
End With

Dim g As New GroupTableBuilder("统计表1", DataTables("检测维修单"))
g.Groups.AddDef("故障")
g.Totals.AddDef("业务编号", AggregateEnum.Count, "数量")

g.Filter = Filter
g.Build()


MainTable = Tables("统计表1")

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("统计表1") '定义一个变量t引用数据表
Dim sm As Integer = t.Compute("Sum(数量)") '计算总数量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For Each r As Row In t.Rows
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = r("故障") & "(" & r("数量") & ")" '设置图系的标题
    Series.Y(0) = r("数量") '指定值
    Series.DataLabelText = Math.Round(r("数量")*100/sm,2) & "%" '计算百分比
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)


 回到顶部
帅哥哟,离线,有人找我吗?
青岛立邦达
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:99 积分:732 威望:0 精华:0 注册:2014/6/11 15:06:00
  发帖心情 Post By:2014/7/30 15:22:00 [只看该作者]

恩,我的思路是先筛选 日期和姓名  然后根据故障的数量来做表 ,但是出来的图表,打上日期却没用

<!--EndFragment-->


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


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

  看4楼,看5楼。

 回到顶部
帅哥哟,离线,有人找我吗?
青岛立邦达
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:99 积分:732 威望:0 精华:0 注册:2014/6/11 15:06:00
  发帖心情 Post By:2014/7/30 15:40:00 [只看该作者]

参照5楼代码以后:

第一次点击查询以后能出现结果,
但是再点一下查询就乱了,成两倍的了。
然后在这个基础上,重新选择日期,全部都乱了。

也就是在查询完以后的基础上 再选择条件就不能查了


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


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

Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)

 

改成

 

Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
Chart.SeriesList.Clear

 


 回到顶部