Foxtable(狐表)用户栏目专家坐堂 → [求助]DataColChanged


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

主题:[求助]DataColChanged

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
[求助]DataColChanged  发帖心情 Post By:2015/3/30 17:03:00 [显示全部帖子]

DataColChanged里面,红色的代码对吗?怎么提示未将对象至于实例。去了红色的代码就不会有错。
If e.DataRow("审核通过") And Forms("需求主体").Controls("CheckBox1") = True Then

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


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

错误所在事件:表,需求主表,DataColChanged
详细错误信息:
调用的目标发生了异常。
没有为 类型“CheckBox” 和 类型“Boolean” 定义运算符“=”。

If Forms("需求主体").Opened = True Then
    If e.DataCol.name="审核通过" Then
        If e.DataRow("审核通过") = True And Forms("需求主体").Controls("CheckBox1") = True Then

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


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


If e.DataCol.name="审核通过" Then
    If e.DataRow("审核通过") AndAlso Forms("需求主体").Opened AndAlso Forms("需求主体").Controls("CheckBox1").Checked Then
       *****


If e.DataCol.name="审核通过" Then    
    If e.DataRow("审核通过") AndAlso Forms("需求主体").Opened AndAlso Forms("需求主体").Controls("CheckBox1").Checked = False Then
        ***
请问为什么这2段代码都会执行,第一段CheckBox1为打勾的时候执行,第二段为CheckBox1为不打勾的时候执行,怎么会执行两次呢。另外我用and不行,一定要用andalso才行。

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


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

