Foxtable(狐表)用户栏目专家坐堂 → 图表排序


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

主题:图表排序

美女呀,离线,留言给我吧!
东方威思顿
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:50 积分:445 威望:0 精华:0 注册:2018/8/27 17:33:00
  发帖心情 Post By:2019/4/30 9:44:00 [只看该作者]

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


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


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

 

    Series1.DataLabelText = Math.Round(Series1.Y(0)*100/sm1,2) & "%" '计算百分比


 回到顶部
美女呀,离线,留言给我吧!
东方威思顿
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:50 积分:445 威望:0 精华:0 注册:2018/8/27 17:33:00
  发帖心情 Post By:2019/4/30 11:54:00 [只看该作者]

老师,您好,我想再增加一个根据日期进行选择,如果这个月没有数据录入的话显示一个对话框,但提示错误:错误信息为.NET Framework 版本:2.0.50727.8800
Foxtable 版本:2018.10.9.1
错误所在事件:窗口,不合格批次(2月),AfterLoad
详细错误信息:
该字符串未被识别为有效的 DateTime。
红色字体为新增加的编码,请帮忙看看是哪里出错了
Dim d As Date = Date.Today
Dim d1 As Date = new Date(d.Year, 02, 01)
Dim d2 As Date = new Date(d.year, 02, 28)
Dim Filter = "[日期] >= #" & d1 & "# And [日期] <= #" & d2 & "#"
Dim dr As DataRow
dr=DataTables("物料不合格明细").find("日期 = #" & filter & "#")
If dr IsNot Nothing Then
    Dim g As New GroupTableBuilder("统计表1", DataTables("物料不合格明细"))
    g.Filter = "日期 >= '" & Format(d1, "MM.dd") & "' and 日期 < '" & Format(d2, "MM.dd") & "'"
    g.Groups.AddDef("供应商")
    g.Totals.AddDef("供应商", AggregateEnum.Count, "不合格批次")
    Tables("不合格批次(2月)_Table1").DataSource = g.BuildDataSource()
    Tables("不合格批次(2月)_Table1").sort = "不合格批次 desc"
    Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim t As Table = Tables("不合格批次(2月)_Table1") '定义一个变量t引用数据表
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
    Chart.ChartType = ChartTypeEnum.Bar '图表类型该为Bar(条形)
    Chart.HeaderText = d1.month & "月份前供应商前20名不合格批次"
    Chart.AxisX.Major = 2
    Chart.AxisY.Major = 2
    Chart.SeriesList.Clear() '清除图表原来的图系
    Chart.AxisX.ClearValueLabel
    Series = Chart.SeriesList.Add() '增加第一个图系
    Series.Length = t.Rows.Count '图系的数据点数等于表的行数
    Dim count = iif(t.Rows.count > 20, 20, t.Rows.count)
    Series.X(0) = 0 '指定水平坐标
    Series.Y(0) = 0
    Chart.AxisX.SetValueLabel(0, "")
    For i As Integer = 0 To count- 1 '指定每个数据点的位置
        Series.X(i+1) = i+1 '指定水平坐标
        Series.Y(i+1) = t.Rows(i)("不合格批次") '指定垂直坐标
        Chart.AxisX.SetValueLabel(i+1, t.Rows(i)("供应商"))
    Next
    Chart.SeriesList(0).fillcolor = Color.Green
    chart.AxisX.GridMajorVisible=False
    chart.AxisY.GridMajorVisible=False
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
    Series.DataLabelText = "{#YVAL}"
    Chart.AxisX.AnnoRotation = -45 'X轴标示逆时针旋转45度
    Dim g1 As New GroupTableBuilder("统计表2", DataTables("物料不合格明细"))
    g1.Filter = "日期 >= '" & Format(d1, "MM.dd") & "' and 日期 < '" & Format(d2, "MM.dd") & "'"
    g1.Groups.AddDef("缺陷类别")
    g1.Totals.AddDef("缺陷类别", AggregateEnum.Count, "不良批次")
    Tables("不合格批次(2月)_Table2").DataSource = g1.BuildDataSource()
    Tables("不合格批次(2月)_Table2").sort = "不良批次 desc"
    Dim filter1 As String = "日期 >= '" & Format(d1, "MM.dd") & "' and 日期 < '" & Format(d2, "MM.dd") & "'"
    Dim Chart1 As WinForm.Chart = e.Form.Controls("Chart2")
    Dim Series1 As WinForm.ChartSeries '定义一个图系变量
    Dim tbl1 As DataTable = DataTables("物料不合格明细") '定义一个变量tbl引用数据表
    Dim lst1 As List(Of String) = tbl1.GetValues("缺陷类别", filter1) '获得产品名称集合
    Dim sm1 As Integer = tbl1.Compute("count(缺陷类别)", filter1) '计算总数量
    Chart1.VisualEffect = True
    Chart1.ChartType = ChartTypeEnum.pie '设置图表类型
    Chart1.HeaderText = d1.month & "月"
    For Each gys As String In lst1
        Series1 = Chart1.SeriesList.Add() '增加一个图系
        Series1.Length = 1 '一个系列只能包括一个值
        Series1.Text = gys
        Series1.Y(0) = tbl1.Compute("count(缺陷类别)", "缺陷类别='" & gys & "' and " & filter1)
        Series1.DataLabelText = Math.Round(Series1.Y(0)*100/sm1,2) & "%" '计算百分比
    Next
    Chart1.LegendVisible = True '显示图列
    Chart1.LegendCompass= CompassEnum.East '图列显示在东方(右方)
    Dim tr As WinForm.TreeView
    tr = Forms("不合格批次(2月)").Controls("TreeView1")
    tr.Nodes(0).ExpandAll()
    tr.Nodes(0).Nodes(0).Nodes(1).Ic
Else
    MessageBox.Show("您选择的月份无不合格数据,请及时录入","提示")
End If

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


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

dr=DataTables("物料不合格明细").find("日期 = #" & filter & "#")

 

改成

 

dr=DataTables("物料不合格明细").find(filter)


 回到顶部
总数 24 上一页 1 2 3