Foxtable(狐表)用户栏目专家坐堂 → [求助]请问如何取得从窗口Form输入的值?


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

主题:[求助]请问如何取得从窗口Form输入的值?

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


加好友 发短信
等级:婴狐 帖子:27 积分:258 威望:0 精华:0 注册:2011/3/24 19:38:00
[求助]请问如何取得从窗口Form输入的值?  发帖心情 Post By:2011/4/2 22:20:00 [只看该作者]

问题场景:

 

有一个产品信息表"产品信息表",包含:产品编码,产品名称/规格型号等信息,数据量非常多.

在其它表中使用产品信息时,为避免数据冗余,都只引用了"产品编码"这一个信息.

(在多个表中都有这个需求,为此设计一个公用的窗体.)为方便操作者录入"产品编码",打算设计一个窗体Form(包含"产品信息表"Table"),以便让其选择某个产品.

这样的话,就需要首先定义一个"自定义函数"SelectProduct,在该函数中打开窗体,并让操作者选择产品信息.

 

问题是:窗体一旦关闭,就无法从Forms("选择产品").Controls("TableProduct")中获取Current信息,也就无法得到"产品编码"列的值.

 

请帮忙指点一下,谢谢.


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


加好友 发短信
等级:婴狐 帖子:27 积分:258 威望:0 精华:0 注册:2011/3/24 19:38:00
  发帖心情 Post By:2011/4/2 22:23:00 [只看该作者]

补充:在帮助文件中的窗体使用范例里面,是在窗体关闭Close之前,在窗体的事件中,直接操作数据表格修改了其中的信息.

达不到我的需求(按范例的方式,我得为每个使用选择产品操作的表格设计功能完全相同的多个窗体).

也不符合编程的模式.相当于在一个额外的子程序中,操作了宿主的数据.这样的程序内部关联太多,不便于调试.


 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/2 22:24:00 [只看该作者]

你可以在窗口的BeforeClose事件中取得值,保存在一个全局变量中,关于全局变量,请您参考:

http://help.foxtable.com/topics/1841.htm

 


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


加好友 发短信
等级:婴狐 帖子:27 积分:258 威望:0 精华:0 注册:2011/3/24 19:38:00
  发帖心情 Post By:2011/4/2 22:27:00 [只看该作者]

版主:

能不能不采用全局变量的方式传递信息?

全局变量有好处,但按这样的方式做的话,估计我这个项目中使用的全局变量数目不可容忍.

(而且以前的编程经历也使得我很久不习惯全局变量的方式了,抱歉)

希望能有更好的方式.


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


加好友 发短信
等级:婴狐 帖子:27 积分:258 威望:0 精华:0 注册:2011/3/24 19:38:00
  发帖心情 Post By:2011/4/2 22:31:00 [只看该作者]

我正尝试用狐表设计一个生产管理系统.

涉及:

层次式的机构设置

角色配置

自定义的权限控制

物料编码

产品物料清单管理BOM

生产计划的下达,分解,过程监控

等等.

 

考虑分布式应用.(因试用版,暂时还未测试狐表在网络部署时的性能,这方面也希望版主能提供一些指导).

 

谢谢


 回到顶部
帅哥,在线噢!
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/2 22:32:00 [只看该作者]

呵呵,窗口关闭了是肯定不能取值了,这是显然的

如果不用全局变量,就只能就在BeforeClose事件中将值写入到应该写入的行。


 回到顶部
帅哥,在线噢!
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/2 22:34:00 [只看该作者]

应该不需要设计多个相同的窗体的,你做个简单的例子传,具体说明你卡在哪里,我帮你看看有没有简洁的办法。

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


加好友 发短信
等级:婴狐 帖子:27 积分:258 威望:0 精华:0 注册:2011/3/24 19:38:00
  发帖心情 Post By:2011/4/3 1:18:00 [只看该作者]

已测试过.

虽然窗体Form属于某个表格,但在自定义函数中  或者在其它表格中,还是可以通过Forms("窗口名")来引用某个其它表格内的窗体的.

 

但是,没有合适的办法从Form中回传数据.


 回到顶部
帅哥,在线噢!
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/3 8:38:00 [只看该作者]

一般说来,都是在窗口的按钮事件,关闭前事件使用数据,很少需要关闭后使用的。

你要在窗口关闭后不使用中间途径传递数据是无解的,窗口既然关闭,就不复存在,从哪里取数据呢?

所以必须保存在一个变量中,这不存在变量过多的问题,设计程序使用部分全局变量也正常啊。

 

 

 

 

 


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/4/3 8:40:00 [只看该作者]

关闭窗口前,通过代码将这些值Current信息写入到指定的位置(比如采用一个专用的数据存取表、或者写入项目信息)。


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