第二段代码:
If e.DataCol.name="审核通过" Then    
    If e.DataRow("审核通过") AndAlso Forms("需求主体").Opened AndAlso Forms("需求主体").Controls("CheckBox1").Checked = False Then
        If r.IsNull("邮件通知")
            str &= "邮件通知,"
        End If
        If r.IsNull("研发邮箱") Then
            str &= "研发邮箱"
        End If
        If str >""
            MessageBox.show("请检查," & str.Trim(",") & "不能为空","博达软件管理系统",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            e.DataRow("审核通过") = "false"
        End If
        If r.IsNull("邮件通知") = False AndAlso r.IsNull("研发邮箱") = False Then
            If MessageBox.show("请核实已审核的需求","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
                Forms("发送mail").open
                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
                If r.IsNull("附加通知人员") = False Then
                    m.AddReceiver(r("附加通知人员").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
                End If
                e.DataRow("审核通过时间") = Date.now
                m.Title = "博达软件管理系统= = = = = = =" & "需求编号:" & r("需求编号") & "-----此需求已审核,请研发和测试尽快处理"
                m.C & r("需求编号") & "      客户:" & r("客户") & "      博达机型:" & r("博达机型") & vbcrlf & "需求提交时间:" & r("需求提交时间") & "      审核通过时间:" & r("审核通过时间") & "      版本期望交期:" & r("期望交期") & vbcrlf & "show version:" & r("show_version") & vbcrlf & "需求描述:" & r("需求描述")
                m.SendAsync()
                Forms("发送mail").close
                For Each cdr As DataRow In r.DataRow.GetChildRows("需求明细表")
                    cdr("状态") = "审核通过"
                    cdr("审核通过时间") = r("审核通过时间")
                    cdr("状态直白") = "需求审核通过"
                Next
                If r.DataRow.GetChildRows("临时版本跟踪表").Count = 0 Then
                    Dim dr As DataRow = DataTables("临时版本跟踪表").AddNew()
                    dr("需求编号") = r("需求编号")
                End If
                MessageBox.show("需求编号:" & r("需求编号") & "------>" & "此需求已审核通过并mail通知了相关研发测试人员!","博达软件管理系统")
                e.DataRow("log") = User.Name & " 于" & Date.Now & " 对" & e.DataRow("需求编号") & "勾选了" & "审核通过"  & " _紧急" & e.DataRow("紧急")
                Select Case e.DataCol.Name
                    Case "审核通过"
                        Tables("需求主表").Filter = "审核通过 = False And  审核不通过 = False"
                End Select
            Else
                e.DataRow("审核通过") = False
            End If
        End If
    End If
End If
弹出了2次请核实已审核的需求的msg


[此贴子已经被作者于2015/3/30 18:08:54编辑过]

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


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

第一段代码:
If e.DataCol.name="审核通过" Then
    If e.DataRow("审核通过") AndAlso Forms("需求主体").Opened AndAlso Forms("需求主体").Controls("CheckBox1").Checked Then
        If r.IsNull("邮件通知")
            str &= "邮件通知,"
        End If
        If r.IsNull("研发邮箱") Then
            str &= "研发邮箱"
        End If
        If str >""
            MessageBox.show("请检查," & str.Trim(",") & "不能为空","博达软件管理系统",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            e.DataRow("审核通过") = "false"
        End If
        If r.IsNull("邮件通知") = False And r.IsNull("研发邮箱") = False Then
            If MessageBox.show("请核实已审核的需求","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
                Forms("发送mail").open
                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
                If r.IsNull("附加通知人员") = False Then
                    m.AddReceiver(r("附加通知人员").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
                End If
                e.DataRow("审核通过时间") = Date.now
                m.Title = "博达软件管理系统= = = = = = =" & "需求编号:" & r("需求编号") & "-----此需求已审核(处于紧急状态),请研发和测试尽快处理"
                m.C & r("需求编号") & "      客户:" & r("客户") & "      博达机型:" & r("博达机型") & vbcrlf & "需求提交时间:" & r("需求提交时间") & "      审核通过时间:" & r("审核通过时间") & "      版本期望交期:" & r("期望交期") & vbcrlf & "show version:" & r("show_version") & vbcrlf & "需求描述:" & r("需求描述")
                m.SendAsync()
                Forms("发送mail").close
                For Each cdr As DataRow In r.DataRow.GetChildRows("需求明细表")
                    cdr("状态") = "审核通过"
                    cdr("审核通过时间") = r("审核通过时间")
                    cdr("状态直白") = "需求审核通过"
                Next
                If r.DataRow.GetChildRows("临时版本跟踪表").Count = 0 Then
                    Dim dr As DataRow = DataTables("临时版本跟踪表").AddNew()
                    dr("需求编号") = r("需求编号")
                End If
                MessageBox.show("需求编号:" & r("需求编号") & "------>" & "此紧急需求已审核通过并mail通知了相关研发测试人员!","博达软件管理系统")
                e.DataRow("log") = User.Name & " 于" & Date.Now & " 对" & e.DataRow("需求编号") & "勾选了" & "审核通过"  & " _紧急" & e.DataRow("紧急")
                Select Case e.DataCol.Name
                    Case "审核通过"
                        Tables("需求主表").Filter = "审核通过 = False And  审核不通过 = False"
                End Select
            Else
                e.DataRow("审核通过") = False
            End If
        End If
    End If
End If



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


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

If e.DataCol.name="审核通过" Then
    If e.DataRow("审核通过") AndAlso Forms("需求主体").Opened AndAlso Forms("需求主体").Controls("CheckBox1").Checked Then
        msgbox("第一次")----第一次执行
        If r.IsNull("邮件通知")
        str &= "邮件通知,"
        End If
        If r.IsNull("研发邮箱") Then
        str &= "研发邮箱"
        End If
        If str >""
        MessageBox.show("请检查," & str.Trim(",") & "不能为空","博达软件管理系统",MessageBoxButtons.OK,MessageBoxIcon.Warning)
        e.DataRow("审核通过") = "false"
        End If
        If r.IsNull("邮件通知") = False And r.IsNull("研发邮箱") = False Then
        If MessageBox.show("请核实已审核的需求","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
        Forms("发送mail").open
        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
        If r.IsNull("附加通知人员") = False Then
        m.AddReceiver(r("附加通知人员").Replace(vbcrlf, ",").Replace(chr(13), ",").Replace(chr(10), ","))
        End If
        e.DataRow("审核通过时间") = Date.now
        m.Title = "博达软件管理系统= = = = = = =" & "需求编号:" & r("需求编号") & "-----此需求已审核(处于紧急状态),请研发和测试尽快处理"
        m.C & r("需求编号") & "      客户:" & r("客户") & "      博达机型:" & r("博达机型") & vbcrlf & "需求提交时间:" & r("需求提交时间") & "      审核通过时间:" & r("审核通过时间") & "      版本期望交期:" & r("期望交期") & vbcrlf & "show version:" & r("show_version") & vbcrlf & "需求描述:" & r("需求描述")
        m.SendAsync()
        Forms("发送mail").close
        For Each cdr As DataRow In r.DataRow.GetChildRows("需求明细表")
        cdr("状态") = "审核通过"
        cdr("审核通过时间") = r("审核通过时间")
        cdr("状态直白") = "需求审核通过"
        Next
        If r.DataRow.GetChildRows("临时版本跟踪表").Count = 0 Then
        Dim dr As DataRow = DataTables("临时版本跟踪表").AddNew()
        dr("需求编号") = r("需求编号")
        End If
        MessageBox.show("需求编号:" & r("需求编号") & "------>" & "此紧急需求已审核通过并mail通知了相关研发测试人员!","博达软件管理系统")
        e.DataRow("log") = User.Name & " 于" & Date.Now & " 对" & e.DataRow("需求编号") & "勾选了" & "审核通过"  & " _紧急" & e.DataRow("紧急")
        Select Case e.DataCol.Name
        Case "审核通过"
        Tables("需求主表").Filter = "审核通过 = False And  审核不通过 = False"
        End Select
        Else
        e.DataRow("审核通过") = False
        End If
        End If
    End If
End If

DataTables.Save()


If e.DataCol.name="审核通过" Then
    If e.DataRow("审核通过") AndAlso Forms("需求主体").Opened AndAlso Forms("需求主体").Controls("CheckBox1").Checked = False Then
        msgbox("第二次")-----第二次执行

共执行了2次,第一次弹出msgbox("第一次")。第二次弹出msgbox("第二次")。
所以决定蓝色的判断条件有问题。

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


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

我还是上例子吧。
需求主表--datacolchanged。
第一种情况:邮件通知选择liujiyong@bdcom.com.cn,然后紧急打勾,最后审核通过打勾。
第二种情况:邮件通知选择liujiyong@bdcom.com.cn,然后紧急不打勾,最后审核通过打勾。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临时版本跟踪系统1225.rar


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


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


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

liujy
但我SystemReady仅仅是规避了问题,并没有解决问题。

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


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

好像也不对吧。
加上了也是同样的效果。

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


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

我怎么反复测试都是有问题的呢?奇怪,为什么我们的现象不一样

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