起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 427|回复: 12

【结】业务数据查找填充问题

[复制链接]
发表于 2010-4-15 09:46:46 | 显示全部楼层 |阅读模式
同一个功能窗体中有A、B两个数据集,,其中 A是主数据集,B是A的从数据集。A、B中分别有字段A1,A2和B1,B2,在B1中设置查找属性为业务数据查找,查找数据集为A,依赖字段为A1,过滤条件为A、B数据集的关联字段相等。另外,B1设置自动填充,填充值为查找唯一值。在功能窗体的创建事件中,代码实现A数据集增加一条记录。当功能窗体运行后,在B数据集字段B2中输入数据时系统报错“B数据集没有处于编辑或插入状态”。请问,这样的操作为什么不能触发B数据集进入编辑或插入状态?B1字段的查找和填充属性设置看1-4楼图片。

a.png

12.69 KB, 下载次数: 202

回复

使用道具 举报

 楼主| 发表于 2010-4-15 09:47:52 | 显示全部楼层
B1查找属性设置2

b.png

12.69 KB, 下载次数: 198

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-15 09:49:00 | 显示全部楼层
B1查找属性设置3

c.png

19.28 KB, 下载次数: 195

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-15 09:50:11 | 显示全部楼层
B1自动填充属性设置1

d.png

11.59 KB, 下载次数: 194

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-15 09:52:01 | 显示全部楼层
B1自动填充属性设置2

e.png

9.9 KB, 下载次数: 193

回复 支持 反对

使用道具 举报

发表于 2010-4-15 11:19:04 | 显示全部楼层
楼主能做个例子传上来么?
回复 支持 反对

使用道具 举报

发表于 2010-4-15 11:58:06 | 显示全部楼层
问题已经重现,不过,这是用法的问题

先说说你这几页的设置,3楼这样设置是不起作用的,要起作用,必须选中“使用动态查找范围”这个复选框。当然出现你这样的情况跟3楼设置没有关系,主要是跟
1、自动填充 根据 业务数据查找
2、业务查找的数据集是当前数据集的主数据集,
这两点结合引起的,当从数据集新增,自动填充要触发,此时加载查找的主数据集,那么主数据集记录会滚动,这样会导致从数据集的状态发生变化,
如果取消主从,那么两个数据集直接的光标滚动不会影响数据集的状态
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-15 13:11:12 | 显示全部楼层
那要怎么实现呢?
1、主从关系不能取消。
2、窗体创建事件中代码实现主数据集新增记录是为了避开系统提示:“主数据集没有数据,从数据集不能新增记录的”,所以必须这样做。
3、如果不用代码实现主数据集新增记录,选中“使用动态查找范围”,直接在在窗体中点击“新增”按钮 行不行呢?
回复 支持 反对

使用道具 举报

发表于 2010-4-15 13:16:57 | 显示全部楼层
有两个方法、
方法一、取消主从,在主数据集记录滚动的事件上(AfterScroll)主动实现取现在从数据集的记录。

方法二、如果是为了 窗体创建事件中代码实现主数据集新增记录是为了避开系统提示:“主数据集没有数据,从数据集不能新增记录的” 可以 默认进入功能只打开主数据集,等主数据集有记录后,例如在afterinsert事件上open从数据集
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-15 13:33:10 | 显示全部楼层
两种方法都得写代码呗,我现在的解决方法就是不取消主从,在从数据集的BeforePost事件中直接取主数据集的数据赋值到从数据集的相关字段上去。至于方法二,好像只要在窗体创建事件中代码实现主数据集新增记录,就已经可以避开系统提示:“主数据集没有数据,从数据集不能新增记录的” 了。直接通过查找填充实现不了是吗,如果是这样,那就这样吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 07:27 , Processed in 0.047344 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表