-- 作者: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
|