Foxtable(狐表)用户栏目专家坐堂 → [求助]关于订单数量平均投产后统计的方法


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

主题:[求助]关于订单数量平均投产后统计的方法

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助]关于订单数量平均投产后统计的方法  发帖心情 Post By:2016/7/12 16:29:00 [显示全部帖子]

如图所示,订单一共有300个,需要分三天生产,每天生产100.,,,另一张订单数量400,需要分四天生产,每天生产100.需要统计得到第一天到第三天是200.第四天是100.并用图表方式表示出来。

右侧的表是统计表,现在是按计划开始日期来统计的,但9日实际上也是有需要生产的。

 


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2016/7/12 16:30:31编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2016/7/12 17:04:00 [显示全部帖子]

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

请查看,谢谢


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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2016/7/12 20:29:00 [显示全部帖子]

谢谢大红袍老师,这正是我想要的,但有小部分需要修改,修改后代码如下,希望对大家有用。

Dim dt1 As DataTable = DataTables("计划表_Smt统计表")
Dim dt As DataTable = DataTables("订单明细跟踪表")
Dim mind As Date = dt.Compute("min(SMT_开始生产_计划)", "")
Dim maxd As Date = dt.Compute("max(SMT_完成生产_计划)", "")
dt1.DeleteFor("")
Do While mind <= maxd
    Dim nr As DataRow = dt1.AddNew
    nr("日期") = mind
    Dim sum As Double = 0
    For Each dr As DataRow In dt.Select("SMT_开始生产_计划 <= #" & mind & "# and SMT_完成生产_计划 >= #" & mind & "#")
        Dim sp1 As TimeSpan = dr("SMT_完成生产_计划") - dr("SMT_开始生产_计划")
        Dim D1 As Integer = sp1.Days +1
        sum += dr("SMT_欠数") /d1
        'Dim sp2 As TimeSpan = cdate(dr("SMT_完成生产_计划")) - mind
        'sum += dr("SMT_欠数") * (sp2.TotalDays / sp1.TotalDays)
    Next
    nr("欠数") = sum
    mind = mind.AddDays(1)
Loop


Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("计划表_Smt统计表") '定义一个变量t引用数据表
Chart= e.Form.Controls("ChartSmt") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
'Chart.AxisX.Min=0
'Chart.AxisX.Max = 31
'Chart.AxisX.Major=1
chart.AxisX.ClearValueLabel

'Chart.Axisy.Min=100
'Chart.Axisy.Max = 1000
'Chart.Axisy.Major=100
Chart.ChartType = ChartTypeEnum.Bar
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = t.Rows.Count '图系的数据点数等于表的行数
For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = t.Rows(i)("欠数") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, format(t.Rows(i)("日期"), "dd")) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Series.DataLabelText = "{#YVAL}"
series.DataLabelCompass = LabelCompassEnum.North

 回到顶部