以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教统计  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=102195)

--  作者:xusuyang
--  发布时间:2017/6/14 22:50:00
--  请教统计

老师:您好!

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

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

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

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

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

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


--  作者:xusuyang
--  发布时间: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


--  作者:有点色
--  发布时间:2017/6/14 23:16:00
--  

1、2、4 http://www.foxtable.com/webhelp/scr/1454.htm

 

5、http://www.foxtable.com/webhelp/scr/1607.htm

 


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


--  作者:有点色
--  发布时间:2017/6/15 14:45:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成都跃康贸易有限公司.table