以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  高手 帮我看看  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=20393)

--  作者:pengleping
--  发布时间:2012/6/7 10:57:00
--  高手 帮我看看

打开项目   库存表      点击入库单     吧相应的数据填写,   确定之后   就是数量 和  检验    填不到库存表的数量列   和检验列    想请高手帮我看看   是那里出错了      在资料先谢谢     了    19891022

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目88894.foxdb

--  作者:狐狸爸爸
--  发布时间:2012/6/7 11:01:00
--  

我想知道,你为什么不用绑定啊?


--  作者:狐狸爸爸
--  发布时间:2012/6/7 11:21:00
--  

数量列不能改,是因为你的DataColChanged事件中设置了代码:

 

Select Case e.DataCol.name
    Case "数量"
        e.DataRow("数量") = e.DataRow("初始库存")
    Case "数量"
        e.DataRow("金额") = e.DataRow("数量") * iif(e.DataRow.isnull("单价"),0,e.DataRow("单价"))
    Case "单价"
        e.DataRow("金额") = e.DataRow("单价") * iif(e.DataRow.isnull("数量"),0,e.DataRow("数量"))
End Select

 

红色的两行,应该删除之。

 

至于检验,你的代码根本就没有向检验列写入数据的。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目88894.foxdb


--  作者:25471241
--  发布时间:2012/6/7 16:25:00
--  

Select Case e.DataCol.Name
    Case "产品","入库","出库"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [产品] = \'" & mr("产品") & "\'", "[_SortKey] Desc")
        If dr Is Nothing Then \'如果没有上一行,说明本行就是同产品的第一行
            mr("库存") = mr("入库") - mr("出库")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [产品] = \'" & dr("产品") & "\'")
        For i As Integer = 1 To drs.Count - 1 \'重算余下行的余额
            drs(i)("库存") = drs(i-1)("库存") + drs(i)("入库") - drs(i)("出库")
        Next
End Select

 

 

请问着段代码有什么问题

执行时是错误的

在线等谢谢~~~


--  作者:25471241
--  发布时间:2012/6/8 13:55:00
--  

没人帮忙回答吗?