以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]记录框的状态切换咋就不行了呢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60243)

--  作者:liujywwy
--  发布时间:2014/11/20 17:41:00
--  [求助]记录框的状态切换咋就不行了呢?

在临时版本跟踪表。之前在记录框的状态栏选择各种状态都是可以的,现在怎么就不行了呢?

 

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


--  作者:有点甜
--  发布时间:2014/11/20 17:52:00
--  

 你的datacolchanging事件有这样一句代码,如果不是录入,就取消选择了

 

If e.DataCol.name = "状态"  Then
    If user.Group<>"录入" Then
        e.cancel=True
    End If
End If


--  作者:liujywwy
--  发布时间:2014/11/20 17:57:00
--  
以下是引用有点甜在2014-11-20 17:52:00的发言:

 你的datacolchanging事件有这样一句代码,如果不是录入,就取消选择了

 

If e.DataCol.name = "状态"  Then
    If user.Group<>"录入" Then
        e.cancel=True
    End If
End If

哦。那应该是这段代码影响的,直接去掉。

另外的问题,为什么在需求明细表点击了通过,在临时版本跟踪表的log就没有记录。之前是有的。难道又是哪句代码影响了?


--  作者:有点甜
--  发布时间:2014/11/20 18:04:00
--  

  如果你先记录log,两种方法

 

1、去掉systemReady

            \'SystemReady =  False
            DataTables("临时版本跟踪表").ReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").SQLReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").ReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").SQLReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            \'SystemReady = True
2、在事件里直接给Log列赋值,因为如果用了systemready那么datacolchanged事件是不会触发的


--  作者:liujywwy
--  发布时间:2014/11/20 18:13:00
--  
以下是引用有点甜在2014-11-20 18:04:00的发言:

  如果你先记录log,两种方法

 

1、去掉systemReady

            \'SystemReady =  False
            DataTables("临时版本跟踪表").ReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").SQLReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").ReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").SQLReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            \'SystemReady = True
2、在事件里直接给Log列赋值,因为如果用了systemready那么datacolchanged事件是不会触发的

主要是如果去掉了systemready,在需求明细表点击通过,未过,取消后。在临时版本跟踪表状态栏值不会改变。就会导致loadfilter出问题。


--  作者:有点甜
--  发布时间:2014/11/20 19:07:00
--  

 

[此贴子已经被作者于2014-11-20 19:06:41编辑过]

--  作者:有点甜
--  发布时间:2014/11/20 19:09:00
--  

 那你就用方法二,在代码那里,先查找对应的行,然后给log列赋值

 

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

 


--  作者:liujywwy
--  发布时间:2014/11/21 9:42:00
--  
以下是引用有点甜在2014-11-20 19:09:00的发言:

 那你就用方法二,在代码那里,先查找对应的行,然后给log列赋值

 

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

 

这样应该对了吧

DataTables.save()
If e.Sender.Checked Then
    Dim r As Row = Tables("需求明细表").Current
    If r IsNot Nothing Then
        If MessageBox.show("确认此版本现场测试通过?","博达软件管理系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then
            SystemReady =  False
            DataTables("临时版本跟踪表").ReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").SQLReplaceFor("状态", "Confirmed", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").ReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            DataTables("临时版本跟踪表").SQLReplaceFor("已确认可以发布", "True", "需求编号 = \'" & r("需求编号") & "\'")
            Dim dr  As  DataRow
            dr = DataTables("临时版本跟踪表").Find("需求编号 = \'" & r("需求编号") & "\'")
            If dr("状态") = "Confirmed" Then
                If dr.IsNull("Log") = False Then
                    dr("log") = User.Name & " " & Date.Now & " " & dr("状态") & vbcrlf & dr("log")
                Else
                    dr("log") = User.Name & " " & Date.Now & " " & dr("状态")
                End If
            End If
            SystemReady = True
            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"
            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


--  作者:有点甜
--  发布时间:2014/11/21 9:45:00
--  
 对不对你不会测试下么?
--  作者:有点甜
--  发布时间:2014/11/21 9:48:00
--  
Dim dr As  DataRow
dr = DataTables("临时版本跟踪表").Find("需求编号 = \'" & r("需求编号") & "\'")
If dr Is Nothing Then
    dr = DataTables("临时版本跟踪表").SQLFind("需求编号 = \'" & r("需求编号") & "\'")
End If
If dr IsNot Nothing Then
   
    If dr.IsNull("Log") = False Then
        dr("log") = User.Name & " " & Date.Now & " " & dr("状态") & vbcrlf & dr("log")
    Else
        dr("log") = User.Name & " " & Date.Now & " " & dr("状态")
    End If
    dr.save
End If