Foxtable(狐表)用户栏目专家坐堂 → [求助]同时修改多行内容的按钮代码怎么写


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

主题:[求助]同时修改多行内容的按钮代码怎么写

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


加好友 发短信
等级:幼狐 帖子:55 积分:479 威望:0 精华:0 注册:2019/4/13 17:35:00
[求助]同时修改多行内容的按钮代码怎么写  发帖心情 Post By:2019/10/7 21:13:00 [只看该作者]

增加设备要求如下:
1.是编辑表格内容,不是追加内容;
2.“主机号”和“回路号”只是用来查找多少主机号和回路号,然后进行编辑;
3.在数据表中,除“主机号”、“回路号”、“开始编号”和“结束编号”列内容不可修改,其余均可修改和增加;
4.“设备”和“开始编号”选项为必选项;
5.可以增加一个设备和多个设备,但是不能在于200个设备;
6.“开始编号”和“结束编号”为“报警设备”表的“一次码”列,用来设定要编辑“报警设备”表的“一次码”的行数范围;
7.选定选项内容及开始编号和结束编号后,往数据表中每列写入相同的内容。

 

我弄的代码不能实现上面的要求:

Dim r As Row
For i As Integer = 1 To 200
    r = Tables("报警设备").addnew
    r("区域") = e.form.controls("Comqy").text
    r("局域_栋号") = e.form.controls("Comdh").text
    r("局域_单元") = e.form.controls("Comdy").text
    r("范围_层数") = e.form.controls("Comcs").text

     r("局域_裙楼") = e.form.controls("Ck1").Checked
    r("范围_防火分区") = e.form.controls("Comfq").text
    r("设备类型") = e.form.controls("sblx").text
    r("控制类型") = e.form.controls("czlx").text


Next


图片点击可在新窗口打开查看此主题相关图片如下:设备类型.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:设备类型2.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:增加设备按钮代码怎么写.jpg
图片点击可在新窗口打开查看

 

另外

  1.我的设备类型选项与表中的下拉表不相同,有什么办法吗?

  2.窗口下拉列表,只要是中文开头的和数字开头的,均为乱序排列,求解决?


图片点击可在新窗口打开查看此主题相关图片如下:列表乱序.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/10/7 21:18:45编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105941 积分:538774 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/8 9:50:00 [只看该作者]

1、不是增加行,那么使用find查询到已有的行再赋值:http://www.foxtable.com/webhelp/topics/0396.htm
3、编号参考:

dim cnt as integer = val(e.form.controls("stid").text)
dim cnt2 as integer = i + 200
For i as integer = cnt To cnt2
    r = Tables("报警设备").addnew
    r("区域") = e.form.controls("Comqy").text
    r("一次码") = format(i,"000")
……

4、字符排序是按照字符串从左到右开始排序的,所以字符“13”比“3”小,因为“13”第一位是“1”,和“3”进行比较,可以增加一个辅助的排序列进行排序

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


加好友 发短信
等级:幼狐 帖子:55 积分:479 威望:0 精华:0 注册:2019/4/13 17:35:00
  发帖心情 Post By:2019/10/8 21:18:00 [只看该作者]

老师麻烦帮我查看一程序代码,问题怎么解决?

Dim Filter   As   String
With e.Form.Controls("ComZJ")
      If .Value   IsNot   Nothing  Then
        Filter =   "主机号 = '" & .Value &   "'"
      End   If
End   With
With e.Form.Controls("ComHL")
      If .Value   IsNot   Nothing   Then
          If Filter > ""   Then
            Filter = Filter &   " And "
          End   If
        Filter = Filter &   "回路号 = '" & .Value &   "'"
      End   If
End   With
Tables("报警设备").Filter = Filter

