Foxtable(狐表)用户栏目专家坐堂 → 求代码,上一行取数


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

主题:求代码,上一行取数

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


加好友 发短信
等级:一尾狐 帖子:410 积分:3682 威望:0 精华:0 注册:2017/4/8 8:59:00
求代码,上一行取数  发帖心情 Post By:2020/4/28 12:00:00 [只看该作者]

 A   B  C 
  20 5
   20
         30
         40
   20  10    60
        80
   60   20   100
   100  30    200
A列首行,取当前行C列数据,不判断B列是否为空
其他行:B列为空值,A列也为空
           B列不为空时,取上一行C列数据,如果上一行B列也为空,再上移一行
           直到上一行B列不为空时,取此行的C列数据

这个代码不会写。只会写本行取数  上一行,上上一行如何补充呢
Select Case e.DataCol.name
    Case "B"
        If e.DataRow("B") IsNot Nothing Then
            e.DataRow("A") = e.DataRow("C") 
        Else
           e.DataRow("A") = nothing
        End If
End Select

求助
 如果在上表中再增加一列,比如“品种”列,要求按品种自动取数又该如何写?
就是按品种取数。比如品种1、品种2,A列数据分别取自各自相对应品种的上一行(B列不为空的上一行,如果空,再上一行)的C列数据
当然还有个日期列,是按日期排序的,有点象流水帐的味道。





[此贴子已经被作者于2020/4/28 13:15:41编辑过]

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/28 14:18:00 [只看该作者]

Select Case e.DataCol.name
    Case "B"
        If e.DataRow.isnull("B")  = falseThen
dim idx as integer = tables("当前表名称").findrow(e.DataRow)
if idx > 0 '如果=0说明是第一行,没有上一行
            e.DataRow("A") = tables("当前表名称")rows(idx-1)("C") 
end if
        Else
           e.DataRow("A") = nothing
        End If
End Select

 回到顶部