Foxtable(狐表)用户栏目专家坐堂 → [求助]rediobutton只对状态为confirming有效,其他的为无效为灰色,不可选择


  共有4218人关注过本帖树形打印复制链接

主题:[求助]rediobutton只对状态为confirming有效,其他的为无效为灰色,不可选择

帅哥哟,离线,有人找我吗?
liujywwy
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
[求助]rediobutton只对状态为confirming有效,其他的为无效为灰色,不可选择  发帖心情 Post By:2014/9/10 15:17:00 [显示全部帖子]

在需求明细表有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


 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By: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都是可以选择的。


 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By: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
按此在新窗口浏览图片

 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By: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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By: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

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


 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/10 16:42:00 [显示全部帖子]

以下是引用有点甜在2014-9-10 16:39:00的发言:
 需求明细表

需求明细表你不是已经让我改为红色字体了吗?

If e.DataCol.Name = "技术支持邮箱" Then
    If e.NewValue Is Nothing Then
        e.DataRow("手机号码") = Nothing
        e.DataRow("QQ号码") = Nothing
        e.DataRow("地方平台") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("技术支持信息表").Find("[Name] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("手机号码") = dr("手机号码")
            e.DataRow("QQ号码") = dr("QQ")
            e.DataRow("地方平台") = dr("地方平台")
        End If
    End If
End If

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


 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/10 16:51:00 [显示全部帖子]

以下是引用有点甜在2014-9-10 16:45:00的发言:

 改成这段,那段是Afterload事件的

 

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

在需求明细表点击第二步提交,报错。估计这段代码还是有问题的。


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


 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/10 16:57:00 [显示全部帖子]

以下是引用有点甜在2014-9-10 16:53:00的发言:
 我从来没有叫过你修改需求主表的datacolchanged事件!

不好意思,是我自己搞错了。多谢。


 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/11 9:42:00 [显示全部帖子]

发现一个问题。

在临时版本跟踪表中,把新増行(需求编号为20140904)的状态列改为confirming时。

在需求明细表的所有行(需求编号20140904,20140903,20140902,20140901)都对通过,未通2个rediobutton选项是可选的。

查了一下后台的需求明细表,发现只有需求编号为20140904的状态列为confirming,其他3个需求编号状态列都是为空的。

如果都是为空按道理这2个通过,未通rediobutton应该是灰色的,不可选择的。

当我再次把需求编号20140904选择了通过,这2个rediobutton对这4个需求都是灰色的。

所有我觉得好像是某一行的状态会影响这个表的状态似的。

请帮忙看看是咋回事。

[此贴子已经被作者于2014-9-11 9:44:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
liujywwy
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/9/11 10:09:00 [显示全部帖子]

以下是引用有点甜在2014-9-11 9:48:00的发言:

 通过你写了什么代码,如果不想影响,参考

 

 http://www.foxtable.com/help/topics/2218.htm

 

发现一个问题。

在临时版本跟踪表中,把新増行(需求编号为20140904)的状态列改为confirming时。

在需求明细表的所有行(需求编号20140904,20140903,20140902,20140901)都对通过,未通2个rediobutton选项是可选的。

查了一下后台的需求明细表,发现只有需求编号为20140904的状态列为confirming,其他3个需求编号状态列都是为空的。

如果都是为空按道理这2个通过,未通rediobutton应该是灰色的,不可选择的。

当我再次把需求编号20140904选择了通过,这2个rediobutton对这4个需求都是灰色的。

所有我觉得好像是某一行的状态会影响这个表的状态似的。

请帮忙看看是咋回事。

 

通过的代码如下,但我觉得应该不是通过代码导致的。毕竟是从临时版本跟踪表某行的状态列变更才导致了需求明细表所有的行对通过和未通可见的。

If e.Sender.Checked Then
    Dim r As Row = Tables("需求明细表").Current
    If r IsNot Nothing Then
        DataTables("临时版本跟踪表").ReplaceFor("状态", "", "需求编号 = '" & 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("临时版本编号") & "======" & "现场确认已通过,请发布版本"
        m.Send
        MessageBox.show("需求编号:" & r("需求编号") &"<= = =>临时版本编号:" & r("临时版本编号")  & "此版本现场确认通过,测试部将发布!","博达软件管理系统")
        r("状态") = ""
    End If
End If
DataTables.save()

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


 回到顶部
总数 13 1 2 下一页