注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Memory extender

Beautiful Day..

 
 
 

日志

 
 

Master-Detail Relations (二)——光标变换时,Detail Block被CLEAR_BLOCK  

2010-11-02 13:37:17|  分类: EBS Form |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

例题环境同上一篇http://hgdzhuanyong.blog.163.com/blog/static/117191383201010155595/

HeaderLine都是只能查询,不能新增修改删除记录。

当光标在Line项时,如果光标直接点Header的空白记录,则会报FRM-41051:You cannot create record here.

       此时会触发ON-CLEAR-DETAIL Trigger(但是由于FRM-41051,光标还会停留在Line)Clear Detail_Block,之后还会触发ON-POPULATE-DETAILS来执行查询,但是由于Line项此时的:system.record_status='NEW',而ON-POPULATE-DETAILS中在此条件下直接Return而不执行execute_query,所以杯具了.......记录只清空,没有再查询出来。 

       而如果光标在Header时,点空白记录,光标还会回到原来的Header记录,:system.record_status='QUERY'Detail记录被清空后又被执行查询调了出来。 

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Solution:

       所以在此情况下,在Header新增ON-CLEAR-DETAILS Trigger,Execution HierarchyOverride,里面用if判断,只有光标在header的时候才触ON-CLEAR-DETAILS,执行Clear_All_Master_Details 

if :system.cursor_block='Header_Block' then

  BEGIN

    Clear_All_Master_Details;

  END;

end if;

或者为防其它没有考虑到的情况发生,可以把条件写成光标在Detail的时候不执行Clear:

if :system.cursor_block='Detail_Block' then

  NULL;

else

  BEGIN

    Clear_All_Master_Details;

  END;

end if; 

注:其实系统中也有这样存在被清空状况的Form,很少。系统中一般情况下Header只有一笔显示,而非这种表格形式,所以不会有这样的情形出现。

另:CLEAR_BLOCK();之后的:system.record_status='NEW'是默认的吗?我不知道额...


  评论这张
 
阅读(802)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018