以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]这样的统计如何实现?[已解决] (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=59294) |
-- 作者:rophy0952 -- 发布时间:2014/11/1 14:30:00 -- [求助]这样的统计如何实现?[已解决] 如图: 例子:
[此贴子已经被作者于2014-11-3 21:18:22编辑过]
|
-- 作者:czy -- 发布时间:2014/11/1 14:54:00 -- 分切工票信息表DataColChanged事件代码
|
-- 作者:rophy0952 -- 发布时间:2014/11/1 15:23:00 -- CZY:谢谢您的回复!因为成品检验记录表的数据是在分切工票信息表之后。如果是在分切工票信息的datacolchanged事件中录入代码的话,可能数据无法统计到。 |
-- 作者:czy -- 发布时间:2014/11/1 15:32:00 -- 你的生产单号应该是唯一的吧? 如果是唯一的,两表以生产单号建立关联,分切工票信息表为主表,当在子表的不良项目只数列输入数据时,用RaiseDataColChanged重算父行即可。 |
-- 作者:czy -- 发布时间:2014/11/1 16:09:00 -- 帮你写了一下
成品检验记录表DataColChanged事件 |
-- 作者:rophy0952 -- 发布时间:2014/11/3 14:01:00 -- 谢谢CZY,我将代码写入成品检验记录表DataColChanged事件中,但提示为错误,我找了一下,也没有要赋值到成品检验记录表的分切班组列呀?为什么会有这样的提示呢? .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2014.9.22.1 错误所在事件:表,成品检验记录表, DataColChanged 详细错误信息: 调用的目标发生了异常。 列“分切班组”不属于表 成品检验记录表。 |
-- 作者:有点甜 -- 发布时间:2014/11/3 14:15:00 -- 回复楼上。
我测试把两段代码分别拷贝进去没有报错啊。 |
-- 作者:rophy0952 -- 发布时间:2014/11/3 15:51:00 -- 好奇怪,我将其它代码注释后,再测试,也没有报错,再将注释的代码取消注释后,也没有报错。现在又出现另一个问题,就是如果下面这段代码中: dr = DataTables("分切工票信息").Find("[生产单号] = \'" & e.DataRow("生产单号") & "\' And 分切班组 = \'" & e.DataRow(e.DataCol.Name.Replace("只数","班组")) & "\'") 用Find去查找的话,只能查找前台的数据,如果是后台数据就找不到,如果改成SQLFind的话,也无法找到,最后“不良只数”那里为空。
|
-- 作者:有点甜 -- 发布时间:2014/11/3 16:00:00 -- 后台的就这样做。
Select Case e.DataCol.Name |
-- 作者:rophy0952 -- 发布时间:2014/11/3 16:21:00 -- 因为分切工票信息中的不良数量,只统计成品检验记录表中“不良项目“i”_责任”为“分切”的只数,我在代码中了一句判断(红色字),但是统计结果不对。 Select Case e.DataCol.Name
Case "不良项目1_只数","不良项目2_只数","不良项目3_只数","不良项目4_只数","不良项目5_只数","不良项目6_只数","不良项目7_只数","不良项目8_只数","不良项目9_只数","不良项目10_只数" Dim dr1 As DataRow dr1 = DataTables("分切工票信息").SQLFind("[生产单号] = \'" & e.DataRow("生产单号") & "\' And 分切班组 =\'"&e.DataRow(e.DataCol.Name.Replace("只数","班组")) & "\'") If dr1 IsNot Nothing Then Dim n As Double For i As Integer = 1 To 10 If e.DataRow("不良项目" & i & "_责任").Contains("分切") Then n = n + e.DataRow("不良项目" & i & "_只数") End If Next dr1("不良只数") = n dr1.Save End If End Select |