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


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

主题:[求助]AfterCheckRow

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]AfterCheckRow  发帖心情 Post By:2015/10/18 21:13:00 [显示全部帖子]

AfterCheckRow代码如下:

If e.Row.Checked  Then

    If (MessageBox.show("订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "三者确定要锁定吗?","提醒产线",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes) Then

        e.Row("绑锁解绑") = "锁定"

        e.Row("订单log") = "订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "  " & user.name  & "  " & Date.now & "  " & "已锁定" & vbcrlf & e.Row("订单log")

        Dim rr As DataRow = DataTables("订单主表").Find("订单编号 = '" & e.Row("订单编号") & "'")

        rr("log") = e.Row("订单log") & vbcrlf & rr("log")

        e.Row.Locked = True

        e.Row.Checked = True

    Else

        e.Row.Checked  = False

    End If

End If

问题,怎么勾线了复选框后,然后点击msgbox的确定按钮后,复选框变为没有勾选状态,这是怎么回事?


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/10/20 19:55:00 [显示全部帖子]

BeforeCheckRow代码如下:

If e.Row("订单编号") = "" Or e.Row("产品化编号") = "" Then
    MessageBox.Show("订单编号,临时版本编号,产品化编号三者尚未绑定,故不能锁定","锁定请提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
    e.Cancel  = True
End If

AfterCheckRow代码如下:

If e.Row.Checked  Then

    If (MessageBox.show("订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "三者确定要锁定吗?","提醒产线",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes) Then

        e.Row("绑锁解绑") = "锁定"

        e.Row("订单log") = "订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "  " & user.name  & "  " & Date.now & "  " & "已锁定" & vbcrlf & e.Row("订单log")

        Dim rr As DataRow = DataTables("订单主表").Find("订单编号 = '" & e.Row("订单编号") & "'")

        rr("log") = e.Row("订单log") & vbcrlf & rr("log")

        e.Row.Locked = True

        e.Row.Checked = True

    Else

        e.Row.Checked  = False

    End If

End If


复选框打勾也发现运行错误(未将对象引用设置到对象的实例-------今天就和它干上了

.NET Framework 版本:2.0.50727.8009

Foxtable 版本:2014.11.11.1

错误所在事件:临时版本跟踪表,AfterCheckRow

详细错误信息:

未将对象引用设置到对象的实例。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/10/20 20:06:00 [显示全部帖子]

哦。
增加判断rr是否存在。确实不报这个错了。
但问题是点击完msgbox的确定后,复选框仍然没有选中。

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/10/20 20:25:00 [显示全部帖子]

我自己做例子,发现没有问题,是选中状态。
但是我的工程死活复选框选不中。是不是其他代码干扰的
看来我只能上工程了。不好意思,凑合着看一下。
窗体:产线2

http://pan.baidu.com/s/1qW5TGVM

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/10/20 21:08:00 [显示全部帖子]

这么改,是不会报错了。
问题1.这段代码怎么会触发datacolchanged事件?哪一列发生变化了?
问题2.勾选完,我的本意是这行锁定了,不能在勾选了。可是发现仍然能取消勾选。
e.Row.Checked = True
 e.Row.Locked = True

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/10/20 22:12:00 [显示全部帖子]

BeforeCheckRow代码:
If e.Row("订单编号") = "" Or e.Row("产品化编号") = "" Then
    MessageBox.Show("订单编号,临时版本编号,产品化编号三者尚未绑定,故不能锁定","锁定请提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
    e.Cancel  = True
End If
If e.Row.Checked = True Then
    Select Case user.Group
        Case "产线经理","开发者"
            If (MessageBox.show("你确定要解绑吗?","解绑前提醒你一下",MessageBoxButtons.YesNo,MessageBoxIcon.Question) =DialogResult.Yes) = True Then
                e.Row.Checked = False
            Else
                e.Cancel = True
            End If
        Case Else
            MessageBox.show("很不辛的告诉你,你没权限解绑","解绑前善意的提醒你一下",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Cancel = True
    End Select
End If

AfterCheckRow代码如下:
If e.Row.Checked  Then
    If (MessageBox.show("订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "三者确定要锁定吗?","提醒产线",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes) Then
        Systemready = False
        e.Row("绑锁解绑") = "锁定"
        e.Row("订单log") = "订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "  " & user.name  & "  " & Date.now & "  " & "已锁定" & vbcrlf & e.Row("订单log")
        Dim rr As DataRow = DataTables("订单主表").Find("订单编号 = '" & e.Row("订单编号") & "'")
        If rr IsNot Nothing Then
            rr("log") = e.Row("订单log") & vbcrlf & rr("log")
        End If
        e.Row.Checked = True
        e.Row.Locked = True
        
        Systemready = True
    Else
        e.Row.Checked  = False
    End If
End If
感觉做取消勾选,出现死循环。

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/10/21 15:42:00 [显示全部帖子]

这句不用写

 

e.Row.Checked = False


是指beforecheckedrow?怎么勾选了复选框,再次打开还是没有勾选?

If e.Row("订单编号") = "" Or e.Row("产品化编号") = "" Then

    MessageBox.Show("订单编号,临时版本编号,产品化编号三者尚未绑定,故不能锁定","锁定请提示",MessageBoxButtons.OK,MessageBoxIcon.Error)

    e.Cancel  = True

End If

If e.Row.Checked = True Then

    Select Case user.Group

        Case "产线经理","开发者"

            If (MessageBox.show("你确定要解绑吗?","解绑前提醒你一下",MessageBoxButtons.YesNo,MessageBoxIcon.Question) =DialogResult.Yes) = True Then

                Systemready = False

                e.Row("绑锁解绑") = "解锁"

                e.Row("订单log") = "订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "  " & user.name  & "  " & Date.now & "  " & "已解锁" & vbcrlf & e.Row("订单log")

                Dim rr As DataRow = DataTables("订单主表").Find("订单编号 = '" & e.Row("订单编号") & "'")

                If rr IsNot Nothing Then

                    rr("log") = e.Row("订单log") & vbcrlf & rr("log")

                End If

                systemready = True

            Else

                e.Cancel = True

            End If

        Case Else

            MessageBox.show("很不辛的告诉你,你没权限解绑","解绑前善意的提醒你一下",MessageBoxButtons.OK,MessageBoxIcon.Information)

            e.Cancel = True

    End Select

End If


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/10/21 16:17:00 [显示全部帖子]

总觉得不应该这样。

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/10/21 16:26:00 [显示全部帖子]

那行吧,我就用数据列来做吧。

 回到顶部