Foxtable(狐表)用户栏目专家坐堂 → 请教产品耗料计算


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

主题:请教产品耗料计算

帅哥哟,离线,有人找我吗?
xusuyang
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:1120 威望:0 精华:0 注册:2017/5/3 18:40:00
请教产品耗料计算  发帖心情 Post By:2021/7/2 20:26:00 [只看该作者]

老师:您好!是不是前几天的"导尿包产品配置表"导尿包产品配件耗料表设计上有问题,今天我重新将两个表设计了一下。

1、从"导尿包产品配置表中可以看出:A、生产一个甲型“导尿包”是由1只导尿管1只引流袋1只导管夹等配件组成;B、生产一个乙型“导尿包”是由2只导尿管、2只引流袋、2只导管夹等配件组成;C生产一个乙型“导尿包”是由3只导尿管、3只引流袋、3只导管夹等配件组成
     2
、假设2021.7.10需生产一批导尿包,生产开单员于在"导尿包产品配件耗料表中填入:A、生产生产数量100甲型导尿包,用代码如何实现"导尿包产品配件耗料表“配件信息”中的“导尿管、引流袋、导管夹等的“类型、规格”自动填入“导尿管、引流袋、导管夹”等的“数量”100自动计算填入

B、生产生产数量200甲型导尿包,用代码如何实现"导尿包产品配件耗料表“配件信息”中的“导尿管、引流袋、导管夹等的“类型、规格”自动填入“导尿管、引流袋、导管夹”等的“数量”400自动计算填入             

C、生产生产数量150甲型导尿包,用代码如何实现"导尿包产品配件耗料表“配件信息”中的“导尿管、引流袋、导管夹等的“类型、规格”自动填入“导尿管、引流袋、导管夹”等的“数量”450自动计算填入

昨天老师帮我写的代码:

Select Case e.DataCol.Name

    Case "产品型号","生产数量"

        If e.DataRow.IsNull("产品型号") Then

            For Each dc As DataCol In  e.DataTable.DataCols

                If dc.Name Like "配件名称_*" Then

                    e.DataRow(dc.Name) = Nothing

                End If

            Next

        Else

            For Each dr As DataRow In DataTables("导尿包产品配置表").Select("数量_" & e.DataRow("产品型号") & " <> 0 and 配件名称 Is not null")

                e.DataRow("配件名称_" & dr("配件名称") & "_类型") = dr("类型")

                e.DataRow("配件名称_" & dr("配件名称") & "_数量") = dr("数量_" & e.DataRow("产品型号")) * e.DataRow("生产数量")

            Next

        End If

End Select

我复制到:"导尿包产品配件耗料表“datacolchanged事件后,

当我在"导尿包产品配件耗料表生产数量”输入100时,当我在导尿包产品配件耗料表产品型号列输入甲型时,提示为:

.NET Framework 版本:4.0.30319.42000

Foxtable 版本:2020.5.29.8

错误所在事件:表,导尿包产品配件耗料表,DataColChanged

详细错误信息:

调用的目标发生了异常。

未找到列 [_数量]

当我在"导尿包产品配件耗料表生产数量”输入100时,当我在导尿包产品配件耗料表产品型号列输入甲型时,提示为:

.NET Framework 版本:4.0.30319.42000

Foxtable 版本:2020.5.29.8

错误所在事件:表,导尿包产品配件耗料表,DataColChanged

详细错误信息:

调用的目标发生了异常。

未找到列 [甲型_数量]

今天还请老师帮我看看哪里有问题,谢谢!!!

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目2.foxdb


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


加好友 发短信
等级:幼狐 帖子:100 积分:1120 威望:0 精华:0 注册:2017/5/3 18:40:00
  发帖心情 Post By:2021/7/2 20:28:00 [只看该作者]

我的Foxtable的版本是2012.4.5前

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/3 9:42:00 [只看该作者]

那就相应改一下列名就行了

Select Case e.DataCol.Name
    Case "产品型号","生产数量"
        If e.DataRow.IsNull("产品型号") Then
            For Each dc As DataCol In  e.DataTable.DataCols
                If dc.Name Like "配件信息_*" Then
                    e.DataRow(dc.Name) = Nothing
                End If
            Next
        Else
            For Each dr As DataRow In DataTables("导尿包产品配置表").Select("产品型号_" & e.DataRow("产品型号") & " <> 0 and 配件信息_名称 Is not null")
                e.DataRow("配件信息_" & dr("配件信息_名称") & "_类型") = dr("配件信息_类型")
                e.DataRow("配件信息_" & dr("配件信息_名称") & "_数量") = dr("产品型号_" & e.DataRow("产品型号")) * e.DataRow("生产数量")
            Next
        End If
End Select

另外注意把【生产数量】列改为整数类型

 回到顶部