Foxtable(狐表)用户栏目专家坐堂 → 代码简化思路求助


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

主题:代码简化思路求助

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6224 威望:0 精华:0 注册:2018/5/10 9:05:00
代码简化思路求助  发帖心情 Post By:2024/1/10 14:32:00 [只看该作者]

对接一个需求需要特殊转化个数据  一共19组数据,上一组为零时引用下一组不为0的数据,写一半感觉代码太累赘了 思路请教

坐标1-19  当上一个值为零=下一个不为零的数据
Dim r As Row = Tables("表A").Current
If r("冲孔坐标1")=0 Then
If r("冲孔坐标2")>0 Then
r("冲孔坐标1")= r("冲孔坐标2")
ElseIf r("冲孔坐标3")>0 Then
r("冲孔坐标1")= r("冲孔坐标3")
ElseIf r("冲孔坐标4")>0 Then
r("冲孔坐标1")= r("冲孔坐标4")
ElseIf r("冲孔坐标5")>0 Then
r("冲孔坐标1")= r("冲孔坐标5")
ElseIf r("冲孔坐标6")>0 Then
r("冲孔坐标1")= r("冲孔坐标6")
ElseIf r("冲孔坐标7")>0 Then
r("冲孔坐标1")= r("冲孔坐标7")
ElseIf r("冲孔坐标8")>0 Then
r("冲孔坐标1")= r("冲孔坐标8")
ElseIf r("冲孔坐标9")>0 Then
r("冲孔坐标1")= r("冲孔坐标9")
ElseIf r("冲孔坐标10")>0 Then
r("冲孔坐标1")= r("冲孔坐标10")
ElseIf r("冲孔坐标11")>0 Then
r("冲孔坐标1")= r("冲孔坐标11")
ElseIf r("冲孔坐标12")>0 Then
r("冲孔坐标1")= r("冲孔坐标12")
ElseIf r("冲孔坐标13")>0 Then
r("冲孔坐标1")= r("冲孔坐标13")
ElseIf r("冲孔坐标14")>0 Then
r("冲孔坐标1")= r("冲孔坐标14")
ElseIf r("冲孔坐标15")>0 Then
r("冲孔坐标1")= r("冲孔坐标15")
ElseIf r("冲孔坐标16")>0 Then
r("冲孔坐标1")= r("冲孔坐标16")
ElseIf r("冲孔坐标17")>0 Then
r("冲孔坐标1")= r("冲孔坐标17")
ElseIf r("冲孔坐标18")>0 Then
r("冲孔坐标1")= r("冲孔坐标18")
ElseIf r("冲孔坐标19")>0 Then
r("冲孔坐标1")= r("冲孔坐标19")
End If
End If
If r("冲孔坐标2")=0 Then
If r("冲孔坐标3")>0 Then
r("冲孔坐标2")= r("冲孔坐标3")
ElseIf r("冲孔坐标4")>0 Then
r("冲孔坐标2")= r("冲孔坐标4")
ElseIf r("冲孔坐标5")>0 Then
r("冲孔坐标2")= r("冲孔坐标5")
ElseIf r("冲孔坐标6")>0 Then
r("冲孔坐标2")= r("冲孔坐标6")
ElseIf r("冲孔坐标7")>0 Then
r("冲孔坐标2")= r("冲孔坐标7")
ElseIf r("冲孔坐标8")>0 Then
r("冲孔坐标2")= r("冲孔坐标8")
ElseIf r("冲孔坐标9")>0 Then
r("冲孔坐标2")= r("冲孔坐标9")
ElseIf r("冲孔坐标10")>0 Then
r("冲孔坐标2")= r("冲孔坐标10")
ElseIf r("冲孔坐标11")>0 Then
r("冲孔坐标2")= r("冲孔坐标11")
ElseIf r("冲孔坐标12")>0 Then
r("冲孔坐标2")= r("冲孔坐标12")
ElseIf r("冲孔坐标13")>0 Then
r("冲孔坐标2")= r("冲孔坐标13")
ElseIf r("冲孔坐标14")>0 Then
r("冲孔坐标2")= r("冲孔坐标14")
ElseIf r("冲孔坐标15")>0 Then
r("冲孔坐标2")= r("冲孔坐标15")
ElseIf r("冲孔坐标16")>0 Then
r("冲孔坐标2")= r("冲孔坐标16")
ElseIf r("冲孔坐标17")>0 Then
r("冲孔坐标2")= r("冲孔坐标17")
ElseIf r("冲孔坐标18")>0 Then
r("冲孔坐标2")= r("冲孔坐标18")
ElseIf r("冲孔坐标19")>0 Then
r("冲孔坐标2")= r("冲孔坐标19")
End If
End If
.......  共19组
[此贴子已经被作者于2024/1/10 14:37:03编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/10 14:38:00 [只看该作者]

For i As Integer = 1 To 19
    If r("冲孔坐标" & i) > 0 Then
        Dim a As doble = r("冲孔坐标" & i) 
        For j As Integer = 1 To i
            r("冲孔坐标" & j) = a
        Next
        Exit For
    End If
Next

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6224 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2024/1/10 15:00:00 [只看该作者]

有点问题,和希望的效果有点差异

图片点击可在新窗口打开查看此主题相关图片如下:dingtalk_20240110145904.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/10 15:25:00 [只看该作者]

什么差异?

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


加好友 发短信
等级:三尾狐 帖子:700 积分:6224 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2024/1/10 15:35:00 [只看该作者]

为0时补位仅补1位退出  这些数据任何一栏都可能为0

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/10 15:40:00 [只看该作者]

dim k as integer = 1

For i As Integer = 1 To 19
    If r("冲孔坐标" & i) > 0 Then
        Dim a As doble = r("冲孔坐标" & i) 
        For j As Integer = k To i
            r("冲孔坐标" & j) = a
        Next
        k = i+1
    End If
Next

 回到顶部