请求Form页面POPLOV组件点击“ADD NEW OPTION”添加新选项的实现代码
Popup LOV 添加「添加新选项」对话框实现方案
1. 配置Popup LOV的选项列表
编辑目标Popup LOV页面项,在「List of Values」的SQL查询中,将「添加新选项」作为固定选项与动态数据合并:
-- 替换为你的业务表字段和表名 SELECT '添加新选项' AS display_value, '-1' AS return_value FROM DUAL UNION ALL SELECT your_display_column, your_return_column FROM your_business_table
用-1作为标记值,区分正常选项与新增触发选项。
2. 编写点击事件处理逻辑
在页面的「Function and Global Variable Declaration」中添加处理函数:
function handleAddNewOption(pItemId) { const selectedValue = apex.item(pItemId).getValue(); if (selectedValue === '-1') { apex.event.preventDefault(); // 打开新增对话框页面,替换为你的对话框页面编号 apex.navigation.dialog( 'f?p=&APP_ID.:100:&APP_SESSION.::NO:::', { title: '添加新选项', height: '400px', width: '500px', modal: true, close: function() { // 关闭对话框后刷新Popup LOV选项并清空临时选择 apex.item(pItemId).refresh(); apex.item(pItemId).setValue(''); } } ); } }
然后给Popup LOV绑定动态动作:
- 新建「Change」类型动态动作,触发条件设为「Item Value equals -1」
- 添加「Execute JavaScript Code」动作,执行代码:
handleAddNewOption('P1_YOUR_POPUP_LOV')(替换为你的页面项名称)
3. 创建新增选项的对话框页面
- 新建空白页面(示例编号为100),添加表单输入项(如
P100_DISPLAY_COL、P100_RETURN_COL)对应业务表字段 - 添加提交按钮,在按钮的处理逻辑中添加PL/SQL进程完成插入:
-- 替换为你的业务表和字段 INSERT INTO your_business_table (your_display_column, your_return_column) VALUES (:P100_DISPLAY_COL, :P100_RETURN_COL); COMMIT;
- 添加分支:提交成功后,设置分支类型为「Close Dialog」,自动关闭对话框并触发父页面的Popup LOV刷新
4. 可选样式优化
给「添加新选项」设置醒目样式,修改LOV的SQL为:
SELECT '<span style="color:#2980b9; font-weight:bold;">添加新选项</span>' AS display_value, '-1' AS return_value FROM DUAL UNION ALL SELECT your_display_column, your_return_column FROM your_business_table
然后在Popup LOV的「Security」属性中,将「Escape Special Characters」设为No,让HTML样式生效
内容的提问来源于stack exchange,提问作者shady
相关产品推荐
相关产品推荐

