Foxtable(狐表)用户栏目专家坐堂 → 狐爸,我要崩溃了,你进来看看吧,2段代码的执行顺序问题


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

主题:狐爸,我要崩溃了,你进来看看吧,2段代码的执行顺序问题

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/6 16:52:00 [显示全部帖子]

我理解不了你这个问题。

 

为什么不将数据加载和数据处理分开?

单独做个加载功能,让用户选择要处理的产品、客户、订单,加载之后开始处理。

处理完毕之后保存,需要的话,再次单击加载按钮,重新选择并加载要处理的数据。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/6 17:07:00 [显示全部帖子]

窗口都是通过代码打开的,你可以将打开窗口的按钮代码设置的,窗口类型设置为模式窗口,打开窗口的代码设置为:

 

'加载某个表的数据

'Forms("窗口").Open

 

如果要根据这个窗口的处理结果,加载另一个表的数据,可以在这个窗口的BeforeClose事件中加上加载数据的代码。

 

 

从来没有人在这个问题上如此痛苦的哦,要不完成地描述一下你的结构和设计思路,最好配合一个简单的例子。

或者等下次更新,以为我记得你说过,似乎ExcuteReader生成的表能够保存的话,你的问题就好解决了,而这个功能我们已经加上。

 

 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/6 17:14:00 [显示全部帖子]

没有必要刻意追求动态加载,最好一次加载所有可能需要处理的数据,除非数据量非常的大。

数据量非常大的时候,也不会处理过程中,一个一个订单来动态加载明细,而且加载一批单子和其明细。

实际操作过程中,通过筛选或关联,而不是加载,来提取每个单子要处理的数据

 

你这样每条记录都涉及到动态加载的设计,是不合理的。

 

[此贴子已经被作者于2013-3-6 17:17:22编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/6 17:57:00 [显示全部帖子]

嫌合成Update语句麻烦,不想等下次更新,那么我给你一个简单的办法。

 

1、另外增加一个外部表,数据同样来自出库单明细,但是初始不加载任何数据,表名可以另取,假定为“临时出库单”,后台的表是出库单明细即可。

 

关于不加载任何数据,看看:

http://www.foxtable.com/help/topics/1998.htm

 

2、这个表可以隐藏,因为用户不需要操作他,只是用于更新后台的数据而已。
为了隐藏这个表,在AfterOpenProject事件中加上代码:

Tables("临时出库单").Visible = False

 

3、当你需要更新某订单的出库单明细,代码:

 

Dim Filter As String

Filter = “合成的加载条件,你已经会了”

DataTables("临时出库单").LoadFilter = Filter
DataTables("临时出库单").Load

For Each dr As DataRow in DataTables("临时出库单").DataRows

     '逐行修改各列的值

Next
DataTables("临时出库单").Save()

 

这样你可以不动现有的设计,又能直接更新后台数据。

 

 

[此贴子已经被作者于2013-3-6 18:02:19编辑过]

 回到顶部