【Oracle APEX开发小技巧16】交互式网格操作内容根据是否启用进行隐藏/展示

发布于:2025-08-13 ⋅ 阅读:(15) ⋅ 点赞:(0)

在日常开发中,有想要根据某一状态或条件去限制/隐藏对应权限或操作按钮的情况,于是

用简报模板列表进行展示,并提供以下功能:

  • 显示模板基本信息

  • 提供启用/禁用模板的开关

  • 提供编辑模板的入口

  • 根据模板状态显示不同的操作选项
     

效果展示:
1.通过编辑禁用模板;

2.被禁用的模板操作权限被关闭↓

代码:

select BRIEFING_TEMPLATE_ID,
       TENANT_ID,
       REVISION,
       DEL_FLAG,
       CREATED_BY,
       CREATION_DATE,
       UPDATED_BY,
       UPDATE_DATE,
       TEMPLATE_NAME, 
       DECODE(FREQUENCY_TYPE,'DAY','日报','WEEK','周报','DOUBLE_WEEK','双周报','MONTH','月报','YEAR','年报') FREQUENCY_TYPE,
       REFERENCE_ID,
       TEMPLATE_TYPE,
       --DECODE(IS_USING,1,'启用','未启用') IS_USING,
       IS_USING,
       DECODE(IS_USING,0,'','模板设计') OPERATOR ,

    --    该按钮配置先保留
       DECODE(IS_USING,1,'fa fa-edit','fa fa-edit') EDIT_BTN,
     '<div class="form-check form-switch">
  <input class="form-check-input m-auto text-center" type="checkbox" role="switch" id="flexSwitchCheckDefault" '||  DECODE(IS_USING,1,'checked','') ||' onchange=click_using_flag('||BRIEFING_TEMPLATE_ID||')> 
</div>
' IS_USING_FLAG
       
  from TASK_BRIEFING_TEMPLATE WHERE DEL_FLAG = 0 AND TENANT_ID = V('USER_TENANT') AND TEMPLATE_TYPE='GENERAL'

说明:
 

  1. 状态字段

    • IS_USING:是否启用(原始值)

    • OPERATOR:根据是否启用显示操作文本(未启用时为空,启用时显示"模板设计")

    • EDIT_BTN:编辑按钮的图标(始终显示'fa fa-edit',无论是否启用)

  2. 交互元素

    • IS_USING_FLAG:生成一个HTML开关按钮,用于切换模板启用状态

      • 包含一个checkbox,当IS_USING=1时显示为选中状态

      • 当状态改变时调用click_using_flag函数,并传入模板ID


网站公告

今日签到

点亮在社区的每一天
去签到