ebs系统form开发lov过滤问题解决

今天开发一个ebs的form配料计划界面,其中需要使用lov来查询出物料的编码、物料id、物料类型、物料的主要单位,然会本人就编辑了如下的sql语句:
select MC.CONCATENATED_SEGMENTS item_type,
               MIC.INVENTORY_ITEM_ID    item_id,
               T.SEGMENT1               item_num,
               T.DESCRIPTION            item_des,
               B.PRIMARY_UOM_CODE       major_unit
          from MTL_ITEM_CATEGORIES  MIC,
               MTL_CATEGORIES_B_KFV MC,
               MTL_CATEGORY_SETS_TL MCST,
               MTL_SYSTEM_ITEMS     T,
               MTL_SYSTEM_ITEMS_B   B
         where MIC.CATEGORY_ID = MC.CATEGORY_ID
           AND mic.CATEGORY_SET_ID = MCST.CATEGORY_SET_ID
           AND T.INVENTORY_ITEM_ID = MIC.INVENTORY_ITEM_ID
           and T.INVENTORY_ITEM_ID = B.INVENTORY_ITEM_ID
           and mic.organization_id = b.organization_id
           and t.organization_id = mic.organization_id
           and mcst.category_set_name = 'Inventory'
           AND MCST.LANGUAGE = userenv('LANG')
           and t.organization_id = :parameter.org_id;
果不其然,达到我想要的预期的效果,速度方面的表现也是让人感到欣慰。但经过本人的思考,发现,物料的信息是随着时间来增长的,那么如果信息多的话,尽管查询语句很好,但是最后也会影响到系统的运行速度。因此,问题的解决不是最佳的方案。
        然后,我就想起来可以使用lov的显示前过滤的功能来拟补这样的不足,打开自己的form然后在相应的lov属性上增加了过滤,但是问题就出现了。发布使用的时候总是会出现,未明确定义列。然后无法进行查询,这个问题困扰我很旧,然后就上网matlink等上寻求答案。经过网上的内容加上自己的摸索,最终发现,是这样的问题。这个过滤就是在最后加上where item_type like '%%' 这样的语句,如果有别名的存在,或者是出现t.item_id 这样的查询的话,那么就会出现上面的错误,默认的情况下是按照别名或者item_id这样进行约束的添加。找到问题的所在,答案就好解决了。修改sql语句。修改成如下的形式:
select item_num, item_id, item_type, item_des, major_unit
  from (select MC.CONCATENATED_SEGMENTS item_type,
               MIC.INVENTORY_ITEM_ID    item_id,
               T.SEGMENT1               item_num,
               T.DESCRIPTION            item_des,
               B.PRIMARY_UOM_CODE       major_unit
          from MTL_ITEM_CATEGORIES  MIC,
               MTL_CATEGORIES_B_KFV MC,
               MTL_CATEGORY_SETS_TL MCST,
               MTL_SYSTEM_ITEMS     T,
               MTL_SYSTEM_ITEMS_B   B
         where MIC.CATEGORY_ID = MC.CATEGORY_ID
           AND mic.CATEGORY_SET_ID = MCST.CATEGORY_SET_ID
           AND T.INVENTORY_ITEM_ID = MIC.INVENTORY_ITEM_ID
           and T.INVENTORY_ITEM_ID = B.INVENTORY_ITEM_ID
           and mic.organization_id = b.organization_id
           and t.organization_id = mic.organization_id
           and mcst.category_set_name = 'Inventory'
           AND MCST.LANGUAGE = userenv('LANG')
           and t.organization_id = :parameter.org_id;
        );
运行,果然效果良好。
很喜欢这样的感觉。。。。。。。。。。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26663173/viewspace-715619/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26663173/viewspace-715619/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值