Dim dr As DataRow
Dim r As Row
Dim cnt As Integer = val(e.form.controls("StID").text)
Dim cnt2 As Integer = val(e.form.controls("EndID").text)
dr = DataTables("报警设备").Find(Filter)
 

 dr = DataTables("报警设备").Find("一次码" = ("StID").text)
 If dr  IsNot Nothing Then  '如果找到的话
   For i As Integer = cnt To cnt2
    dr("区域") = e.form.controls("Comqy").text
    dr("局域_栋号") = e.form.controls("Comdh").text
    dr("局域_单元") = e.form.controls("Comdy").text
   dr("范围_层数") = e.form.controls("Comcs").text
    dr("局域_裙楼") = e.form.controls("Ck1").Checked
    dr("局域_地下室") = e.form.controls("Ck2").Checked
    dr("局域_商铺") = e.form.controls("Ck3").Checked
    dr("范围_防火分区") = e.form.controls("Comfq").text
    dr("设备类型") = e.form.controls("sblx").text
    dr("控制类型") = e.form.controls("czlx").text
   Next
  Else
     MessageBox.Show("该回路不存在,请先增加回路!", "提示")
End If


图片点击可在新窗口打开查看此主题相关图片如下:调试程序1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/10/8 21:20:50编辑过]

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


加好友 发短信
等级:幼狐 帖子:55 积分:479 威望:0 精华:0 注册:2019/4/13 17:35:00
  发帖心情 Post By:2019/10/8 21:23:00 [只看该作者]

 

 

我在窗口全局事件的Enter中的代码如下:

 

Dim ctl As WinForm.Control = e.Sender
Select Case ctl.BindingField
     Case  "报警设备.主机号", "报警设备.回路号"
ctl.ReadOnly =  BooleanEnum.True  '禁止编辑
End  Select


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


加好友 发短信
等级:幼狐 帖子:55 积分:479 威望:0 精华:0 注册:2019/4/13 17:35:00
  发帖心情 Post By:2019/10/8 21:25:00 [只看该作者]

“4、字符排序是按照字符串从左到右开始排序的,所以字符“13”比“3”小,因为“13”第一位是“1”,和“3”进行比较,可以增加一个辅助的排序列进行排序”
我还真不懂怎么弄这东东呢!

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105941 积分:538774 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/8 21:34:00 [只看该作者]

上传具体实例,并说明最终需要的效果

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


加好友 发短信
等级:幼狐 帖子:55 积分:479 威望:0 精华:0 注册:2019/4/13 17:35:00
  发帖心情 Post By:2019/10/8 21:40:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:火灾自动报警系统.table

增加设备要求如下:
1.是编辑表格内容,不是追加内容;
2.“主机号”和“回路号”只是用来查找多少主机号和回路号,然后进行编辑;
3.在数据表中,除“主机号”、“回路号”、“开始编号”和“结束编号”列内容不可修改,其余均可修改和增加;
4.可修改编辑的内容中,“设备”和“开始编号”选项为必选项;
5.可以增加一个设备和多个设备,但是不能大于200个设备;
6.“开始编号”和“结束编号”为“报警设备”表的“一次码”列,用来设定要编辑“报警设备”表的“一次码”的行数范围;
7.选定选项内容及开始编号和结束编号后,往数据表中每列写入相同的内容。

注明:在“增加回路”中已建立了有主机号、回路号和一次码的回路,每台主机的每个回路只有200个设备编号,也就是从001--200,在增加设备时只对其他列进行编辑!

[此贴子已经被作者于2019/10/8 21:53:50编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105941 积分:538774 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/8 22:29:00 [只看该作者]

1.是编辑表格内容,不是追加内容;
5.可以增加一个设备和多个设备,但是不能大于200个设备;

追加内容和增加设备不是一回事?追加内容指什么?

3.在数据表中,除“主机号”、“回路号”、“开始编号”和“结束编号”列内容不可修改,其余均可修改和增加;

数据表?哪个表有“开始编号”和“结束编号”列?

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


加好友 发短信
等级:幼狐 帖子:55 积分:479 威望:0 精华:0 注册:2019/4/13 17:35:00
  发帖心情 Post By:2019/10/9 20:46:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:报警设备表说明1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:报警设备表说明2.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:55 积分:479 威望:0 精华:0 注册:2019/4/13 17:35:00
  发帖心情 Post By:2019/10/9 21:39:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:报警设备结构图.jpg
图片点击可在新窗口打开查看
我不是在报警设备表的底部增加设备,而是要在某个主机的某个回路下增加报警设备,每个报警设备占用一个一次码(也就是设备编号),发生火灾了,才知道是哪个位置的报警设备发现了火情。

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