Foxtable(狐表)用户栏目专家坐堂 → 请教统计


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

主题:请教统计

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


加好友 发短信
等级:幼狐 帖子:100 积分:1120 威望:0 精华:0 注册:2017/5/3 18:40:00
请教统计  发帖心情 Post By:2017/6/14 22:50:00 [只看该作者]

老师:您好!

统计有以下问题未弄懂,请教:

      1、在“材料库入库出库明细表”中修改相应产品的入库、出库数量或产品批号时,需实现在“材料库存动态表”中同步修改?  不要出现在“材料库入库出库明细表”中修改相应产品的入库、出库数量或产品批号后,在“材料库存动态表”中还保留有修改前的?并且实现在“材料库存动态表”中同步形成“库存结余”多个产品唯一的最终统计?(即:在“材料库存动态表”显示多个产品的同一“产品库存编码”最终的统计呢?);

     2、如果将”材料库入库出库明细表”与“材料库存动态表”关联,在”材料库入库出库明细表(父表)”中的”产品信息_产品编号”、”出入库信息_入库数量”、”出入库信息_出库数量”等列中输入(或修改)相应的信息时,在“材料库存动态表(子表)”中显示多个产品的同一“产品库存编码”最终的统计?

    3、在“材料库入库出库明细表”中输入(或修改)相应产品的入库、出库数量或产品批号时(比如是在“材料库入库出库明细表”中的第一行输入),需实现在“材料库存动态表”中的第一行同时出现刚输入(或修改)的信息?此前出现的是在“材料库入库出库明细表”中的第一、二、三行输入,在“材料库存动态表”中出现的顺序分别为倒数第一、二、三行,为啥不能按顺序也从第一、二、三行显示?

     4、“材料出库单”一旦生成,如何在“材料库入库出库明细表”中的"出入库信息_出库数量”同步?如:“材料出库单”有一配件需50,在“材料库入库出库明细表”中的"出入库信息_出库数量”中同时显示50?

    5、“材料出库单”一旦生成,如何在生成打印?如上传的样式


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


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

“材料库入库出库明细表”中事件代码为;

If e.DataCol.Name = "配件信息_配件名称" OrElse e.DataCol.name = "配件信息_配件批号" OrElse e.DataCol.Name = "配件信息_规格" Then
    If e.DataRow.isnull("配件信息_配件名称") OrElse e.DataRow.isnull("配件信息_配件批号") OrElse e.DataRow.Isnull("配件信息_型号") Then
        e.DataRow("配件信息_配件库存编码") = Nothing
    Else
        e.DataRow("配件信息_配件库存编码") = e.DataRow("配件信息_配件批号") & GetPy(e.DataRow("配件信息_配件名称"), 1).ToUpper & "-" & e.DataRow("配件信息_型号") & "-" & e.DataRow("配件信息_配件规格")    & "-" &  e.DataRow("配件信息_备注").replace("*", "").Replace("/", "")
    End If
