以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]datacolchange里面没法定义控件 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=78663) |
-- 作者:huhu -- 发布时间:2015/12/14 16:42:00 -- [求助]datacolchange里面没法定义控件 我想在配货整理窗口勾线确定,右下角能自动统计出配货筛选明细表数量列求和的值。 想直接在datacolchange里面写代码,又没法直接定义控件。 有啥办法可以实现上面的要求? |
-- 作者:大红袍 -- 发布时间:2015/12/14 16:44:00 -- 谁说不能
If Forms("窗口1").Opened Then Forms("窗口1").Controls("Label1").Text = "123" End If |
-- 作者:大红袍 -- 发布时间:2015/12/14 16:44:00 -- 你也可以在窗口的timertick事件,写统计的代码。 |
-- 作者:huhu -- 发布时间:2015/12/14 17:01:00 -- Dim sum1,sum2 As Integer If e.DataCol.name = "确定" Then If e.DataRow("确定") = True Then Dim dr As DataRow dr = DataTables("库存明细表").find ("物料编码 = \'" & e.DataRow("物料编码") & "\' and 库位编码 = \'" & e.DataRow("库位编码") & "\' And 提示 = \'入库完成\'","SN") If dr IsNot Nothing Then For i As Integer = 1 To e.DataRow("预配货数量") Dim ndr As DataRow = DataTables("配货筛选明细表").AddNew() ndr("SN") = dr("SN") ndr("物料编码") = dr("物料编码") ndr("库位号") = dr("库位号") ndr("库位编码") = dr("库位编码") ndr("数量") = dr("数量") ndr("标志") = e.DataRow("_Identify") Next sum1 = sum1 + DataTables("配货筛选明细表").Compute("count([SN])","物料编码 = \'" & e.DataRow("物料编码") & "\' and 标志 = \'" & e.DataRow("_Identify") & "\'") If Forms("配货整理").Opened Then Forms("配货整理").Controls("实配货数量").Text = sum1 End If End If Else Dim drs As List(Of DataRow) = DataTables("配货筛选明细表").Select("物料编码 = \'" & e.DataRow("物料编码") & "\' and 标志 = \'" & e.DataRow("_Identify") & "\'") For i As Integer = drs.count - 1 To 0 Step -1 drs(i).delete Next sum2 = DataTables("配货筛选明细表").Compute("count([SN])","物料编码 = \'" & e.DataRow("物料编码") & "\' and 标志 = \'" & e.DataRow("_Identify") & "\'") If Forms("配货整理").Opened Then Forms("配货整理").Controls("实配货数量").Text = sum1 - sum2 End If End If End If 这样统计不对吗?
|
-- 作者:大红袍 -- 发布时间:2015/12/14 17:06:00 -- 条件有错吧?
sum1 = DataTables("配货筛选明细表").Compute("count([SN])","物料编码 = \'" & e.DataRow("物料编码") & "\'") |
-- 作者:huhu -- 发布时间:2015/12/14 17:09:00 -- 同样的物料编码在配货筛选明细表也有啊。总不能把所有的物料编码都统计进去。 只统计这一次的。
|
-- 作者:huhu -- 发布时间:2015/12/14 17:15:00 -- 应该这么理解,勾选第一行的确定时,根据条件物料编码 = \'" & e.DataRow("物料编码") & "\' and 标志 = \'" & e.DataRow("_Identify") & "\'统计出sum1数量2,显示也是2. 勾选第二行的确定时,根据条件物料编码 = \'" & e.DataRow("物料编码") & "\' and 标志 = \'" & e.DataRow("_Identify") & "\'统计出sum2数量1,显示sum应该为sum1+sum2显示为3才对。 如果去掉确定勾时,显示sum应该为sum1-sum2显示为1才对。 就是这样。 |
-- 作者:大红袍 -- 发布时间:2015/12/14 17:16:00 -- 那代码直接compute就行啊,不用加减啊 |
-- 作者:huhu -- 发布时间:2015/12/14 17:19:00 -- 应该这么理解,勾选第一行的确定时,根据条件物料编码 = \'" & e.DataRow("物料编码") & "\' and 标志 = \'" & e.DataRow("_Identify") & "\'统计出sum1数量2,显示也是2. 勾选第二行的确定时,根据条件物料编码 = \'" & e.DataRow("物料编码") & "\' and 标志 = \'" & e.DataRow("_Identify") & "\'统计出sum2数量1,显示sum应该为sum1+sum2显示为3才对。 如果去掉确定勾时,显示sum应该为sum1-sum2显示为1才对。 就是这样。
|
-- 作者:大红袍 -- 发布时间:2015/12/14 17:35:00 -- 1、打开窗口记录全部的值sum
2、计算所有的值,减去sum,就是窗口打开以后变化的值。 |