以文本方式查看主题 - 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行开始。
|
-- 作者:有点蓝 -- 发布时间: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改为遍历的行就行 |