End If
Select Case e.DataCol.Name
    Case  "配件信息_配件库存编码","出入库信息_入库数量","出入库信息_出库数量"
        Dim bh As String = e.DataRow("配件信息_配件库存编码")
        If e.DataCol.Name = "配件信息_配件库存编码" Then bh = e.NewValue
        Dim drs  As  List(of DataRow)
        Dim Filter As String
        Filter =  "[_SortKey] >= " & e.DataRow("_SortKey") & " And [配件信息_配件库存编码] = '" & bh & "'"
        drs = e.DataTable.Select(Filter,"[_SortKey]")
        For Each dr As  DataRow  In drs
            Filter =  "[_SortKey] <= " & dr("_SortKey") & " And [配件信息_配件库存编码] = '" & dr("配件信息_配件库存编码") & "'"
            Dim Val1 As Double = e.DataTable.Compute("Sum(出入库信息_入库数量)",Filter)
            Dim Val2 As Double = e.DataTable.Compute("Sum(出入库信息_出库数量)",Filter)
            Dim Val3 As Double = e.DataTable.Compute("Sum(库存结余)",Filter & " And 出入库信息_入库数量 Is null And  出入库信息_出库数量 Is null")
            dr("库存结余") = Val1 - Val2 + val3
        Next
        Dim dr2 As DataRow = DataTables("材料库库存动态表").Find("配件信息_配件库存编码 = '" & bh & "'" )
        Dim fdr As DataRow
        If drs.Count >0 Then
            fdr = drs(drs.Count - 1)
        Else
            fdr = e.DataRow
        End If
        If dr2 Is Nothing Then
            dr2 = DataTables("材料库库存动态表").AddNew()
            dr2("配件信息_配件名称") = e.DataRow("配件信息_配件名称")
            dr2("配件信息_型号") = e.DataRow("配件信息_型号")
            dr2("配件信息_配件规格") = e.DataRow("配件信息_配件规格")
            dr2("配件信息_备注") = e.DataRow("配件信息_备注")
            dr2("配件信息_配件库存编码") = fdr("配件信息_配件库存编码")
            dr2("配件信息_配件批号") = fdr("配件信息_配件批号")
        End If
        dr2("库存结余") = fdr("库存结余")
        If e.DataCol.Name = "配件信息_配件库存编码" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue  Then
            Filter =  "[_SortKey] > " & e.DataRow("_SortKey") & " And [配件信息_配件库存编码] = '" & e.OldValue &  "'"
            drs = e.DataTable.Select(Filter,"[_SortKey]")
            For Each dr As  DataRow  In drs
                Filter =  "[_SortKey] <= " & dr("_SortKey") & " And [配件信息_配件库存编码] = '" & dr("配件信息_配件库存编码") & "'"
                Dim Val1 As Double = e.DataTable.Compute("Sum(出入库信息_入库数量)",Filter)
                Dim Val2 As Double = e.DataTable.Compute("Sum(出入库信息_出库数量)",Filter)
                Dim Val3 As Double = e.DataTable.Compute("Sum(库存结余)",Filter & " And 出入库信息_入库数量 Is null And 出入库信息_出库数量 Is null")
                dr("库存结余") = Val1 - Val2 + val3
            Next
            fdr = Nothing
            If drs.Count >0 Then
                fdr = drs(drs.Count - 1)
            Else
                fdr = e.DataTable.Find("[配件信息_配件库存编码] = '" & e.OldValue &  "'","[_SortKey] desc")
            End If
            If fdr IsNot Nothing
                dr2 = DataTables("材料库库存动态表").Find("配件信息_配件库存编码 = '" & e.OldValue & "'" )
                If dr2 Is Nothing Then
                    dr2 = DataTables("材料库存动态表").AddNew()
                    dr2("配件信息_配件名称") = e.DataRow("配件信息_配件名称")
                    dr2("配件信息_型号") = e.DataRow("配件信息_型号")
                    dr2("配件信息_配件规格") = e.DataRow("配件信息_配件规格")
                    dr2("配件信息_备注") = e.DataRow("配件信息_备注")
                    dr2("配件信息_配件库存编码") = fdr("配件信息_配件库存编码")
                    dr2("配件信息_配件批号") = fdr("配件信息_配件批号")
                End If
                dr2("库存结余") = fdr("库存结余")
            Else
                DataTables("材料库库存动态表").DeleteFor("配件信息_配件库存编码 = '" & e.OldValue & "'" )
            End If
        End If
    End  Select


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/14 23:16:00 [只看该作者]


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


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

     在“材料库入库出库明细表”中输入(或修改)相应产品的入库、出库数量或产品批号时(比如是在“材料库入库出库明细表”中的第一行输入),需实现在“材料库存动态表”中的第一行同时出现刚输入(或修改)的信息?此前出现的是在“材料库入库出库明细表”中的第一、二、三行输入,在“材料库存动态表”中出现的顺序分别为倒数第一、二、三行,为啥不能按顺序也从第一、二、三行显示?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成都跃康贸易有限公司.table


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/15 14:45:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成都跃康贸易有限公司.table


 回到顶部