以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]表事件DataColChanged有错误。----新问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=40576)
|
-- 作者:hovi
-- 发布时间:2013/9/23 23:36:00
-- [求助]表事件DataColChanged有错误。----新问题
Select Case e.DataCol.Name Case "疫苗ID","入库(领用)"","出库(使用)" Dim drs As List(of DataRow) Dim Filter As String Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [疫苗ID] = \'" & e.DataRow("疫苗ID") & "\'" drs = e.DataTable.Select(Filter) For Each dr As DataRow In drs Filter = "[_SortKey] <= " & dr("_SortKey") & " And [疫苗ID] = \'" & dr("疫苗ID") & "\'" 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 = "疫苗ID" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then Filter = "[_SortKey] > " & e.DataRow("_SortKey") & " And [疫苗ID] = \'" & e.OldValue & "\'" drs = e.DataTable.Select(Filter) For Each dr As DataRow In drs Filter = "[_SortKey] <= " & dr("_SortKey") & " And [疫苗ID] = \'" & dr("疫苗ID") & "\'" 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
输入以上代码出现图中错误。请问哪里出问题了? 此主题相关图片如下:qq图片20130923233434.jpg
[此贴子已经被作者于2013-9-23 23:46:57编辑过]
|
-- 作者:hovi
-- 发布时间:2013/9/23 23:36:00
--
问题自己找出来了。。。不好意思。
|
-- 作者:程兴刚
-- 发布时间:2013/9/23 23:40:00
--
Case "疫苗ID","入库(领用)","出库(使用)"
您自己的代码多了一个双引号!
|
-- 作者:程兴刚
-- 发布时间:2013/9/23 23:41:00
--
您这样统计库存太累了!
|
-- 作者:hovi
-- 发布时间:2013/9/23 23:44:00
--
请问程老师有什么好办法么? 我是按帮助里改的。
如果我还想把库房分号代码应该怎么写?(1号库房 某产品 )
[此贴子已经被作者于2013-9-23 23:47:58编辑过]
|
-- 作者:程兴刚
-- 发布时间:2013/9/23 23:56:00
--
1、分批先进先出,理由:药品批号不一样,出厂合格证、有效期不一样,需要给提货人提供不同批次的合格证
2、按批次出库就好办了,通过出库操作事件编码,从最先进货一批开始往外出库,出完一批再出下一批,每出一次及时计算出库存,库存列实际应该在入库表中。
其实建筑材料也一样,您这个行业和我们的行业在库存管理上也应该算是通的,因为建筑材料的出厂合格证的提供和进场检验是很严格的,首先要给施工单位提供材料出厂合格证。
|
-- 作者:程兴刚
-- 发布时间:2013/9/24
--
您的第二个问题,可以肯定您不同的库房不应该出现相同的材料才算合理,增加一个库位号列,库位号编码规则反映处仓库号、货架号、货位号即可在出库时随时找到材料。
|
-- 作者:hovi
-- 发布时间:2013/9/24 0:03:00
--
不是您说的那个意思,
我们出库不完全遵循先进先出与出完一批再出下一批原则,而是根据数量需要进行合理搭配出库,因为同样药品(建筑行业的材料)有多供货厂商多批次,我们需要根据实际使用来出库。(药品的基础资料有另一个表体现)
所以在使用时需要根据不同人员管理下的药品进行单独库管理,即:假定每一个工作人员都有自己的一个药品库,最后再做相互之间调用的关系。
[此贴子已经被作者于2013-9-24 0:04:04编辑过]
|
-- 作者:hovi
-- 发布时间:2013/9/24 0:06:00
--
不同人员(不同库房)管理下可重复同样材料。
|
-- 作者:程兴刚
-- 发布时间:2013/9/24 0:23:00
--
看看我的处理,也许可以借鉴:
此主题相关图片如下:qq图片20130924001338.jpg
此主题相关图片如下:qq图片20130924002638.jpg
所谓先进先出,只是一个原则而已,也可以灵活处理的!
当出库材料代码改变后,会弹出一个窗口,罗列出入库表中所有库存大于0的同种材料,您可以任意选择您所想出库的那一笔材料,输入准备出库的数量,然后点击确定即可完成出库,但需要注意的是出库数量不允许大于该笔材料的库存数量,如果不够您所需出库的数量,则再出下一笔,增加一个出库明细,直到您出够为止,这样,出厂合格证等其他材料合格资料也随着各批次自动调出并打印,盖章后即可随出库材料包装并提供给提货人(此方法解决了建筑材料因叠压而不能先进先出——先进的被后进的压在下面了,则可以灵活性地选择出库)。
[此贴子已经被作者于2013-9-24 0:27:42编辑过]
|