以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这是怎么回事?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8795)

--  作者:blackzhu
--  发布时间:2010/12/8 15:33:00
--  这是怎么回事?

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

 

 

 

  我按照例子的高效率流水账做的东西,为什么提示说没有"_sortkey"这一列


--  作者:狐狸爸爸
--  发布时间:2010/12/8 15:36:00
--  

请参考:

 

http://help.foxtable.com/topics/1791.htm

 


--  作者:czy
--  发布时间:2010/12/8 15:37:00
--  
点击菜单中的“设置标志列”看看启用插入行功能没有?
--  作者:blackzhu
--  发布时间:2010/12/8 15:40:00
--  

还有:

   Select Case e.DataCol.Name
    Case "出库日期"
        If e.DataRow.IsNull("出库日期")
            e.DataRow("出库日期")=""
        Else
            e.DataRow("出库月份")=Month(e.DataRow("出库日期"))
        End If
End Select

 

为什么出库日期为空值时  这个代码Month(e.DataRow("出库日期"))的值为1呢?


--  作者:狐狸爸爸
--  发布时间:2010/12/8 15:42:00
--  

这是正常的,日期列虽然为空,但是返回值不是空值,因为日期变量不存在空值,参考:

 

http://help.foxtable.com/topics/0395.htm

 

[此贴子已经被作者于2010-12-8 15:43:38编辑过]

--  作者:blackzhu
--  发布时间:2010/12/8 15:44:00
--  
是这个问题.
--  作者:blackzhu
--  发布时间:2010/12/8 15:45:00
--  
以下是引用狐狸爸爸在2010-12-8 15:42:00的发言:

这是正常的,日期列虽然为空,但是返回值不是控制,因为日期变量不存在空值,参考:

 

http://help.foxtable.com/topics/0395.htm

 

那老大,如果是1的话,人家是跟着这个计算的那不是跟着1月去计算了?


--  作者:blackzhu
--  发布时间:2010/12/8 15:46:00
--  
怎么解决?
--  作者:狐狸爸爸
--  发布时间:2010/12/8 15:51:00
--  
用IsNull判断某列是否为空啊,你不是已经这么做了吗?
--  作者:blackzhu
--  发布时间:2010/12/8 15:54:00
--  
以下是引用狐狸爸爸在2010-12-8 15:51:00的发言:
用IsNull判断某列是否为空啊,你不是已经这么做了吗?

   我的意思是如果是这样如果出库日期是空,出库月份就会变成1,如果我是按照出库月份计算的,那么不全部是按照1来计算了,这种情况怎么处理?删掉1,为空格?