以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]rediobutton只对状态为confirming有效,其他的为无效为灰色,不可选择  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56661)

--  作者:liujywwy
--  发布时间:2014/9/10 15:17:00
--  [求助]rediobutton只对状态为confirming有效,其他的为无效为灰色,不可选择

在需求明细表有2个rediobutton,一个为通过,一个为未过。

后面经过测试,发现点击需求编号,这2个rediobutton是可以选择的。当点击除需求编号外的列,这2个rediobutton是灰色的不可以选择的。

我现在希望的是,只有状态为confirming才可以选择rediobutton。请帮忙看看。

If Forms("需求明细表").Opened Then
   
    Forms("需求明细表").Controls("通过").Enabled = e.Row("状态") = "confirming"
    Forms("需求明细表").Controls("未过").Enabled = e.Row("状态") = "confirming"
   
End If


图片点击可在新窗口打开查看此主题相关图片如下:需求编号点击.png
图片点击可在新窗口打开查看

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


--  作者:有点甜
--  发布时间:2014/9/10 15:23:00
--  

窗口afterload加入代码

 

If Forms("需求明细表").Opened Then
    Forms("需求明细表").Controls("通过").Enabled = Tables("需求明细表").Current("状态") = "confirming"
    Forms("需求明细表").Controls("未过").Enabled = Tables("需求明细表").Current("状态") = "confirming"   
End If


--  作者:Bin
--  发布时间:2014/9/10 15:27:00
--  
CUrrentChanged也要加入这个代码
--  作者:liujywwy
--  发布时间:2014/9/10 15:37:00
--  
以下是引用有点甜在2014-9-10 15:23:00的发言:

窗口afterload加入代码

 

If Forms("需求明细表").Opened Then
    Forms("需求明细表").Controls("通过").Enabled = Tables("需求明细表").Current("状态") = "confirming"
    Forms("需求明细表").Controls("未过").Enabled = Tables("需求明细表").Current("状态") = "confirming"   
End If

当某一行状态由Confirming变为空,再变为Bound,此时状态为Bound,发现2个rediobutton都是可以选择的。


--  作者:Bin
--  发布时间:2014/9/10 15:41:00
--  
那DataColChanged事件也要放入代码
--  作者:liujywwy
--  发布时间:2014/9/10 16:00:00
--  

afterload代码如下:我刚才清空了数据,然后再次打开工程,点击需求明细录入,报错了。如附件。

DataTables.Save()
e.Form.Controls("Table1").Table.ListMode = True
DataTables("需求明细表").SysStyles("CurrentRow").BackColor = Color.DarkOrange
Dim kh As WinForm.ComboBox = e.Form.Controls("客户")
kh.ComboList=DataTables("需求明细表").GetComboListString("客户")
Tables("需求明细表").Filter=""


With DataTables("需求明细表")
        .LoadOver = "需求编号"
        .LoadReverse=True
        .LoadTop =  30
        .LoadPage =  0
        .Load()
End  With

If Forms("需求明细表").Opened Then
    Forms("需求明细表").Controls("通过").Enabled = Tables("需求明细表").Current("状态") = "confirming"
    Forms("需求明细表").Controls("未过").Enabled = Tables("需求明细表").Current("状态") = "confirming"   
End If


此主题相关图片如下:报错.png
按此在新窗口浏览图片

--  作者:有点甜
--  发布时间:2014/9/10 16:03:00
--  
If Tables("需求明细表").Current IsNot Nothing Then
    Forms("需求明细表").Controls("通过").Enabled = Tables("需求明细表").Current("状态") = "confirming"
    Forms("需求明细表").Controls("未过").Enabled = Tables("需求明细表").Current("状态") = "confirming"   
End If
--  作者:liujywwy
--  发布时间:2014/9/10 16:20:00
--  

