Foxtable(狐表)用户栏目专家坐堂 → [讨论]控件绑定指定行列内容


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

主题:[讨论]控件绑定指定行列内容

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


加好友 发短信
等级:二尾狐 帖子:550 积分:5021 威望:0 精华:0 注册:2017/4/20 11:08:00
[讨论]控件绑定指定行列内容  发帖心情 Post By:2021/3/6 10:13:00 [只看该作者]

老师好:
请帮看看,窗口文本框控件如何绑定指定表的行列内容,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文本框绑定指定表行列.table

谢谢!


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


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

这种没有办法绑定,只能使用代码赋值,比如

e.Form.Controls("TextBox1").text = Tables("表A").Rows(1)("第一列")
e.Form.Controls("TextBox2").text = Tables("表A").Rows(2)("第一列")

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


加好友 发短信
等级:二尾狐 帖子:550 积分:5021 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2021/3/6 11:50:00 [只看该作者]

谢谢老师,需要实时赋值显示的,不是定时赋值获取。把代码放在表事件,目前只会列变化触发。请帮改一下,当不同的行列变化后(如变化的是表A第2行的第一列)触发对指定的控件赋值(后续会固定上百行的)。或是帮看看有没有其他更好的触发赋值方式
Select Case e.DataCol.name
    
    Case "第一列"

        Forms("窗口").Controls("TextBox1").text = Tables("表A").rows(1)("第一列")
        
End Select


谢谢!


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/6 12:01:00 [只看该作者]

控件名称最好是有规律,比如TextBox1对应第一行,TextBox2对应第二行

Select Case e.DataCol.name
    
    Case "第一列"
dim idx as integer = Tables("表A").findrow(e.datarow)
        Forms("窗口").Controls("TextBox" & idx).text = e.datarow("第一列")
        
End Select

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


加好友 发短信
等级:二尾狐 帖子:550 积分:5021 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2021/3/7 11:44:00 [只看该作者]

谢谢老师,这样可以实现了,多列内容也可自动赋值。有个新问题,就是打开重新打开窗口后,里面文本框内容不见了,请教下重新打开窗口后所有文本框如何重新一次性获取表的所有对应的数据(不是一个一个写对应代码那种获取)

谢谢!


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/7 20:46:00 [只看该作者]

在窗口afterload事件调用类似2楼的代码给所有控件赋值

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


加好友 发短信
等级:二尾狐 帖子:550 积分:5021 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2021/3/7 21:26:00 [只看该作者]

谢谢老师,按每个文本控件写是可以,

Forms("窗口").Controls("TextBox1").text = Tables("表A").Rows(0)("第一列")  '''这样要每个文本框写一段
Forms("窗口").Controls("TextBox2").text = Tables("表A").Rows(1)("第一列")   '''这样要每个文本框写一段


请老师帮看看,能不能实现像在表事件代码那样简单呢,不要每个文本框控件都写一行

谢谢!



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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/7 21:29:00 [只看该作者]

for  i as integer = 1 to Tables("表A").Rows.count - 1
Forms("窗口").Controls("TextBox" & i).text = Tables("表A").Rows(i)("第一列")
next

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


加好友 发短信
等级:二尾狐 帖子:550 积分:5021 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2021/3/7 21:37:00 [只看该作者]

谢谢老师,可以了。后续要是能直接和设备的PLC modbus协议数据,仪器仪表接口对接数据,就很好了..............

 回到顶部