|
■No25715 (Lily さん) に返信
Private Sub ClaimReflexive(ByVal rowCnt As Integer)
' ************************************************************************
' 機能: 再帰処理
' ************************************************************************
' >>>>>結局、単純なループで解決できる
While (rowCnt >= 0)
Dim ClaimArray() As String = Split(PubTreeTbl.Rows(rowCnt).Item("List"), ",")
' >>>>>何度も計算させない
Dim pos As Integer = PubAryPos(rowCnt)
' >>>>>同じ else を2回書かない
' >>>>>PubArrayPos(rowCnt) が 0 の可能性は?
If ClaimArray.Length >= pos AndAlso ClaimArray(pos - 1) <> "" Then
' クレームNo取得
PubSubClaimNo = Integer.Parse(ClaimArray(pos - 1))
PubClaimBody += "-" & PubSubClaimNo.ToString.PadLeft(MaxFigure)
Else
' ツリーの値が取れなかった場合
If ClaimBeforeReflexive(rowCnt) = False Then
Exit Sub
End If
End If
rowCnt = PubSubClaimNo - 1
End While
End Sub
|