Oracle Form - 另一种全选/全不选功能设计

  • 功能设计

  •  开发步骤
  1. 列表中的复选框:数据块中增加ITEM,子类信息CHECKBOX,选中时值Y,未选中值N(本例中为DETAILS.SELECTED)
  2. 全选/全不选框:一个非数据库项,子类信息CHECKBOX,选中时值Y,未选中值N(本例中为CONTROL.SELECT_ALL)
  3. 列表数据块增加块级的用户命名触发器SELECT_ALL
    :DETAILS.SELECTED := :CONTROL.SELECT_ALL;
  4. CONTROL.SELECT_ALL触发器WHEN-CHECKBOX-CHANGED代码
    APP_RECORD.FOR_ALL_RECORDS('DETAILS', 'SELECT_ALL');
  5. DETAILS.SELECTED创建触发器WHEN-CHECKBOX-CHANGED代码
    IF :DETAILS.SELECTED = 'N' THEN
      -- 被取消选中,联动取消全选复选框
      :CONTROL.SELECT_ALL := 'N';
    END IF;

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

APP_RECORD.FOR_ALL_RECORDS可以批量触发某个数据块所有记录的指定触发器,例程中第一个参数指定目标数据块DETAILS,第二个参数指定要触发的触发器名称SELECT_ALL

例程中SELECT_ALL触发器是建立在数据块级的,如果在数据块首个可导航的ITEM下也有同名触发器,则也会触发这个触发器。换句话说DETAILS数据块下级和上级的SELECT_ALL都会被依次触发,当然还取决于各级触发器的执行层次

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值