FOLDER FORM 问题

Folder查询结果不对的问题:

问题:在一次项目UAT时,一个用户测试时发现她总是查询不出结果,这个FORM是我们客户化一个标准的FORM。

解决过程:因为是标准FORM,而且我们之前自己测试时也没有遇到这个问题,所以以为系统对用户权限有什么控制,我们查看FORM源代码,但是找了很久还是没有找到问题的所在,打印DEFAULT_WHERE发现每一次查询后,DEFAULT_WHERE会增加一段相同的我们很费解的条件,就是这个条件导致查询不出结果。

问题原因:最后多亏吴前进提醒,最终我们找到问题所在。原来该用户在操作时,保存了FOLDER,在保存时勾选了"包括查询",结果就把当时的查询条件给保存了下来,所以该用户在每一次查询是都会带上该条件,导致查询不出结果。对于保存的FOLDER,点击 文件夹-》查看查询,查看保存的查询。

总结:在用户培训时,对于FOLDER的FORM,要提醒用户此类问题,如果保存FORM时,要慎重勾选“包括查询”,除非确实需要保存的条件。对于FOLDER FORM,如果碰到某种情况加查询结果不准确,要首先考虑是不是FOLDER保存查询的原因。

FOLDER修改多堆叠画布问题

问题:在做一个Tab FOLDER FORM时,由于需要变化每一个Tab页上的ITEM,重新分配,将原来在第一个画布上的ITEM放到第三个画布上面,我直接修改的画布属性。结果导致第一个画布的ITEM布局乱了,出现了一部分ITEM堆到了另一部分ITEM上面。

解决过程:因为修改ITEM比较多,我以为是ITEM没有对应上或者Promt与内容字段顺序没有对应上的问题,结果比对了好久,发现没有问题。

问题原因:多谢徐晓晓同学提醒,原来是我直接修改ITEM属性,而没有去调整ITEM的顺序。对于这种多堆叠画布的FOLDER,需要把属于同一个画布的ITEM都放在一起,如果交叉放的话会导致一个画布上的ITEM堆起来。

思考:FOLDER将ITEM放到画布上时,应该是按照ITEM的顺序去填到画布上去的,而从一个画布到另一个画布上时,都会把ITEM从画布的最左边开始摆放,所以导致了ITEM堆起来的结果。

FORM 中LOV使用别名问题

问题:在一个LOV的记录组中SELECT nvl(p.full_name, fu.user_name) FULL_NAME
,fu.user_name
,fu.user_id
FROM fnd_user fu
,per_all_people_f p
WHERE fu.employee_id = p.person_id(+)
ORDER BY 1

LOV选择在显示之前过滤

发现查询的结果中,总是没有取到user_name的情况。

解决&总结:通过做TRACE发现,在显示之前过滤时,会自动在后面拼上一段条件FULL_NAME like :1 .....实际上执行的时候,FULL_NAME指向的是per_all_people_f里面的 FULL_NAME,所以没有出现user_name的值(其实这样使用别名是会报错,这是一个巧合);而当把别名修改成为其他(非数据库字段名)NAME时,会报NAME标识符无效错误。这是肯定的,应为SQL就是不能用别名来作为查询条件的。解决方法有两个:1,将显示之前过滤设为否,这样就会把所有记录先查出来,然后在查询出来的记录组里再筛选。不会在之前拼SQL了。

2,如果一定要在显示之前过滤的话,使用嵌套查询。

帮助》历史记录灰掉问题

问题:在一个FORM中发现历史记录菜单灰掉

解决:这个跟块查询灰掉一样,块查询是把块级触发器WHEN-NEW-RECORD-INSTANCE触发器层级修改为BEFORE,

这个问题需要将WHEN-NEW-BLOCK-INSTANCE触发器层级修改为BEFORE,因为这两个的可用与否,是FORM级触发器判断的,如果覆盖,就不可用了。

PS:使用历史记录时 报“历史记录不可用”,是由于在该块中没有5个数据库WHO字段的原因,添加上就行了。

posted @ 2012-06-01 13:08  刘伟聪  阅读(507)  评论(0编辑  收藏  举报