以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  类似流水帐的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=28065)

--  作者:hpingpp
--  发布时间:2013/1/17 16:30:00
--  类似流水帐的问题

以下代码第二行计算不正确,drs(i)("E34") = 2倍 SU  ,

 

    Case "E30","E31","E16"
        Dim dr As DataRow
        Dim drs As List(of DataRow)
         Dim Su As Single
        dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") \'找出上一行
        If dr Is Nothing Then \'如果没有找到上一行,说明本行就是第一行
   e.DataRow("E34") = e.DataRow("E8") / e.DataRow("E30") / e.DataRow("E31") / e.DataRow("E16")
  Dim Lng As Integer = Math.Ceiling(Su)
            e.DataRow("E33") = DataTables("JF").DataRows(0)("E32").AddDays(Lng-1)
            dr = e.DataRow
        End If   
    Su = dr("E34")
    drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey"), "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1 \'重算余下行的余额
   Su = Su + drs(i)("E8") / (drs(i)("E30") * drs(i)("E31") * drs(i)("E16"))
   drs(i)("E34") = Format(Su,"0.0")
        Next


--  作者:lin_hailun
--  发布时间:2013/1/17 16:37:00
--  
 呃,请上传数据表。