以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  字符长度判断  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=179127)

--  作者:wukangppbb
--  发布时间:2022/8/9 12:43:00
--  字符长度判断

这个怎么修改?
Select e.DataCol.Name
    Case "科目代码"
        If e.DataRow.IsNull("科目代码") Then
            e.DataRow("科目层级") = Nothing
        Else
                If e.DataRow.Text.Length = 4 Then \'输入内容的长度达到4
                    e.DataRow("科目层级") = "一级科目"   
            End If
        End If
End Select

图片点击可在新窗口打开查看

--  作者:SbFox
--  发布时间:2022/8/9 13:24:00
--  
e.DataRow("科目层级").Length
--  作者:有点蓝
--  发布时间:2022/8/9 13:39:00
--  
If e.DataRow("科目代码").Length = 4 Then \'输入内容的长度达到4
--  作者:wukangppbb
--  发布时间:2022/8/9 17:06:00
--  回复:(有点蓝)If e.DataRow("科目代码").Length = ...
老师,我这里有个判断,我用下面的逻辑是可以的。

Select e.DataCol.Name
    Case "是否末级科目","一级科目"
        If e.DataRow("是否末级科目")= "末级" And e.DataRow.IsNull("一级科目")=False   Then
            e.DataRow("末级科目名称") = e.DataRow("一级科目")
        Else  If e.DataRow("是否末级科目")= "末级" And e.DataRow.IsNull("二级科目")=False   Then
            e.DataRow("末级科目名称") = e.DataRow("二级科目")
        Else    If e.DataRow("是否末级科目")= "末级" And e.DataRow.IsNull("三级科目")=False   Then
            e.DataRow("末级科目名称") = e.DataRow("三级科目")
        Else      If e.DataRow("是否末级科目")= "末级" And e.DataRow.IsNull("四级科目")=False   Then
            e.DataRow("末级科目名称") = e.DataRow("四级科目")
        Else         If e.DataRow("是否末级科目")= "末级" And e.DataRow.IsNull("五级科目")=False   Then
            e.DataRow("末级科目名称") = e.DataRow("五级科目")
        End If
End Select
图片点击可在新窗口打开查看



但是如果表变成这样,这个判断就有问题了,应该怎么写的?
就是要把末级对应的科目 准确的 填充到 “末级科目名称” 列
图片点击可在新窗口打开查看




--  作者:有点蓝
--  发布时间:2022/8/9 17:30:00
--  
反过来从五级开始判断

Select e.DataCol.Name
    Case "是否末级科目","一级科目"
If e.DataRow("是否末级科目")= "末级"
        if e.DataRow.IsNull("五级科目")=False   Then
            e.DataRow("末级科目名称") = e.DataRow("五级科目")
        ElseIf e.DataRow.IsNull("四级科目")=False   Then
            e.DataRow("末级科目名称") = e.DataRow("四级科目")
        Elseif .........
……
        End If
 End If
End Select