我想在oracle apex中实现卡片功能

eyh26e7m  于 2023-05-16  发布在  Oracle
关注(0)|答案(1)|浏览(121)

大家好,
我想实现这个功能。当我在项目上单击ADD时,项目将自动添加到apex_collection。如何在oracle apex中实现这一点
我已经尝试了经典的报告与卡片模板,但卡在中间
我制作了卡片。现在要将数据添加到apex_collection....为此,我有列链接目标:URL URL URL: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; /

d5vmydt9

d5vmydt91#

这是EMP表上的一个示例。它使用javascript自定义事件,这意味着所有javascript都很好地组合在动态动作中。

创建卡片报表
  • 通过向导在示例数据EMP表上生成cards报告。接受默认值。
  • 向卡片添加按钮:在卡片的“Body”部分,添加带有源代码的HTML表达式
<button data-id=&EMPNO. type="button" class="add-emp t-Button t-Button--success">Add</button>

注意data-id=&EMPNO.属性和add-emp
按钮使用button builder构建
将页面项添加到区域以存储所选EMPNO(P158_EMPNO)

动态动作

  • 真操作1(点击按钮时设置P158_EMPNO的值)
  • 操作“设置值”
  • 设置类型“Javascript表达式”
  • this.triggeringElement.dataset['id']
  • 受影响的元素。P158_EMPNO
  • True操作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

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

相关问题