以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  不同日期的登记怎么分开求和  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=147861)

--  作者:profit
--  发布时间:2020/3/26 1:02:00
--  不同日期的登记怎么分开求和

就是我有两个表,其中一个是入库,一个是通信设备。我是在通信设备中增加行,同时入库表也会增加一行。

 

比如,我今天买了20部对讲机,那么品牌,型号是一样,但是对讲机ID不一样,那么在通信设备表中我要每个登记;然而,在入库表中却只显示一行信息,也就是说在入库表中只显示品牌,型号,类别和数量,这个数量就是20部。

 

过段时间我觉得这个牌子的对讲机好用,那么我有购买了10部,这里,还是和上面说的一样,今天买的要在入库表中要显示是今天入库的10部对讲机,而不是把数量加到上次的入库登记。

 

最终一句话,就是今天的入库登记和上次的入库登记要分开求和。通信设备表中始终要把每个设备分开登记。

 

这个该怎么写代码?求大神教教


--  作者:程兴刚
--  发布时间:2020/3/26 2:11:00
--  
增加一个备注列,多个编号用分隔符隔开备注!发放给某人时,从这个字段取值供选用!
--  作者:狐狸爸爸
--  发布时间:2020/3/26 8:44:00
--  
用关联表啊,一个入库表,一个入库明细表



--  作者:profit
--  发布时间:2020/3/26 14:44:00
--  

那该怎么写代码呢?


--  作者:profit
--  发布时间:2020/3/26 14:48:00
--  

用关联表数量列也得用Sum求和,那样的话和用这样的代码是一样的

 If e.DataCol.name = "物资名称" Then
            Dim kc As String = "[物资名称] = \'" & e.NewValue & "\'"
            e.DataRow("数量_入库") = DataTables("入库").Compute("sum(物资数量)", kc)
            e.DataRow("数量_出库") = DataTables("出库").Compute("sum(物资数量)", kc)
        End If
最主要的是,我今天入库的东西和明天入库的东西要按照入库时间分开,也就是要有两行。但是通信设备表里得要分为多行。


--  作者:profit
--  发布时间:2020/3/26 14:52:00
--  

我把通信设备表事件写的这个代码,这样我在通信设备表增加行时,入库表也会增加行,所以我想请教各位大神入库表的代码怎么写,才能按照日期来分行显示

Select Case e.DataCol.name
    Case "物资名称"
        Dim dr As DataRow = DataTables("入库").Find("物资名称 = \'" & e.OldValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("入库").AddNew()
            dr("物资分类") = e.DataRow("物资分类")
            dr("物资名称") = e.DataRow("物资名称")
            dr("物资品牌") = e.DataRow("物资品牌")
            dr("物资类别") = e.DataRow("物资类别")
            dr("物资数量") = e.DataRow("物资数量")
            dr("备注") = e.DataRow("备注")
            dr("物资图片") = e.DataRow("物资图片")
        Else
            dr("物资名称") = e.NewValue
        End If
    Case "物资分类","物资名称","物资品牌","物资类别","物资数量","物资图片","备注"
        Dim dr As DataRow = DataTables("入库").Find("物资名称 = \'" & e.DataRow("物资名称") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.NewValue
        End If
End Select


--  作者:有点蓝
--  发布时间:2020/3/26 15:15:00
--  
不是应该有个“入库时间”列吗?按入库时间列区分不就行了。
--  作者:profit
--  发布时间:2020/3/26 15:22:00
--  

用时间列会出错,有个提示我记不得是什么 = String,   好像是这样


--  作者:有点蓝
--  发布时间:2020/3/26 15:41:00
--  
重新测试,把完整出错提示、以及使用代码发上来
--  作者:profit
--  发布时间:2020/3/26 16:05:00
--  

Select Case e.DataCol.name
    Case "入库日期"
        Dim dr As DataRow = DataTables("入库").Find("入库日期 = \'" & e.OldValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("入库").AddNew()
            dr("物资分类") = e.DataRow("物资分类")
            dr("物资名称") = e.DataRow("物资名称")
            dr("物资品牌") = e.DataRow("物资品牌")
            dr("物资类别") = e.DataRow("物资类别")
            dr("物资数量") = e.DataRow("物资数量")
            dr("备注") = e.DataRow("备注")
            dr("物资图片") = e.DataRow("物资图片")
            dr("入库日期") = e.DataRow("入库日期")
        Else
            dr("入库日期") = e.NewValue
        End If
    Case "物资分类","物资名称","物资品牌","物资类别","物资数量","物资图片","备注","入库日期"
        Dim dr As DataRow = DataTables("入库").Find("物资名称 = \'" & e.DataRow("物资名称") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.NewValue
        End If
End Select

 

 

我不知道这个代码该怎么该,错误提示


图片点击可在新窗口打开查看此主题相关图片如下:1585209746(1).png
图片点击可在新窗口打开查看