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


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

主题:[求助]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的确定按钮后,复选框变为没有勾选状态,这是怎么回事?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/19 9:38:00 [只看该作者]

代码没问题,至少我这样测试没问题。

 

If e.Row.Checked  Then
   
    If (MessageBox.show("123456","提醒产线",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes) Then
       
        e.Row.Locked = True
       
        e.Row.Checked = True
       
    Else
       
        e.Row.Checked  = False
       
    End If
   
   
End If


 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

详细错误信息:

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


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/20 19:58:00 [只看该作者]

If rr IsNot Nothing Then rr("log") = e.Row("订单log") & vbcrlf & rr("log")

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


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

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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/20 20:06:00 [只看该作者]

做例子上来,2楼代码没问题

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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/20 20:41:00 [只看该作者]

应该是触发了DataColChanged事件

 

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.Locked = True
        e.Row.Checked = True
systemready = True       
    Else
        e.Row.Checked  = False
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/20 21:13:00 [只看该作者]

你修改值自然会触发datacolchanged事件啊。

 

锁定还可以勾选,要限制,在beforeCheckRow事件判断是否锁定了,锁定就e.Cancel = true


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