Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:代码简化思路求助

1楼
chen_sheng 发表于: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楼
有点蓝 发表于: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
3楼
chen_sheng 发表于:2024/1/10 15:00:00
有点问题,和希望的效果有点差异

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

4楼
有点蓝 发表于:2024/1/10 15:25:00
什么差异?
5楼
chen_sheng 发表于:2024/1/10 15:35:00
为0时补位仅补1位退出  这些数据任何一栏都可能为0
6楼
有点蓝 发表于: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
共6 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.