以文本方式查看主题

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

--  作者:yds
--  发布时间:2017/9/9 16:08:00
--  [求助]今天好多代码错了,求高手!

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


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


Dim cp As String = e.DataRow("产品名称")
Dim lx As Integer = e.DataRow("类型")
Dim ys As Integer = e.DataRow("叶数")
Dim zj As Integer = e.DataRow("直径")
Dim lj As Integer = e.DataRow("螺距")
Dim gnxh As String = e.DataRow("国内型号")
Dim c1 As String
Dim c2 As String
Dim c3 As String
Dim Values() As String
Select Case e.DataCol.Name
    Case "产品名称"
        If cp.IndexOf("-") >= 0 Then
            Values = cp.split("-")
            Dim x As Integer = Values.Length
            If x = 2 Then
                c1 = Values(0)
                c2 = Values(1)
            ElseIf x = 3 Then
                c1 = Values(0)
                c2 = Values(1)
                c3 = Values(2)
            End If
            Dim Customers As List(Of String)
            Customers = DataTables("参数设置").GetValues("B","[X] = \'产品参数\' and [A] = \'1S\'")
            For Each Customer As String In Customers
                If cp.StartsWith(Customer) = True Then
                    Dim dr As DataRow = DataTables("参数设置").Find("[X] = \'产品参数\'  and [A] = \'1S\' and [B] = \'" & Customer & "\'")
                    If dr IsNot Nothing Then
                        e.DataRow("类型") = dr("J")
                        e.DataRow("叶数") = dr("K")
                    End If
                End If
            Next
            If c2.StartsWith("SP") = True OrElse c2.StartsWith("PS") = True Then
                gnxh = c1 & "-SP"
            ElseIf c2.StartsWith("S") = True Then
                gnxh = c1 & "-S"
            ElseIf c2.StartsWith("P") = True Then
                gnxh = c1 & "-P"
            Else
                gnxh = c1
            End If
            If c2.EndsWith("J") = True Then
                gnxh = gnxh & "-J"
            End If
            gnxh = gnxh.ToUpper()
            e.DataRow("国内型号") = gnxh
        End If
End Select

--  作者:YDS
--  发布时间:2017/9/9 16:10:00
--  
.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.8.19.1
错误所在事件:表,产品b, DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。


--  作者:y2287958
--  发布时间:2017/9/9 16:12:00
--  
上例子
--  作者:有点蓝
--  发布时间:2017/9/9 16:13:00
--  
运行有什么问题,出现什么错误?代码想实现什么逻辑
--  作者:有点蓝
--  发布时间:2017/9/9 16:16:00
--  
If e.DataRow.isnull("产品名称") = false andalso cp.IndexOf("-") >= 0 Then
--  作者:YDS
--  发布时间:2017/9/9 16:24:00
--  
以下是引用有点蓝在2017/9/9 16:13:00的发言:
运行有什么问题,出现什么错误?代码想实现什么逻辑




出现的问题,想实现的功能是根据产品表里面产品名称开头字符对照参数设置里的表自动填写产品表里的类型和叶数
.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.8.19.1
错误所在事件:表,产品b, DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。


--  作者:有点蓝
--  发布时间:2017/9/9 16:34:00
--  
改成5楼的代码还有问题吗。
--  作者:YDS
--  发布时间:2017/9/9 16:37:00
--  
以下是引用有点蓝在2017/9/9 16:34:00的发言:
改成5楼的代码还有问题吗。

还有问题


--  作者:有点蓝
--  发布时间:2017/9/9 16:43:00
--  
上传实例测试
--  作者:YDS
--  发布时间:2017/9/10 7:24:00
--  
已经解决了,谢谢各位了!