以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]单选按钮。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57965)

--  作者:liujywwy
--  发布时间:2014/10/9 11:29:00
--  [求助]单选按钮。

对于单选按钮,点击了通过,出现提示框,然后选择取消,为什么通过的单选按钮仍然处于选中状态?请看红色的代码?取消选中不应该是e.Sender.Checked = False

If e.Sender.Checked Then
    Dim r As Row = Tables("需求明细表").Current
    If r IsNot Nothing Then
        If MessageBox.show("确认现场测试通过?","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
            DataTables("临时版本跟踪表").ReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").ReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            Dim m As New MailSender
            m.Host = "mail.bdcom.com.cn"
            m.Account = "version@bdcom.com.cn"
            m.Password = "version"
            m.From = "version@bdcom.com.cn"
            If r.IsNull("邮件通知") = False Then
                m.AddReceiver(r("邮件通知").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("研发邮箱") = False Then
                m.AddReceiver(r("研发邮箱").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("技术支持邮箱") = False Then
                m.AddReceiver(r("技术支持邮箱").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("退回通知") = False Then
                m.AddReceiver(r("退回通知").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            m.Title = "博达软件管理系统= = = = = = =" & "需求编号:" & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号") & "======" & "现场确认已通过,请发布版本"
            m.C & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号") & "======" & "现场确认已通过,请发布版本"  & vbcrlf & "现场已确认好的版本路径:" & "192.168.1.35\\bdcom"  & r("发布目录").Replace("[", "").Replace("]", "").Replace("/", "\\")
            m.Send
            MessageBox.show("需求编号:" & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号")  & "此版本现场确认通过,测试部将发布!","博达软件管理系统")
            r("状态") = "Confirmed"
        End If
        Else
        e.Sender.Checked = False
    End If
End If


--  作者:Bin
--  发布时间:2014/10/9 11:30:00
--  
上个例子看看
--  作者:有点甜
--  发布时间:2014/10/9 11:32:00
--  
 代码你写在什么事件?请写在 CheckedChanged
--  作者:liujywwy
--  发布时间:2014/10/9 11:35:00
--  
以下是引用有点甜在2014-10-9 11:32:00的发言:
 代码你写在什么事件?请写在 CheckedChanged

代码是在checkedchanged里面。例子

在需求明细表,需求编号201410003,请试一下通过和未通按钮,出现提示框,选择取消看看,谢谢。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临时版本跟踪系统26.rar


--  作者:czy
--  发布时间:2014/10/9 11:36:00
--  
    If r IsNot Nothing Then
        If MessageBox.show("确认现场测试通过?","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
            DataTables("临时版本跟踪表").ReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").ReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            Dim m As New MailSender
            m.Host = "mail.bdcom.com.cn"
            m.Account = "version@bdcom.com.cn"
            m.Password = "version"
            m.From = "version@bdcom.com.cn"
            If r.IsNull("邮件通知") = False Then
                m.AddReceiver(r("邮件通知").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("研发邮箱") = False Then
                m.AddReceiver(r("研发邮箱").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("技术支持邮箱") = False Then
                m.AddReceiver(r("技术支持邮箱").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("退回通知") = False Then
                m.AddReceiver(r("退回通知").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            m.Title = "博达软件管理系统= = = = = = =" & "需求编号:" & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号") & "======" & "现场确认已通过,请发布版本"
            m.C & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号") & "======" & "现场确认已通过,请发布版本"  & vbcrlf & "现场已确认好的版本路径:" & "192.168.1.35\\bdcom"  & r("发布目录").Replace("[", "").Replace("]", "").Replace("/", "\\")
            m.Send
            MessageBox.show("需求编号:" & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号")  & "此版本现场确认通过,测试部将发布!","博达软件管理系统")
            r("状态") = "Confirmed"
        Else
            e.Sender.Checked = False
        End If
    Else
        e.Sender.Checked = False
    End If
End If

--  作者:liujywwy
--  发布时间:2014/10/9 11:47:00
--  

不对吧,怎么会出现2次e.Sender.Checked = False

另外多出来的else和哪个if是匹配的?


--  作者:有点甜
--  发布时间:2014/10/9 11:50:00
--  
 If e.Sender.Checked Then
    Dim r As Row = Tables("需求明细表").Current
    If r IsNot Nothing Then
        If MessageBox.show("确认现场测试通过?","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
            DataTables("临时版本跟踪表").ReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").ReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            Dim m As New MailSender
            m.Host = "mail.bdcom.com.cn"
            m.Account = "version@bdcom.com.cn"
            m.Password = "version"
            m.From = "version@bdcom.com.cn"
            If r.IsNull("邮件通知") = False Then
                m.AddReceiver(r("邮件通知").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("研发邮箱") = False Then
                m.AddReceiver(r("研发邮箱").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("技术支持邮箱") = False Then
                m.AddReceiver(r("技术支持邮箱").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            If r.IsNull("退回通知") = False Then
                m.AddReceiver(r("退回通知").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
            End If
            m.Title = "博达软件管理系统= = = = = = =" & "需求编号:" & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号") & "======" & "现场确认已通过,请发布版本"
            m.C & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号") & "======" & "现场确认已通过,请发布版本"  & vbcrlf & "现场已确认好的版本路径:" & "192.168.1.35\\bdcom"  & r("发布目录").Replace("[", "").Replace("]", "").Replace("/", "\\")
            m.Send
            MessageBox.show("需求编号:" & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号")  & "此版本现场确认通过,测试部将发布!","博达软件管理系统")
            r("状态") = "Confirmed"
        Else
            e.Sender.Checked = False
        End If
    End If
End If

--  作者:czy
--  发布时间:2014/10/9 13:43:00
--  
以下是引用liujywwy在2014-10-9 11:47:00的发言:

不对吧,怎么会出现2次e.Sender.Checked = False

另外多出来的else和哪个if是匹配的?

 

 

两个是对的,,一个是假如当前行为空,选择单选框后则取消

另一个则MessageBox提示选择取消的

我少复制了两行代码,将前面两行代码加上就是了。

[此贴子已经被作者于2014-10-9 13:43:44编辑过]