Foxtable(狐表)用户栏目专家坐堂 → 选择行计算


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

主题:选择行计算

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/30 18:43:00 [显示全部帖子]

 某行的合计 = 当前行的增加 + 上一行的增加 ?

 

参考代码

 

 

Select Case e.DataCol.Name
    Case "项目信息_关联编号","增加"
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [项目信息_关联编号] = '" & e.DataRow("项目信息_关联编号") & "'"
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "[_SortKey] < " & dr("_SortKey") & " And [项目信息_关联编号] = '" & dr("项目信息_关联编号") & "'"
            Dim fdr As DataRow = e.DataTable.find(filter, "_SortKey desc")
            If fdr IsNot Nothing Then
                dr("合计") = fdr("增加")
            Else
                dr("合计") = dr("增加")
            End If
        Next
End Select '求欠款明细

 

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/30 22:48:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "项目信息_关联编号","增加"
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [项目信息_关联编号] = '" & e.DataRow("项目信息_关联编号") & "'"
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "[_SortKey] < " & dr("_SortKey") & " And [项目信息_关联编号] <> '" & dr("项目信息_关联编号") & "'"
            Dim fdr As DataRow = e.DataTable.find(filter, "_SortKey desc")
            If fdr IsNot Nothing Then
                dr("合计") = dr("增加")  + fdr("增加")
            Else
                dr("合计") = dr("增加")
            End If
        Next
End Select

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/1 9:13:00 [显示全部帖子]

 上传具体实例测试。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/1 14:21:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "项目编号","增加"
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & ""
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "[_SortKey] < " & dr("_SortKey") & ""
            Dim Filter2 = "[_SortKey] < " & dr("_SortKey") & " And [项目编号] = '" & dr("项目编号") & "'"
            Dim fdr As DataRow = e.DataTable.find(filter, "_SortKey desc")
            Dim fdr2 As DataRow = e.DataTable.find(filter2, "_SortKey desc")
            If fdr IsNot Nothing Then
                If fdr2 Is Nothing Then
                    dr("合计") = dr("增加")  + fdr("合计")
                Else
                    dr("合计") = dr("增加")  + fdr("合计") - fdr2("增加")
                End If
            Else
                If fdr2 Is Nothing Then
                    dr("合计") = dr("增加")
                Else
                    dr("合计") = dr("增加")  - fdr2("增加")
                End If
            End If
        Next
End Select

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/1 16:10:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "项目编号","增加"
        Dim d As Date = e.DataRow("增加时间")
        d = new Date(d.year, d.Month, 1)
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " and 增加时间>=#" & d & "# and 增加时间<#" & d.AddMonths(1) & "#"
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "[_SortKey] < " & dr("_SortKey") & " and 增加时间>=#" & d & "# and 增加时间<#" & d.AddMonths(1) & "#"
            Dim Filter2 = "[_SortKey] < " & dr("_SortKey") & " And [项目编号] = '" & dr("项目编号") & "' and 增加时间>=#" & d & "# and 增加时间<#" & d.AddMonths(1) & "#"
            Dim fdr As DataRow = e.DataTable.find(filter, "_SortKey desc")
            Dim fdr2 As DataRow = e.DataTable.find(filter2, "_SortKey desc")
            If fdr IsNot Nothing Then
                If fdr2 Is Nothing Then
                    dr("合计") = dr("增加")  + fdr("合计")
                Else
                    dr("合计") = dr("增加")  + fdr("合计") - fdr2("增加")
                End If
            Else
                If fdr2 Is Nothing Then
                    dr("合计") = dr("增加")
                Else
                    dr("合计") = dr("增加")  - fdr2("增加")
                End If
            End If
        Next
End Select

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/1 18:10:00 [显示全部帖子]

以下是引用yangwenghd在2017/12/1 16:48:00的发言:
感谢 感谢 ,可以把代码放到窗口的afterload吗?这样就可以加载窗口的时候就显示出来结果,感谢了,谢谢

 

重置列即可,如 http://www.foxtable.com/webhelp/scr/1587.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/3 13:54:00 [显示全部帖子]

Dim d1 As Date = new Date(Date.Today.Year,Date.Today.Month,1)
Dim sum As Double = 0
For Each s As String In DataTables("表B").GetValues("项目编号", "增加时间 >= #" & d1 & "# And 增加时间 < #" & d1.AddMonths(1) & "#")
    sum += DataTables("表B").find("增加时间 >= #" & d1 & "# And 增加时间 < #" & d1.AddMonths(1) & "# and 项目编号 = '" & s & "'", "增加时间 desc")("增加")
Next
Forms("窗口1").Controls("Label2").text = sum

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/4 11:47:00 [显示全部帖子]

Dim d1 As Date = new Date(Date.Today.Year,Date.Today.Month,1)
Dim sum As Double = 0
For Each s As String In DataTables("表B").GetValues("项目编号", "增加时间 >= #" & d1 & "# And 增加时间 < #" & d1.AddMonths(1) & "#")
    sum += DataTables("表B").find("增加时间 >= #" & d1 & "# And 增加时间 < #" & d1.AddMonths(1) & "# and 项目编号 = '" & s & "'", "时间编号 desc, _Identify desc")("增加")
Next
Forms("窗口1").Controls("Label2").text = sum


 回到顶部