If e.DataCol.Name = "需求编号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("技术支持邮箱") = Nothing
        e.DataRow("研发邮箱") = Nothing
        e.DataRow("期望交期") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("需求明细表").Find("[需求编号] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("技术支持邮箱") = dr("技术支持邮箱")
            e.DataRow("研发邮箱") = dr("研发邮箱")
            e.DataRow("期望交期") = dr("版本期望交期")
        End If
    End If
End If

Dim r As Row = Tables("需求主表").Current

If e.DataCol.name="审核通过" Then
    If e.DataRow("审核通过") Then
        If r.IsNull("邮件通知") = True Then
            MessageBox.show("请对邮件通知下拉列选择通知人员","博达软件管理系统",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            e.DataRow("审核通过") = "false"
        Else
            If MessageBox.show("请核实已审核的需求","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
                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"
                m.To = r("邮件通知").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ",")
                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("需求编号") & "-----此需求已审核,请研发和测试尽快处理"
                m.C & r("需求编号") & "      期望交期:"  & r("期望交期")
                m.Send
                MessageBox.show("需求编号:" & r("需求编号") & "------>" & "此需求已审核通过并mail通知了相关研发测试人员!","博达软件管理系统")
                Select Case e.DataCol.Name
                    Case "审核通过"
                        Tables("需求主表").Filter = "审核通过 = False And  审核不通过 = False"
                End Select
                For Each cdr As DataRow In r.DataRow.GetChildRows("需求明细表")
                    cdr("状态") = r("审核通过")
                Next
                If r.DataRow.GetChildRows("临时版本跟踪表").Count = 0 Then
                    Dim dr As DataRow = DataTables("临时版本跟踪表").AddNew()
                    dr("需求编号") = r("需求编号")
                End If
            Else
                e.DataRow("审核通过") = False           
        End If
    End If
End If
End If
DataTables.Save()

If e.DataCol.name="审核不通过" Then
    If e.DataRow("审核不通过") Then
        If r.IsNull("审核未通过原因") = True Then
            MessageBox.show("请检查,审核未通过原因列不能为空","博达软件管理系统",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            e.DataRow("审核不通过") = "false"
        Else
            If MessageBox.show("请核实未审核通过的需求","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
                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"
                m.To = r("技术支持邮箱")
                m.Title ="博达软件管理系统= = = = = = =" & "需求编号:" & r("需求编号") & "-----此需求审核未通过,请地方技术支持修改并再次提交需求"
                m.C & r("需求编号") & "      审核未通过原因:"  & r("审核未通过原因")
                m.Send
                MessageBox.show("需求编号:" & r("需求编号") & "------>" & "此需求未审核通过并mail通知了需求提交人员!","博达软件管理系统")
                Select Case e.DataCol.Name
                    Case "审核不通过"
                        Tables("需求主表").Filter = "审核通过 = False And  审核不通过 = False"
                End Select
                For Each cdr As DataRow In r.DataRow.GetChildRows("需求明细表")
                    cdr("状态") = r("审核通过")
                Next
            Else
                e.DataRow("审核不通过") = False           
        End If
    End If
End If
End If
DataTables.Save()

点击审核,发现报错,如附件。看不懂出错原因,之前一直没有出过这样的报错。

 


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

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

--  作者:有点甜
--  发布时间:2014/9/10 16:30:00
--  

datacolchanged加入的代码如下

 

If Forms("需求明细表").Opened Then
    Forms("需求明细表").Controls("通过").Enabled = e.DataRow("状态") = "confirming"
    Forms("需求明细表").Controls("未过").Enabled = e.DataRow("状态") = "confirming"   
End If


--  作者:liujywwy
--  发布时间:2014/9/10 16:36:00
--  
以下是引用有点甜在2014-9-10 16:30:00的发言:

datacolchanged加入的代码如下

 

If Forms("需求明细表").Opened Then
    Forms("需求明细表").Controls("通过").Enabled = e.DataRow("状态") = "confirming"
    Forms("需求明细表").Controls("未过").Enabled = e.DataRow("状态") = "confirming"   
End If

是在出错的需求主表添加还是需求明细表添加?