以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗体控件没发操作。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106352)

--  作者:huhu
--  发布时间:2017/9/7 10:42:00
--  窗体控件没发操作。
现象:打开窗体2,然后关掉窗体2,然后点击窗体1,发现窗体1里面的控件都没发操作。比如下面的窗体1的combobox。但是如果只打开窗体1(不打开关掉窗体2的情况),所有控件都可以用。这是怎么回事?

窗体1的combobox的Enter的代码
Dim rjbb As WinForm.ComboBox = e.Form.Controls("软件版本")
Dim csjx As WinForm.ComboBox = e.Form.Controls("测试机型")
Dim csxm As WinForm.ComboBox = e.Form.Controls("测试项目")
If user.IsRole("开发者") Or user.IsRole("测试部经理")  Then
    msgbox(1)-----执行了,但列表没法选择了(上面的操作现象)。
    csxm.ComboList = DataTables("测试项目列表").SQLGetComboListString("测试项目名称")
Else
    csxm.ComboList = DataTables("测试项目列表").SQLGetComboListString("测试项目名称","测试组名 = \'" & user.group & "\'")    
End If
rjbb.text = ""
csjx.text = ""

窗体2的afterload代码:
If user.IsRole("测试部经理") Then
    DataTables("BUG录入表").LoadFilter ="状态 <> \'待提交\'"
    DataTables("BUG录入表").Load
    Tables("BUG录入表").sort = "BUG_ID DESC"
    Dim cnt As Integer = DataTables("BUG录入表").SQLCompute("Count(BUG_ID)","[严重程度] = \'死机\' And (状态 = \'待解决\' or 状态 = \'未解决\')")
    e.Form.Controls("超严重BUG").text = "超严重BUG(" & cnt & ")"
    Dim cnt11 As Integer = DataTables("BUG录入表").SQLCompute("Count(BUG_ID)","[优先级别] = \'立刻(Immediate)\' And (状态 = \'待解决\' or 状态 = \'未解决\')")
    e.Form.Controls("超紧急BUG").text = "超紧急BUG(" & cnt11 & ")"
    Dim Page As WinForm.TopicPage
    Dim cnt1 As Integer = DataTables("BUG录入表").SQLCompute("Count(BUG_ID)","状态 = \'待解决\' and 提交人邮箱 = \'" & user.name & "\'")
    Dim cnt2 As Integer = DataTables("BUG录入表").SQLCompute("Count(BUG_ID)","状态 = \'已更新\'  and 提交人邮箱 = \'" & user.name & "\'")
    Dim cnt3 As Integer = DataTables("BUG录入表").SQLCompute("Count(BUG_ID)","状态 = \'已解决\'  and 提交人邮箱 = \'" & user.name & "\'")
    Dim cnt4 As Integer = DataTables("BUG录入表").SQLCompute("Count(BUG_ID)","状态 = \'未解决\'  and 提交人邮箱 = \'" & user.name & "\'")
    Dim cnt5 As Integer = DataTables("BUG录入表").SQLCompute("Count(BUG_ID)","提交人邮箱 = \'" & user.name & "\' and 状态 <> \'待提交\'")
    Page = e.Form.Controls("TopicBar1").Pages.Add("测试部BUG统计","测试部BUG统计")
    Page.Links.Add("待解决的BUG","待解决的BUG(" & cnt1 & ")" )
    Page.Links.Add("待验证的BUG","待验证的BUG(" & cnt2 & ")" )
    Page.Links.Add("已解决的BUG","已解决的BUG(" & cnt3 & ")" )
    Page.Links.Add("未解决的BUG","未解决的BUG(" & cnt4 & ")" )
    Page.Links.Add("部组个和BUG","部组个和BUG(" & cnt5 & ")" )
    Dim cm d As New S QLCommand
    cmd.Conn ecti
    Dim dt As DataTable
    cmd.CommandText = "SEL ECT * From BUG录入表"
    dt = cm d.ExecuteReader()
    Dim t1 As WinForm.TreeView = e.Form.Controls("TreeView1")
    t1.BuildTree(dt,"测试组名|提交人","测试部门 = \'测试部部门\'")
    t1.Nodes.Insert("显示测试部门所有测试人员提交的BUG",0)
    Dim t2 As WinForm.TreeView = e.Form.Controls("TreeView2")
    t2.CreateTree(dt,"怀疑模块","","测试部门 = \'测试部部门\'")
    t2.Nodes.Insert("显示测试部门所有模块的BUG",0)
    Dim t3 As WinForm.TreeView = e.Form.Controls("TreeView3")
    t3.CreateTree(dt,"测试机型","","测试部门 = \'测试部部门\'")
    t3.Nodes.Insert("显示测试部门所有机型的BUG",0)
    Dim t4 As WinForm.TreeView = e.Form.Controls("TreeView4")
    t4.CreateTree(dt,"测试项目名称","","测试部门 = \'测试部部门\'")
    t4.Nodes.Insert("显示测试部门所有项目的BUG",0)
    Dim t5 As WinForm.TreeView = e.Form.Controls("TreeView5")
    t5.CreateTree(dt,"软件版本","","测试部门 = \'测试部部门\'")
    t5.Nodes.Insert("显示测试部门所有环境的BUG",0)
