以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 老师请教编码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100626) |
-- 作者:xusuyang -- 发布时间:2017/5/15 14:18:00 -- 老师请教编码 请问老师“材料库库存表”中
1.如何实现“材料名称”加“材料规格”自动生成材料编码,如“材料名称”是语文书,“材料规格”为25*15,自动生成材料编码“YWS2515” ? 2.“材料库库存表”中如何实现自动计算出结余?如上年结余1500,今年1月1日入库500,今年1月8日出库300,库存结余1700? If e.DataCol.Name = "配件名称" Then If e.DataRow.IsNull("配件名称") Then e.DataRow("配件编码") = Nothing Else e.DataRow("产品编码") = GetPy(e.DataRow("产品名称"), 1) End If End If Select Case e.DataCol.Name Case "配件信息_配件名称","出入库信息_入库数量","出入库信息_出库数量" Dim drs As List(of DataRow) Dim Filter As String Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [配件信息_配件名称] = \'" & e.DataRow("配件信息_配件名称") & "\'" drs = e.DataTable.Select(Filter) 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) dr("库存结余") = Val1 - Val2 Next 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) 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) dr("库存结余") = Val1 - Val2 Next End If End Select 为啥配件编码不能显示? |
-- 作者:有点蓝 -- 发布时间:2017/5/15 14:51:00 -- 1、 If e.DataCol.Name = "配件名称" Then If e.DataRow.IsNull("配件名称") Then e.DataRow("配件编码") = Nothing Else e.DataRow("配件编码") = GetPy(e.DataRow("配件名称"), 1) End If End If 2、做个例子上传看看
|
-- 作者:有点色 -- 发布时间:2017/5/15 15:00:00 -- 第二个问题,你为什么要合计结余? Dim Val1 As Double = e.DataTable.Compute("Sum(库存结余)",Filter)
每次统计,都是入库减去出库就行了。
如果你有一个结余数据,需要加入统计,应该用备注列备注为手动录入,这样,再统计这类的数据就好了。 |