以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  设备任务统计异常  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186054)

--  作者:nuoyan89
--  发布时间:2023/4/4 10:06:00
--  设备任务统计异常
老师,如图1,使用设备为ZK-A-01的,生产任务总表中从4月12号开始就没有生产任务了(如图2),但是确统计出结果了如图1,正确的情况是4月12日开始这台机床生产任务为空白的,代码如下,请帮忙看看,谢谢
表事件代码:
If e.DataCol.Name = "使用设备"  Then
    Dim dict As new Dictionary(of String,String)
    For i As Integer = 1 To 31
        e.DataRow("日" & i) = Nothing
        Dim dc As DataCol = e.DataTable.DataCols("日" & i)
        dict.Add(dc.Caption,dc.Name)
    Next
    Dim b As New SQLGroupTableBuilder("统计表1","生产任务总表")
    b.C
    b.Groups.AddDef("使用设备")
    b.Groups.AddDef("生产日期",DateGroupEnum.None)
    b.Totals.AddDef("生产任务")
    b.Filter = "使用设备 = \'" & e.DataRow("使用设备") & "\'"
    Dim dt As DataTable = b.Build(True)
    For Each dr As DataRow In dt.DataRows
        Dim cn As String = format(dr("生产日期"),"MM-dd")
        If dict.ContainsKey(cn)
            e.DataRow(dict(cn)) = dr("生产任务")
        End If
    Next
End If
查询按钮代码:
Dim Cols1() As String = {"使用设备","设备名称"}
Dim Cols2() As String = {"使用设备","设备名称"}
For Each dr1 As DataRow In DataTables("设备状态表").sqlSelect("[使用设备] like \'%A%\' and [使用状态] = \'使用中\'")
     Dim dr2 As DataRow = DataTables("设备分配表_设备运行").AddNew()
     For i As Integer = 0 To Cols1.Length -1
         dr2(Cols2(i)) = dr1(Cols1(i))
     Next
 Next

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

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



--  作者:有点蓝
--  发布时间:2023/4/4 10:24:00
--  
目录窗口执行下面代码,看生成的统计表是怎么样的

Dim b As New SQLGroupTableBuilder("统计表1","生产任务总表")
    b.C
    b.Groups.AddDef("使用设备")
    b.Groups.AddDef("生产日期",DateGroupEnum.None)
    b.Totals.AddDef("生产任务")
    b.Filter = "使用设备 = \'" & e.DataRow("使用设备") & "\'"
b.Build()