Foxtable(狐表)用户栏目专家坐堂 → 同表中相同条件的计数


  共有2119人关注过本帖树形打印复制链接

主题:同表中相同条件的计数

美女呀,离线,留言给我吧!
DLW77
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1650 威望:0 精华:0 注册:2018/2/26 13:15:00
同表中相同条件的计数  发帖心情 Post By: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
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 14:41:00 [只看该作者]

没看懂你要表达的意思。

 

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

 

不然请上传实例测试。


 回到顶部
美女呀,离线,留言给我吧!
DLW77
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1650 威望:0 精华:0 注册:2018/2/26 13:15:00
  发帖心情 Post By:2018/5/21 17:41:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1650 威望:0 精华:0 注册:2018/2/26 13:15:00
重置列后出现这个错误信息  发帖心情 Post By:2018/5/22 9:55:00 [只看该作者]

错误所在事件:表,生产入库耗料明细表, DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1650 威望:0 精华:0 注册:2018/2/26 13:15:00
  发帖心情 Post By:2018/5/22 12:07:00 [只看该作者]

图片点击可在新窗口打开查看解决了,谢谢。

 回到顶部