以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口事件问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=150793)

--  作者:0855yangjing
--  发布时间:2020/6/7 23:48:00
--  窗口事件问题
烦请老师帮助,看看问题如何解决!
With e.Form.Controls("Comhlh")
      If .Value   IsNot   Nothing   Then
          If Filter > ""   Then
            Filter = Filter &   " And "
          End   If
        Filter = Filter &   "回路号 = \'" & .Value &   "\'"
      End   If
End   With
Dim dr As DataRow
 dr = DataTables("报警设备定义").Find(Filter)
 If dr  IsNot Nothing Then  \'如果找到的话
    MessageBox.Show("该回路已经存在,如果不要可以删除,若要增加回路,请重新输入!", "提示")
 Else
   Dim r As Row
For i As Integer = 1 To 200
    r = Tables("报警设备定义").addnew
    r("主机号") = e.form.controls("Comzjh").text
    r("回路号") = e.form.controls("Comhlh").text
    r("区域") = e.form.controls("Comqy").text.
    r("局域_栋号") = e.form.controls("Comdh").text.
    r("局域_单元") = e.form.controls("Comhdy").text.
    r("局域_裙楼") = e.form.controls("Comhql").checked.
    r("局域_商铺") = e.form.controls("CHsp").checked.
    r("局域_地下室") = e.form.controls("CHdxs").checked.
    r("局域_标准层") = e.form.controls("CHbjc").checked.
    r("范围_层数") = e.form.controls("Comhcs").text.
    r("范围_防火分区") = e.form.controls("Comhfq").text.
    r("一次码") = format(i,"000")
Next
MessageBox.Show("请急时对该回路的设备进行编辑!", "提示")
End If
[此贴子已经被作者于2020/6/8 13:16:50编辑过]

--  作者:有点蓝
--  发布时间:2020/6/8 8:40:00
--  
有什么问题?http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626
--  作者:0855yangjing
--  发布时间:2020/6/8 13:19:00
--  
老师我调试的时候出现下面的对话框,看看如何解决!


图片点击可在新窗口打开查看此主题相关图片如下:调试出错.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/6/8 13:21:39编辑过]

--  作者:有点蓝
--  发布时间:2020/6/8 13:41:00
--  
text后面有个多余的“.”

r("区域") = e.form.controls("Comqy").text.

--  作者:0855yangjing
--  发布时间:2020/6/8 23:17:00
--  
老师,谢谢你了!我又碰上新问题,我在勾选检查框的时候,执行结果为空白的数据,另外我想在这四个勾选框中只能勾选其中一个,代码怎么修改才能实现呢?代码如下:

Dim Filter   As   String
With e.Form.Controls("Comzjh")
      If .Value   IsNot   Nothing  Then
        Filter =   "主机号 = \'" & .Value &   "\'"
      End   If
End   With
With e.Form.Controls("Comhlh")
      If .Value   IsNot   Nothing   Then
          If Filter > ""   Then
            Filter = Filter &   " And "
          End   If
        Filter = Filter &   "回路号 = \'" & .Value &   "\'"
      End   If
End   With
Dim dr As DataRow
 dr = DataTables("报警设备定义").Find(Filter)
 If dr  IsNot Nothing Then  \'如果找到的话
    MessageBox.Show("该回路已经存在,如果不要可以删除,若要增加回路,请重新输入!", "提示")
 Else
   Dim r As Row
For i As Integer = 1 To 200
    r = Tables("报警设备定义").addnew
    r("主机号") = e.form.controls("Comzjh").text
    r("回路号") = e.form.controls("Comhlh").text
    r("区域") = e.form.controls("Comqy").text
    r("局域_栋号") = e.form.controls("Comdh").text
    r("局域_单元") = e.form.controls("Comdy").text
    r("局域_裙楼") = e.form.controls("CHql").checked
    r("局域_商铺") = e.form.controls("CHsp").checked
    r("局域_地下室") = e.form.controls("CHdxs").checked
    r("局域_标准层") = e.form.controls("CHbjc").checked
    r("范围_层数") = e.form.controls("Comcs").text
    r("范围_防火分区") = e.form.controls("Comfq").text
    r("一次码") = format(i,"000")
Next
MessageBox.Show("请急时对该回路的设备进行编辑!", "提示")
End If
[此贴子已经被作者于2020/6/8 23:18:58编辑过]

--  作者:0855yangjing
--  发布时间:2020/6/8 23:21:00
--  窗口


老师,我又碰上新问题,我在勾选检查框的时候,执行结果为空白的数据,另外我想在这四个勾选框中只能勾选其中一个,代码怎么修改才能实现呢?





此主题相关图片如下:回路编辑.jpg
按此在新窗口浏览图片



[此贴子已经被作者于2020/6/8 23:23:57编辑过]

--  作者:有点蓝
--  发布时间:2020/6/9 8:31:00
--  
方法1、改为单选框
2、在每个checkedchanged事件把其它勾选去掉,如复选框1:

if e.sender.checked then
e.form.controls("复选框2").checked = false
e.form.controls("复选框3").checked = false
end if

--  作者:0855yangjing
--  发布时间:2020/6/10 22:25:00
--  
解决了,谢谢老师了!