以文本方式查看主题

-  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=191034)

--  作者:lin98
--  发布时间:2024/3/22 16:19:00
--  代码出错
Select Case e.DataCol.Name
    Case "确认", "第一列", "第五列"
        If e.DataRow("确认") = True Then
            Dim ss() As String
            Dim ss3() As String
            If e.DataRow.IsNull("第一列") = False And e.DataRow.IsNull("第五列") = False Then
                \'                ss = e.DataRow("第一列").split(",")
                ss = ( e.DataRow("第一列").split(","), e.DataRow("第五列").split(","))
                \'                ss3 = e.DataRow("第五列").split(",")
                
                For Each s As String In ss
                    \'                     "\'")
                    If dr9 Is Nothing Then
                        dr9 = DataTables("表B").AddNew
                        dr9("第一列") = s
                        dr9("第五列") = s
                        dr9("识别码") = e.DataRow("识别码")
                    End If
                Next
                
                
            End If
            
            If e.DataCol.Name = "第一列" AndAlso e.oldvalue > "" And e.DataCol.Name = "第五列" AndAlso e.oldvalue > "" Then
\'               If e.DataCol.Name = "第一列" AndAlso e.oldvalue > "" Then 
                For Each s As String In e.oldvalue.split(",")
                    Output.Show(s)
                   
                        
                    End If
                Next
            End If
            
            DataTables("表B").Save() 
        End If
End Select

[此贴子已经被作者于2024/3/22 16:53:37编辑过]

--  作者:有点蓝
--  发布时间:2024/3/22 16:26:00
--  
不要老是靠自己的想象力创造不存在的用法好不。

方法1、分开处理,先遍历"第一列"处理,再使用同样的代码遍历"第五列"处理
2、使用集合,把多个拆分的数组合添加到集合里,再遍历

--  作者:lin98
--  发布时间:2024/3/23 9:10:00
--  
\'

二个合不起,请帮处理,谢谢

[此贴子已经被作者于2024/3/23 15:54:21编辑过]

--  作者:有点蓝
--  发布时间:2024/3/23 9:44:00
--  
http://www.foxtable.com/webhelp/topics/0217.htm

Dim Names As New List(Of String)
Names.AddRange(
e.DataRow("第一列").split(","))
Names.AddRange(e.DataRow("第列").split(","))

--  作者:lin98
--  发布时间:2024/3/23 10:10:00
--  
从字符串“ss”到类型“Integer”的转换无效。
输入字符串的格式不正确。

Dim Names As New List(Of String)
Names.AddRange(e.DataRow("第一列").split(","))
Names.AddRange(e.DataRow("第五列").split(","))
For Each Name As String In Names
    Output.Show(Name)


Names.InsertRange("ss", "s") \'
Names.InsertRange("ss3", "s3") \'    
Next

没看太懂,上报错,请帮处理

--  作者:有点蓝
--  发布时间:2024/3/23 10:34:00
--  
去掉下面2句

Names.InsertRange("ss", "s") \'
Names.InsertRange("ss3", "s3") \'    

建议有时间还是多看看编程基础吧

--  作者:lin98
--  发布时间:2024/3/23 10:58:00
--  
去掉下面2句,也没有达到,没在同一行,需求是要在同一行,如何处理?

[此贴子已经被作者于2024/3/23 15:53:58编辑过]

--  作者:有点蓝
--  发布时间:2024/3/23 11:03:00
--  
用代码说话!
--  作者:lin98
--  发布时间:2024/3/23 11:19:00
--  



没在同一行,需求是要在同一行,如何处理?

[此贴子已经被作者于2024/3/23 15:53:41编辑过]

--  作者:有点蓝
--  发布时间:2024/3/23 11:58:00
--  
Select Case e.DataCol.Name
    Case "确认", "第一列", "第五列"
        If e.DataRow("确认") = True AndAlso e.DataRow.IsNull("第一列") = False AndAlso e.DataRow.IsNull("第五列") = False Then
            Dim Names As New List(Of String)
            Names.AddRange(e.DataRow("第一列").split(","))
            Names.AddRange(e.DataRow("第五列").split(","))
            
            For Each s As String In Names
                Dim dr9 As DataRow = DataTables("表B").find("第一列=\'" & s & "\' and 识别码=\'" & e.DataRow("识别码") & "\'")
                
                If dr9 Is Nothing Then
                    dr9 = DataTables("表B").AddNew
                End If
                dr9("第一列") = s
                dr9("识别码") = e.DataRow("识别码")
            Next
            DataTables("表B").Save() 
        End If
End Select

磨刀不误砍柴工,建议还是重头学学基础