以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求代码,上一行取数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149297) |
||||||||||||||||||||||||
-- 作者:nbsugu_z -- 发布时间:2020/4/28 12:00:00 -- 求代码,上一行取数
其他行: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编辑过]
|
||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间: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
|