大家好,
我想实现这个功能。当我在该项目上单击“添加”时,该项目会自动添加到 apex_collection 中。如何在 oracle apex 中实现这一点
我尝试过使用卡片模板的经典报告,但卡在了中间
我已经创建了卡片。现在想将数据添加到 apex_collection.... 为此,我有列链接 目标:网址 网址:javascript:$s('P8_ACTION','#PRODUCT_CODE#');
还创建了隐藏项 P8_ACTION 并添加了 动态动作-->执行服务器端
Begin IF not apex_collection.collection_exists('MY_COLLECTION') then apex_collection.create_collection('MY_COLLECTION'); end if; apex_collection.add_member( p_collection_name => 'MY_COLLECTION', p_c001 => :P8_ACTION ); END; /
这里是 EMP 表的一个例子。它使用 javascript 自定义事件,这意味着所有 javascript 都很好地分组在动态操作中。
通过向导在示例数据
EMP
表上生成卡片报告。只需采用默认值即可。
向卡片添加按钮:在卡片的“正文”部分,添加带有源代码的 HTML 表达式
<button data-id=&EMPNO. type="button" class="add-emp t-Button t-Button--success">Add</button>
注意
data-id=&EMPNO.
属性和add-emp
类
Button 是使用 button builder
构建的在区域中添加一个页面项来存储选择的EMPNO(P158_EMPNO)
真动作 1(点击按钮时设置 P158_EMPNO 的值)
P158_EMPNO
True Action 2(添加行到集合)
DECLARE
l_collection VARCHAR2(100) := 'EMP';
BEGIN
IF NOT APEX_COLLECTION.COLLECTION_EXISTS (p_collection_name => l_collection) THEN
APEX_COLLECTION.CREATE_COLLECTION(p_collection_name => l_collection);
END IF;
APEX_COLLECTION.ADD_MEMBER (
p_collection_name => l_collection,
p_n001 => :P158_EMPNO);
END;
P158_EMPNO
请注意,这是基本代码。它确实允许记录添加不止一次,我没有清理集合等。但你应该明白这一点。