以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  同表中相同条件的计数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119241)

--  作者:DLW77
--  发布时间:2018/5/21 12:51:00
--  同表中相同条件的计数
Select Case e.DataCol.Name
    Case "生产入库单号","主件品号","子件品号","耗用量"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("生产入库单号") OrElse dr.IsNull("主件品号") Then
            dr("单价") = Nothing
        Else
            Dim filter1 As String
            filter1 = "成品品号 = \'" & dr("主件品号") & "\' And 半成品品号 = \'" & dr("子件品号")  & "\'"
            pr = DataTables("半成品成本").Find(filter1)
            If pr IsNot Nothing Then
                dr("半成品单价") = pr("成本单价")
Else
                dr("半成品单价") = 0
            End If
        End If
End Select

我已经在跨表的“半成品成本表”中提取了单价,但我只想把列为[生产入库单]+[来源单号]+[子件品号]开头为8-0,的单价,只取一个,其他为O,这个代码要怎么写?
图片点击可在新窗口打开查看此主题相关图片如下:f0w6euc~mt3p3}b0)f)d7.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2018/5/21 14:41:00
--  

没看懂你要表达的意思。

 

你要得到什么结果?目前得到的什么结果?

 

不然请上传实例测试。


--  作者:DLW77
--  发布时间:2018/5/21 17:41:00
--  
我分开说可能比较清楚点。我是想把这三个列给合成一个条件[生产入库单]&[来源单号]&[子件品号],而且子件品号开头是8-0的才组合。以我刚发的图为例:WF2018010200002W02017122000018-0101-235,把这个算一下有多少个数。
然后图上的半成品单价,要来是三行都是1.8/1.8/1.8,但我只想像图中一样,只取一个1.8,下面那两个是0

--  作者:有点甜
--  发布时间:2018/5/21 17:51:00
--  

没看懂你组合的意思,组合后你要做什么?把数据显示到哪里?

 

获取单价的问题,参考


Select Case e.DataCol.Name
    Case "生产入库单号","主件品号","子件品号","耗用量"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("生产入库单号") OrElse dr.IsNull("主件品号") Then
            dr("单价") = Nothing
        Else
            Dim filter1 As String
            filter1 = "成品品号 = \'" & dr("主件品号") & "\' And 半成品品号 = \'" & dr("子件品号")  & "\'"
            pr = DataTables("半成品成本").Find(filter1)
            Dim drs = e.DataTable.Select("生产入库单号=\'" & e.DataRow("生产入库单号") & "\' and 来源单号=\'" & e.DataRow("来源单号") & "\' and 子件品号=\'" & e.DataRow("子件品号") & "\'", "_Identify")
            For i As Integer = 0 To drs.count-1
                If i = 0 Then
                    drs(i)("半成品单价") = pr("成本单价")
                Else
                    drs(i)("半成品单价") = 0
                End If
            Next
        End If
End Select


--  作者:DLW77
--  发布时间:2018/5/22 9:55:00
--  重置列后出现这个错误信息
错误所在事件:表,生产入库耗料明细表, DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

--  作者:有点甜
--  发布时间:2018/5/22 10:46:00
--  
Select Case e.DataCol.Name
    Case "生产入库单号","主件品号","子件品号","耗用量"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("生产入库单号") OrElse dr.IsNull("主件品号") Then
            dr("单价") = Nothing
        Else
            Dim filter1 As String
            filter1 = "成品品号 = \'" & dr("主件品号") & "\' And 半成品品号 = \'" & dr("子件品号")  & "\'"
            pr = DataTables("半成品成本").Find(filter1)
            If pr Is Nothing Then
                msgbox("没找到")
            Else
                Dim drs = e.DataTable.Select("生产入库单号=\'" & e.DataRow("生产入库单号") & "\' and 来源单号=\'" & e.DataRow("来源单号") & "\' and 子件品号=\'" & e.DataRow("子件品号") & "\'", "_Identify")
                For i As Integer = 0 To drs.count-1
                    If i = 0 Then
                        drs(i)("半成品单价") = pr("成本单价")
                    Else
                        drs(i)("半成品单价") = 0
                    End If
                Next
            End If
        End If
End Select

--  作者:DLW77
--  发布时间:2018/5/22 12:07:00
--  
图片点击可在新窗口打开查看解决了,谢谢。