Foxtable(狐表)用户栏目专家坐堂 → 求助:流水账代码


  共有3298人关注过本帖树形打印复制链接

主题:求助:流水账代码

帅哥哟,离线,有人找我吗?
有点甜
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/15 11:34:00 [只看该作者]

 例子发上来。

 回到顶部
帅哥哟,离线,有人找我吗?
爱相随
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/7/15 11:40:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:高科统计台账表.table

[此贴子已经被作者于2014-7-15 11:39:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
爱相随
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/7/15 11:44:00 [只看该作者]

已经发上来了,请老师下载帮我完善一下。还有老师,例子里的“项目信息表”里的“工程进度”我要取自“进度信息表”里的满足“项目名称”和“工程单位名称”的最后日期(月份)的“累计进度”
[此贴子已经被作者于2014-7-15 11:45:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/15 11:54:00 [只看该作者]

 代码

 

Select Case e.DataCol.Name
    Case "项目名称","工程单位名称","费用类别","费用类别1","进度金额"
        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("项目名称") & "' And [工程单位名称] = '" & mr("工程单位名称") & "' And [费用类别] = '" & mr("费用类别") & "' And [费用类别1] = '" & mr("费用类别1") & "'", "[_SortKey] Desc")
        If dr Is Nothing Then
            mr("累计进度") = mr("进度金额")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [项目名称] = '" & dr("项目名称") & "' And [工程单位名称] = '" & dr("工程单位名称") & "' And [费用类别] = '" & dr("费用类别") &  "' And [费用类别1] = '" & dr("费用类别1") & "'", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("累计进度") = drs(i-1)("累计进度") + drs(i)("进度金额")
        Next
        If e.DataCol.Name = "项目名称" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [项目名称] = '" & e.OldValue & "' And [工程单位名称] = '" & e.DataRow("工程单位名称") & "' And [费用类别] = '" & e.DataRow("费用类别") &  "' And [费用类别1] = '" & e.DataRow("费用类别1") & "'", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[项目名称] = '" & e.OldValue & "'  And [工程单位名称] = '" & e.DataRow("工程单位名称") & "' And [费用类别] = '" & e.DataRow("费用类别") &  "' And [费用类别1] = '" & e.DataRow("费用类别1") & "'", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("累计进度") = dr("进度金额")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [项目名称] = '" & dr("项目名称") & "' And [工程单位名称] = '" & dr("工程单位名称") & "' And [费用类别] = '" & dr("费用类别") & "' And [费用类别1] = '" & dr("费用类别1") & "'", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("累计进度") = drs(i-1)("累计进度") + drs(i)("进度金额")
                Next
            End If
        End If
        If e.DataCol.Name = "费用类别1" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [项目名称] = '" & e.DataRow("项目名称") & "' And [工程单位名称] = '" & e.DataRow("工程单位名称") & "' And [费用类别] = '" & e.DataRow("费用类别") &  "' And [费用类别1] = '" & e.Oldvalue & "'", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[项目名称] = '" & e.DataRow("项目名称") & "' And [工程单位名称] = '" & e.DataRow("工程单位名称") & "' And [费用类别] = '" & e.DataRow("费用类别") &  "' And [费用类别1] = '" & e.Oldvalue & "'", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("累计进度") = dr("进度金额")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [项目名称] = '" & dr("项目名称") & "' And [工程单位名称] = '" & dr("工程单位名称") & "' And [费用类别] = '" & dr("费用类别") & "' And [费用类别1] = '" & dr("费用类别1") & "'", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("累计进度") = drs(i-1)("累计进度") + drs(i)("进度金额")
                Next
            End If
        End If
        If e.DataCol.Name = "费用类别" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [项目名称] = '" & e.DataRow("项目名称") & "' And [工程单位名称] = '" & e.DataRow("工程单位名称") & "' And [费用类别] = '" & e.OldValue  &  "' And [费用类别1] = '" & e.DataRow("费用类别1") & "'", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[项目名称] = '" & e.DataRow("项目名称") & "' And [工程单位名称] = '" & e.DataRow("工程单位名称") & "' And [费用类别] = '" & e.OldValue  &  "' And [费用类别1] = '" & e.DataRow("费用类别1") & "'", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("累计进度") = dr("进度金额")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [项目名称] = '" & dr("项目名称") & "' And [工程单位名称] = '" & dr("工程单位名称") & "' And [费用类别] = '" & dr("费用类别") & "' And [费用类别1] = '" & dr("费用类别1") & "'", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("累计进度") = drs(i-1)("累计进度") + drs(i)("进度金额")
                Next
            End If
        End If
        If e.DataCol.Name = "工程单位名称" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [项目名称] = '" & e.DataRow("项目名称") & "' And [工程单位名称] = '" & e.OldValue & "' And [费用类别] = '" & e.DataRow("费用类别") &  "' And [费用类别1] = '" & e.DataRow("费用类别1") & "'", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[项目名称] = '" & e.DataRow("项目名称") & "' And [工程单位名称] = '" & e.OldValue & "' And [费用类别] = '" & e.DataRow("费用类别") &  "' And [费用类别1] = '" & e.DataRow("费用类别1") & "'", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("累计进度") = dr("进度金额")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [项目名称] = '" & dr("项目名称") & "' And [工程单位名称] = '" & dr("工程单位名称") & "' And [费用类别] = '" & dr("费用类别") & "' And [费用类别1] = '" & dr("费用类别1") & "'", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("累计进度") = drs(i-1)("累计进度") + drs(i)("进度金额")
                Next
            End If
        End If
       
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
爱相随
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/7/15 13:15:00 [只看该作者]

老师,好像还是不行,都不能自动累计了,原来的还可以累计,只是修改后数据不变,可能是我没有表述清楚吧,不过很感谢老师的耐心帮助了‘

 回到顶部
帅哥哟,离线,有人找我吗?
爱相随
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:929 积分:6500 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2014/7/15 13:18:00 [只看该作者]

我的意思是,如果新增加的项目,如果以前有过相同的项目,则进度金额加到以前有过相同项目的累计上,如果没有,则进度和累计相同,如果修改了相关条件,则将进度金额加到修改后相同条件项目的累计进度上去
[此贴子已经被作者于2014-7-15 13:19:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/15 14:08:00 [只看该作者]

 本来就累计啊,测试没发现问题。

 回到顶部
帅哥哟,离线,有人找我吗?
hzcaqjf
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2014/7/15 20:46:00 [只看该作者]

这样也能自动累计:
Select Case e.DataCol.Name
    Case "项目名称","工程单位名称","费用类别","费用类别1","进度金额"
        Dim s As Double
        Dim dr,r As DataRow
        Dim drs As List(of DataRow)
        For Each r In e.DataTable.dataRows
            s = 0
            drs = e.DataTable.Select("[项目名称] = '" & r("项目名称") & "' And [工程单位名称] = '" & r("工程单位名称") & "' And [费用类别] = '" & r("费用类别") & "' And [费用类别1] = '" & r("费用类别1") & "'")
            For Each dr In drs
                s+ = dr("进度金额")
                dr("累计进度") = s
            Next
        Next    
End Select

 回到顶部
总数 18 上一页 1 2