以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  带日期时分的数据引用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192756)

--  作者:nuoyan89
--  发布时间:2024/7/19 11:58:00
--  带日期时分的数据引用

老师,我现在有现使用代码如下,进行统计加工数量,我想用变更后代码这种代码方式统计,因为是 时间段(格式:datetime),不知道咋发操作了,请帮忙看看,谢谢!
现使用代码:
    Dim Filter As String = "[生产批次] = \'" & e.DataRow("生产批次") & "\' and [加工工序] = \'" & e.DataRow("加工工序") & "\' and [加工次数] = \'" & e.DataRow("加工次数") & "\' and [使用设备] = \'" & e.DataRow("使用设备")& "\' and [配刀单号] = \'" & e.DataRow("配刀单号")& "\'and [扫描日期] < =\'" & e.DataRow("还刀日期")& "\'and [扫描日期] >= \'" & e.DataRow("实际领刀日期") & "\'"
    e.DataRow("加工数量") = DataTables("工序跟踪表").SQLCompute("Sum(合格品)", Filter)

变更后代码:
Dim sql1 As String = "Sel ect * from 工序跟踪表 as a1 where exists(s elect * from 计划领用刀具 as b1 where " & Forms("刀具归还确认").controls("计划明细").Table.DataTable.LoadFilter & " And a1.生产批次 = b1.生产批次 And  a1.加工次数 = b1.加工次数 And  a1.配刀单号 = b1.配刀单号 And a1.使用设备 = b1.使用设备 And a1.加工工序 = b1.加工工序)" 
Dim b1 As New GroupTableBuilder("统计表", sql1, "条码扫描系统数据库")
b1.Groups.AddDef("扫描日期", DateGroupEnum.Minute)
b1.Groups.AddDef("生产批次") \'根据产品分组
b1.Groups.AddDef("加工次数") \'根据产品分组
b1.Groups.AddDef("使用设备") \'根据产品分组
b1.Groups.AddDef("配刀单号") \'根据产品分组
b1.Groups.AddDef("加工工序") \'根据产品分组
b1.Totals.AddDef("合格品") \'添加数量列用于统计
Dim dt1 As DataTable = b1.Build(True)
Dim dr2 As DataRow
For Each dr3 As Row In Tables("刀具归还确认_计划明细").Rows
    dr2 = dt1.find("生产批次 = \'" & dr3("生产批次") & "\' and 加工工序 = \'" & dr3("加工工序") & "\' and 加工次数 = \'" & dr3("加工次数") & "\' and 使用设备 = \'" & dr3("使用设备") & "\' and 配刀单号 = \'" & dr3("配刀单号") & "\'")
    If dr2 IsNot Nothing And dr3("加工数量") = Nothing Then
        dr3("加工数量") = dr2("合格品")
    End If
Next

--  作者:有点蓝
--  发布时间:2024/7/19 12:10:00
--  
请上传实例说明
--  作者:nuoyan89
--  发布时间:2024/7/21 11:23:00
--  
老师,请帮忙看看,谢谢!操作步骤:窗口管理 -- 刀具归还确认 ,打开窗口后,点击窗口表中“寿命计算”按钮,需要在工序跟踪表中按照时间段统计“合格品”的和,把结果对应的填充的计划领用刀具表的加工数量列中。代码从18行开始。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar



--  作者:有点蓝
--  发布时间:2024/7/21 20:16:00
--  
这种没有办法使用分组统计处理。只能是遍历窗口表所有行,逐行使用SQLCompute统计。

甚至都没有办法直接使用sql进行分组统计,因为有很多重复的行

--  作者:nuoyan89
--  发布时间:2024/7/21 21:52:00
--  
工序跟踪表中是有很多一样的,所以需要要统计这个时间段的合格品总数量,只是那个扫描日期不知道怎么设置?比如: 2024-3-7 07:07 到 2024-03-06 05:58 这种时间段的合格品合计,因为这个时间段是变动的,所以不能设置为固定得
--  作者:有点蓝
--  发布时间:2024/7/21 22:10:00
--  
和一楼的第一段代码的条件一样,把e.DataRow改为遍历的行就行