在 EBS Form 查找界面点 "Find" 之后都发生了什么?

本文详细介绍了EBS Form中点击'Find'按钮后,从WHEN-BUTTON-PRESSED触发器开始,经过数据块查询、PRE-QUERY和POST-QUERY触发器,直至数据显示在界面的整个过程。通过分析代码,揭示了如何设置查询条件、执行查询、以及在POST-QUERY中根据查询结果给界面字段赋值,以满足EBS复杂业务逻辑的需要。
摘要由CSDN通过智能技术生成

      我一直对form 都感觉比较困惑, 特别是form 里面的trigger, 像PRE-QUERY, POST-QUERY 一直都弄不清情况. 这个trigger 是什么时候触发的呢? 看名字知道在QUERY 之前或之后触发的. 那么QUERY 什么呢? 搞不清楚.

     今天就看下代码, 弄明白点了 "find" 之后做了什么事情, 那些数据库里面的值怎么到form 界面上去的.

     我们知道, 每一个form 上的数据块都是绑定一个table 或者 view 的. EBS绑定的都是 view. 像下面那样:


     我们可以认为, 一个数据块就是一个view. 而数据块上的字段, 通常也和view 里面的字段一一对应. 注意, 这里说的是通常. 在我们刚开始学习做form 的时候, 选择一个view, 然后把view 里面的字段一一对应于数据块的字段, 这样编译运行的时候, 在form 界面菜单上 view -> query by -> run, 就可以直接做查询的动作, 在form 界面上就会显示出数据库的记录.

     这里就做了一次QUERY 的动作, 查询数据库, 然后把记录的值填到对应的 field 里面去.

     但是这样的逻辑是简单的, 没有办法应付EBS 复杂的业务逻辑. 因此在实际的做法中, 并没有用这样简单直接的方式. 我们去看EBS 里面的form, 数据库上的字段和view 里面的字段几乎没有对应关系. 似乎是两个不相关连的东西, 只是名字很像.

     这样做的结果就是几乎所有的行为都要自己写代码实现. 不能像上面那样点下查询, 然后所有的值自动显示在界面上了. 由于缺少数据库与界面字段的关联, 即使查询了数据库, 也要手动把值复制给界面上的字段.

     我们以 Receipts 界面为例, 看看点下"find" 都做了哪些事情.

1. 首先为了简化问题, 我们这里只考虑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值