End If

With DataTables("BUG录入表")
    .LoadOver = "BUG_ID"
    .LoadReverse=True
    .LoadTop =  22
    .LoadPage =  0
    .Load()
    If .TotalPages = 0 Then
        .LoadPage = 0
        e.Form.Controls("TextBox1").Value = .LoadPage  & "/" & .TotalPages
    Else
        e.Form.Controls("TextBox1").Value = .LoadPage + 1  & "/" & .TotalPages
    End  If
End  With

e.Form.Controls("请输入BUG ID号").Text = "请输入BUG ID号"
e.Form.Controls("请输入研发全拼").Text = "请输入研发全拼"
e.Form.Controls("请输入测试全拼").Text = "请输入测试全拼"

--  作者:有点甜
--  发布时间:2017/9/7 10:47:00
--  

窗口1的控件绑定了表列?

 

你打开窗口2之后,是不是把表或行或列设置成不可编辑了?


--  作者:huhu
--  发布时间:2017/9/7 10:57:00
--  
是绑定了表列了。但属性都是default。没有设置。
--  作者:有点甜
--  发布时间:2017/9/7 11:33:00
--  
以下是引用huhu在2017/9/7 10:57:00的发言:
是绑定了表列了。但属性都是default。没有设置。

 

你肯定锁定行,或者锁定表了。或者是你窗口2重新加载数据后数据丢失了。


--  作者:huhu
--  发布时间:2017/9/8 11:48:00
--  
窗体1的代码
 Dim lbl As WinForm.Label
lbl = e.Form.Controls("Welcome")
lbl.Text = "今天是" & Date.Today() & ",博达BUG综合管理系统欢迎您!"


If vars("表头") = "" Then
    Dim r As DataRow = DataTables("BUG录入表").AddNew
    r("测试项目名称") = "请选择测试项目名称"
    r("现象描述") = "请输入BUG故障信息,越详细越好.但不要罗里吧嗦,让研发看着郁闷!"
    r("严重程度") = "请选择严重程度"
    r("优先级别") = "请选择优先级别"
    r("怀疑模块") = "请选择模块"
    r("状态") = "待提交"
    r.save    
    Tables("BUG录入表").sort = "BUG_ID DESC"
    e.Form.Controls("必现").Enabled = True
    e.Form.Controls("可重现").Enabled = True
    e.Form.Controls("难重现").Enabled = True
    e.Form.Controls("不能重现").Enabled = True
End If 

--  作者:有点甜
--  发布时间:2017/9/8 13:02:00
--  

把你窗口2的代码一点一点注释掉,然后测试。

 

不会做,请上传实例测试。