我是靠谱客的博主 执着枕头,最近开发中收集的这篇文章主要介绍关于文件夹的Form[包括查询]自动勾上的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在开发Folder的Form,不知道为什么,在文件夹修改,再做保存之后,文件夹的包括查询的勾勾老是自动勾上。导致用户用对应的文件夹,第二次打开再做查询的时候,一笔记录都查询不到。

解决方法1:

将对应Block的Pre-query的代码:APP_FOLDER.EVENT('PRE-QUERY');注释掉即可。

但是注销掉之后,会有问题:当Top3位做排序的时候,会误将所有的数据都查询出来。

具体原因我觉得还是需要检查。

2013-8-26

最终的解决方案:

为什么会出现这种问题?

其实不算问题来的。因为我们默认启用了文件夹的包括查询的功能。所以,当你对文件夹做了保存之后,文件夹实际上会自动处理:抓取当次的查询的条件,然后将对应Folder的DEFAULT WHERE的值更新(为当此的查询条件),自动勾上"包括查询"。

这里还要说明一点:对于Oracle的这点自动处理要搞清楚逻辑。正常的开发逻辑应该是我要包括查询,才勾上包括查询的勾勾,WHERE条件才需要压上值才对。现在是反过来了,当执行查询之后,保存文件夹,文件夹处理过程会自动将查询条件填充到文件夹设定里面,然后再"自动"勾上包括查询。

还有一点,需要了解的是,文件夹的包括查询的勾勾并不是数据库栏位。它是和DEFAULTWHERE(FND_FOLDERS.WHERE_CLAUSE)的值有关的。只要DEFAULT WHERE有值,包括查询就会自动勾上。如果取消包括查询的勾,那对应Folder的WHERE条件会自动清空。

所以,得出问题的最终解决方案:

在定义Folder的时候,将对应的功能包括查询的功能直接Disable掉就可以了。

app_folder.define_folder_block(

              'XYG_JBW_OPER_SCHEDULE_SOURCE_V',-- Data Block's Data Source Name

        'MOVE_SOURCE', -- Folder Block

        'MOVE_SOURCE_PROMPT', -- Prompt Block

        'SOURCE_STACK', -- Stacked Canvas (Folder Canvas)

        'MAIN',-- Window

         'AUTOQUERY QUERY', ---所有的Form文件夹应该都要默认禁用掉的:"自动查询""包括查询"的功能

         'MOVE_RECEIVE_TAB',

         'SOURCE_STACK_FIEXD');

效果如下:


------------2013.10.17问题跟踪

发现虽然这个包括查询的勾虽然是失效了(灰色),但是,貌似在保存文件夹的时候,它还是会自动保存Form最后的查询的语句。

所以,这个问题还是没得到根本的解决。

最后用了一种不是很好的办法,就是直接修改标准的文件夹处理包:FND_APPFLDR

在塞数据的时候,将where_clause强制塞空值就行(需要修改新增和更新的处理过程)。

因为我一直觉得Oracle文件夹的这个功能真的是很废。。。没什么实用价值。

事实上也了解到,这个功能几乎不会被使用。反而会导致N多的问题。



最后

以上就是执着枕头为你收集整理的关于文件夹的Form[包括查询]自动勾上的问题的全部内容,希望文章能够帮你解决关于文件夹的Form[包括查询]自动勾上的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部