以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  帮忙注释下每行代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=82551)

--  作者:神一样的男人
--  发布时间:2016/3/20 12:42:00
--  帮忙注释下每行代码
帮忙注释下每行代码 看不懂 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码翻译.txt


--  作者:大红袍
--  发布时间:2016/3/21 0:09:00
--  

 看懂这部分即可,下面的不用看

 

 找到当前行的上一行

        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [产品] = \'" & mr("产品") & "\'", "[_SortKey] Desc")
        If dr Is Nothing Then \'如果没找到,直接计算
            jk =  DataTables("例子二").SQLCompute("Sum(入库)","[_SortKey] < " & mr("_SortKey") & " And 产品 = \'" & mr("产品") & "\'")
            ck =  DataTables("例子二").SQLCompute("Sum(出库)","[_SortKey] < " & mr("_SortKey") & " And 产品 = \'" & mr("产品") & "\'")
            mr("库存") = e.DataRow("入库") - e.DataRow("出库") + jk - ck
            dr = mr
        End If

 计算当前行一下的所有行,等于上一行的库存+本行入库-本行出库
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [产品] = \'" & dr("产品") & "\'", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("库存") = drs(i-1)("库存") + drs(i)("入库") - drs(i)("出库")
        Next