以文本方式查看主题

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

--  作者:yumo123
--  发布时间:2013/1/23 11:10:00
--  [求助]求助这个代码应该怎么修改

图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图_2013-01-23_11-02-28.png
图片点击可在新窗口打开查看

我想在“拼音/简码”列里面实现   如果“名称”列有内容 则显示名称列的拼音,如果“委托代理人”列有内容 则显示委托代理人的拼音,如果“名称”列和"委托代理人"列都有内容,则显示委托代理人的拼音。

分开来写我知道是这样写,
Select Case e.DataCol.name
       Case "名称"                                
        If e.DataRow.IsNull("名称") Then     
            e.DataRow("拼音") = Nothing           
        Else
            e.DataRow("拼音") = GetPy(e.NewValue) 
        End If
      Case "委托代理人"                              
        If e.DataRow.IsNull("委托代理人") Then        
            e.DataRow("拼音") = Nothing        
        Else
            e.DataRow("拼音") = GetPy(e.NewValue) 
        End If
end if

但是合起来一起写应该怎么写啊??望指教~~~

--  作者:lin_hailun
--  发布时间:2013/1/23 11:27:00
--  
 这样做比较好。

Select Case e.DataCol.name
    Case "名称", "委托代理人"     
        If e.DataRow.IsNull("委托代理人") Then
            If e.DataRow.IsNull("名称") Then
                e.DataRow("拼音") = Nothing
            Else
                e.DataRow("拼音") = GetPy(e.NewValue)
            End If
        Else
            e.DataRow("拼音") = GetPy(e.NewValue)
        End If
End Select
[此贴子已经被作者于2013-1-23 11:33:17编辑过]

--  作者:yumo123
--  发布时间:2013/1/23 11:35:00
--  
谢谢林大,但是这样写 当名称列输入时 有拼音,当名称列 委托代理人列 都输入时,也符合条件 。但是当名称列为空,委托代理人列有字符时,则显示不出来。望指教~~~
--  作者:lin_hailun
--  发布时间:2013/1/23 12:00:00
--  
以下是引用yumo123在2013-1-23 11:35:00的发言:
谢谢林大,但是这样写 当名称列输入时 有拼音,当名称列 委托代理人列 都输入时,也符合条件 。但是当名称列为空,委托代理人列有字符时,则显示不出来。望指教~~~


之前写错了,已经修正,在2楼代码。

--  作者:程兴刚
--  发布时间:2013/1/23 13:06:00
--  
这样做比较好。 Select Case e.DataCol.name Case "名称", "委托代理人" If e.DataRow.IsNull("委托代理人") =false And e.DataRow.IsNull("名称") = false Then e.DataRow("拼音") = GetPy(e.DataRow("委托代理人")) ElseIf e.DataRow.IsNull("委托代理人") And e.DataRow.IsNull("名称") Then e.DataRow("拼音") = nothing Else e.DataRow("拼音") = GetPy(e.NewValue) End If End Select
--  作者:yumo123
--  发布时间:2013/1/23 13:09:00
--  
谢谢林大 ,但是还是发现了个小问题  当名称列 与 委托代理人列 都输入字符后, 在delete删除任意一列的字符,则弹出错误窗口,显示 “调用的目标发生了异常”。请问这是什么原因。
--  作者:程兴刚
--  发布时间:2013/1/23 13:20:00
--  
手机回复,无法换行,请自行分割一下代码!
--  作者:yumo123
--  发布时间:2013/1/23 13:26:00
--  
谢谢程总, 已经尝试了,且对于初学者的我,可以一眼就看出代码意思。表示感谢!!林大的代码还是有些小看不懂。图片点击可在新窗口打开查看

但是您的代码 和林大的代码 都出现这样的问题。

就是 当名称列 与 委托代理人列 都输入字符后,再任意delete删除两列当中的任意一列字符,都显示 “调用的目标发生了异常”。

请问这是什么原因造成的??

--  作者:yumo123
--  发布时间:2013/1/23 13:58:00
--  
最终依据程总的代码意思,经自己修改后,不再出现任何错误提示,望大家指点、简化。 代码如下!!

Select Case e.DataCol.name
    Case "名称", "委托代理人"
        If e.DataRow.IsNull("委托代理人") =False And e.DataRow.IsNull("名称") =False Then
            e.DataRow("拼音") = GetPy(e.DataRow("委托代理人"))
        ElseIf e.DataRow.IsNull("委托代理人") And e.DataRow.IsNull("名称") Then
            e.DataRow("拼音") = Nothing
        ElseIf e.DataRow.IsNull("委托代理人") =True And e.DataRow.IsNull("名称") =False Then
            e.DataRow("拼音") = GetPy(e.DataRow("名称"))
        ElseIf e.DataRow.IsNull("委托代理人") =False And e.DataRow.IsNull("名称") = True Then
            e.DataRow("拼音") = GetPy(e.DataRow("委托代理人"))         
        Else e.DataRow("拼音") = GetPy(e.NewValue)
        End If
End Select



--  作者:狐狸爸爸
--  发布时间:2013/1/23 13:58:00
--  
Select Case e.DataCol.name
    Case "名称", "委托代理人"     
        If e.DataRow.IsNull("委托代理人") Then
            If e.DataRow.IsNull("名称") Then
                e.DataRow("拼音") = Nothing
            Else
                e.DataRow("拼音") = GetPy(e.DataRow("名称"))
            End If
        Else
            e.DataRow("拼音") = GetPy(e.DataRow("委托代理人"))
        End If
End Select