想在oracle apex中实现卡片功能

问题描述 投票:0回答:2

大家好,

我想实现这个功能。当我在该项目上单击“添加”时,该项目会自动添加到 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;  /  

javascript oracle oracle-apex apex apex-code
2个回答
0
投票

这里是 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 的值)

    • 动作“设定值”
    • 设置类型“Javascript 表达式”
    • this.triggeringElement.dataset['id']
    • 受影响的元素。
      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

请注意,这是基本代码。它确实允许记录添加不止一次,我没有清理集合等。但你应该明白这一点。


0
投票

我创建了一个带有经典报告和卡片模板的页面

在类型栏上:链接

  • 链接
  • 目标类型:URL
  • URL:(需要在有人点击链接时获取值并将其存储到页面项 P8_Action 或者我们需要一些函数将这些存储到集合中)

© www.soinside.com 2019 - 2024. All rights reserved.