Foxtable(狐表)用户栏目专家坐堂 → 预设值表如何在窗口保存数据和提取数据


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

主题:预设值表如何在窗口保存数据和提取数据

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/20 9:26:00 [显示全部帖子]

如果只是为了把表格的数据和控件对应起来,完全不需要使用这种全局代码,反而更复杂了。

其次全局代码的用法完全是错误的
1、不能在全局代码定义变量的时候直接给变量赋值
2、全局代码初始化的时候表格还没有,不能使用

再次,这种字典数据的维护,个人建议在窗口里直接使用表格维护,直观又简单,需要增加一个字典项的时候完全不需要改窗口。如果使用文本框的方式,如果以后要加一个项目,还得重新改窗口添加一个文本框对应,多麻烦

如果一定要使用文本框,建议使用find等函数查表获取对应的行,然后和文本框值对应起来,比如:
给控件赋值,建议表格增加一个索引列,和控件的名称对应起来,比如表格索引1,对应文本框textbox1、索引2,对应文本框textbox2,然后代码
for each dr as datarow in datatables("预设值").select("类别=‘基本资料’")
e.form.controls("textbox" & dr("索引")).text = dr("文本")
next

从控件取值
for each dr as datarow in datatables("预设值").select("类别=‘基本资料’")
dr("文本") = e.form.controls("textbox" & dr("索引")).text 
next
[此贴子已经被作者于2021/11/20 9:39:55编辑过]

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


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/20 10:28:00 [显示全部帖子]

查表再用并不会比直接使用变量慢多少。再说了,确定知道ddt01、ddt02这种没有任何表述性的名称表示个神马东西吗?换个开发人员,根本理解不了,就算是自己,过一段时间,估计也忘记了。感觉是为了自己“觉得”方便而方便,反而给以后挖了个坑。





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


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/20 10:39:00 [显示全部帖子]

给变量赋值的代码放到afteropenproject事件。全局代码只定义变量,不要赋值

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


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/20 10:59:00 [显示全部帖子]

变量是没有办法动态定义的,只能一个一个傻傻的用

ddt01 = “xx”
ddt02 = “xxx”

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


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/20 11:26:00 [显示全部帖子]

可以考虑使用字典,比如

全局代码
public dict as new dictionary(of string ,string)

afteropenproject
for each dr as datarow in datatables("预设值").select("类别=‘基本资料’")
dict.add(dr("函数名"),dr("文本"))
next

其它事件调用
e.form.controls("textbox1").text = dict("ddt01")

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


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/27 12:01:00 [显示全部帖子]

dict(e.Form.Controls("ddt0"& i).Name) = e.form.controls("ddt0"& i).text

 回到顶部