Foxtable(狐表)用户栏目专家坐堂 → [求助]如何实现表A的效果(已解决)


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

主题:[求助]如何实现表A的效果(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]如何实现表A的效果(已解决)  发帖心情 Post By:2016/6/20 9:10:00 [只看该作者]

要求根据各产品编号自上而下累计出现的次数,在产品累计列进行逐行填充,实现如表A的效果。请各位老师指教,谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目23.foxdb


[此贴子已经被作者于2016/6/20 11:23:59编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/20 9:26:00 [只看该作者]


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/6/20 9:45:00 [只看该作者]

谢谢大红袍老师的回复,用流水账代码来实现,需要增加一列,觉得有点繁琐。如何在不增加列的情况下,用一段按钮代码来实现上述效果,还请大红袍老师赐教,谢谢!!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/20 9:52: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("产品编号") & "'"
            dr("产品累计") = e.DataTable.Compute("count(产品编号)",Filter)
        Next
        If e.DataCol.Name = "产品编号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Filter = "[_SortKey] > " & e.DataRow("_SortKey") & " And [产品编号] = '" & e.OldValue & "'"
            drs = e.DataTable.Select(Filter)
            For Each dr As DataRow In drs
                Filter = "[_SortKey] <= " & dr("_SortKey") & " And [产品编号] = '" & dr("产品编号") & "'"
                dr("产品累计") = e.DataTable.Compute("count(产品编号)",Filter)
            Next
        End If
End Select


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/6/20 10:24:00 [只看该作者]

谢谢大红袍老师的赐教,我把DataColChanged事件代码改成按钮代码,前半段代码可以实现所需效果。那么后半段代码(代码屏蔽部分)有什么作用?如何将其改成按钮代码,还请大红袍老师指教,再次衷心感谢!!

For Each dr1 As DataRow In DataTables("表A").DataRows
    Dim drs As List(of DataRow)
    Dim Filter As String
    Filter = "[_SortKey] >= " & dr1("_SortKey") & " And [产品编号] = '" & dr1("产品编号") & "'"
    drs = DataTables("表A").Select(Filter)
    For Each dr As DataRow In drs
        Filter = "[_SortKey] <= " & dr("_SortKey") & " And [产品编号] = '" & dr("产品编号") & "'"
        dr("产品累计2") = DataTables("表A").Compute("count(产品编号)",Filter)
    Next
    'If e.DataCol.Name = "产品编号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
        'Filter = "[_SortKey] > " & dr1("_SortKey") & " And [产品编号] = '" & e.OldValue & "'"
        'drs = DataTables("表A").Select(Filter)
        'For Each dr As DataRow In drs
            'Filter = "[_SortKey] <= " & dr("_SortKey") & " And [产品编号] = '" & dr("产品编号") & "'"
            'dr("产品累计2") = DataTables("表A").Compute("count(产品编号)",Filter)
        'Next
    'End If
Next
[此贴子已经被作者于2016/6/20 10:25:30编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/20 10:27:00 [只看该作者]

方法一:重置列

 

http://www.foxtable.com/help/topics/1587.htm

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/20 10:31:00 [只看该作者]

For Each bh As String In DataTables("表A").GetValues("产品编号")
    Dim drs As List(of DataRow)
    Dim Filter As String
    Filter = "[产品编号] = '" & bh & "'"
    drs = DataTables("表A").Select(Filter,"_Sortkey")
    For i As Integer = 0 To drs.count-1
        drs(i)("产品累计") = i+1
    Next
Next
[此贴子已经被作者于2016/6/20 10:38:56编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/6/20 10:37:00 [只看该作者]

代码进一步简化,完全符合所需效果,感谢大红袍老师的热心赐教,衷心感谢!!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/20 10:39:00 [只看该作者]

写错了一点,重新看7楼。

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/6/20 11:24:00 [只看该作者]

完美解决,谢谢大红袍老师!!

 回到顶部