以文本方式查看主题

-  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=12140)

--  作者:blackzhu
--  发布时间:2011/8/24 10:02:00
--  求个代码
合同编号      月份                  期初           新增          退             期末
0001           1                     1000                                         1000
0001           1                                     1000                         2000
0001           1                                                    500            2500
0001           2                     2500
0001           3                     2500


每一个月的第一次发生, 期初都等于同一个合同编号的上一个月最后一次发生的期末.

--  作者:c
--  发布时间:2011/8/24 10:13:00
--  
Dim a As Double = Tables("表A").Rows.Count -1
For i As Double = 1  To a
   Tables("表A").Rows(i)("第三列")= Tables("表A").Rows(i-1)("第一列")
Next

--  作者:blackzhu
--  发布时间:2011/8/24 10:19:00
--  
你这个代码有问题的,没有判断月份和合同编号,只是下一行等于上一行.
--  作者:c
--  发布时间:2011/8/24 10:24:00
--  

我这个只是简单写的啊,具体的判断你自己加喽!图片点击可在新窗口打开查看


--  作者:blackzhu
--  发布时间:2011/8/24 10:30:00
--  
我写的比你好.只是在找一个按月份走的代码怎么测试也不行.
--  作者:c
--  发布时间:2011/8/24 10:32:00
--  

你能否把你写的也共享下?我也要学习图片点击可在新窗口打开查看

 

还有能否提供文件?


--  作者:程兴刚
--  发布时间:2011/8/24 10:33:00
--  
以下是引用blackzhu在2011-8-24 10:30:00的发言:
我写的比你好.只是在找一个按月份走的代码怎么测试也不行.

 

      那还得靠您自己动手,多演练几遍即可!


--  作者:c
--  发布时间:2011/8/24 10:45:00
--  

修改了下,需要将月份设置为  “数字” 列  : 

 

Dim a As Double = Tables("表A").Rows.Count -1
For i As Double = 1  To a
    Dim x As Row =Tables("表A").Rows(i) \'下一行
    Dim s As Row =Tables("表A").Rows(i-1) \'上一行
    \'output.show(x("月份") & " " & s("月份"))
    If x("合同编号")=s("合同编号") And x("月份") - s("月份") =1 Then
        x("期初")=s("期尾")
    End If
Next

[此贴子已经被作者于2011-8-24 10:52:23编辑过]

--  作者:blackzhu
--  发布时间:2011/8/24 11:09:00
--  
这个代码不行!我贴上我的代码.

Dim bjs As List(Of String) = DataTables("本金").GetUniqueValues("","月份")
        For Each bj As String In bjs
            Dim drs As List(Of DataRow) = DataTables("本金").Select("客户编号=\'" & e.DataRow("客户编号") & "\'And 月份=\'" & e.DataRow("月份") & "\'")
            For n As Integer = 0 To drs.Count - 1              
                    If n > 0 AndAlso drs(n)("月份")= drs(n)("月份") Then
                        drs(n)("期初余额") = drs(n-1)("期末余额")            
                End If
            Next
        Next

    
图片点击可在新窗口打开查看此主题相关图片如下:tm截图未命名-1.jpg
图片点击可在新窗口打开查看

  我想的效果:
 
图片点击可在新窗口打开查看此主题相关图片如下:tm截图未命名-2.jpg
图片点击可在新窗口打开查看

--  作者:blackzhu
--  发布时间:2011/8/24 11:10:00
--  
看期初金额那个.