2

我真正需要的是一个表格形式,它允许我一次更新多行,同时像交互式报告一样可过滤。任何机会这甚至是遥不可及的?

我还想劫持“删除”功能被激活时出现的表格表单上的行复选框,并使用它们来选择哪些行被分配给基于公共属性的组。(即我的表包含我库存中的零件,我需要能够将具有共同属性的零件分配给一个组进行处理)

也许是一个分组函数,它在“组”表中创建一个新行,该组作为 PK,分配给该组的部分作为列表或其他东西......?

想法?我有点不知所措...

4

2 回答 2

4

这真的没那么难:) 您可以轻松地将 IR 转换为伪表格形式。尽管总是有更时尚和优雅的解决方案,但这些解决方案通常涉及大量的 javascript 和/或插件。他们很好,但当然并不总是你想要或需要的。

那么如何操作你的输出呢?使用APEX_ITEM api

快速示例。我有一个建立在emp上的ir。我添加了一个复选框和文本框。 示例红外

select empno, ename, deptno, 
       apex_item.checkbox(1, empno) empno_selected, 
       apex_item.text(2, ename, 10, 10) ename_edit
from emp

不要忘记:在列属性中,设置Display text asStandard Report Column. 如果你不这样做,输出将是纯文本。由于apex_item生成 html 代码,你当然不想要纯文本:) ir 列属性

现在,为了能够根据您在这些生成的字段中执行的操作执行 DML,您将需要一个流程。让我首先指出生成的项目存储在应用程序变量中,即存储在 APEX_APPLICATION 的数组中。注意复选框的行为:只有勾选的框才会将其值存储在数组中!

作为一个例子,我做了这个小On Submit process(还在表单上添加一个SUBMIT按钮来实际执行提交......)

for i in 1..apex_application.g_f01.count
loop
insert into empselected(empno, selectiondate, ename_changed)
values(apex_application.g_f01(i), sysdate, apex_application.g_f02(i));
end loop;

这将遍历勾选了复选框的记录,并将它们插入到某个表中。例如,我用 KING 勾选了该框并编辑了文本字段。请参阅第 2 条记录(1 来自先前的操作;)) 编辑示例 ir 编辑输出

不过,这还不是全部。您仍然会错过表格形式的功能及其流程,以及诸如乐观锁定之类的东西。如果您想继续使用表格形式,例如,您还可以查看此链接。这里也有一些关于编写自己的 mru 流程等的问题,比如这个 ;)

于 2011-11-29T22:36:30.783 回答
3

这是可能的,使用相同的表格形式。

  1. 在表格形式区域中创建一个项目(文本项目)。
  2. 创建提交按钮(创建在该区域的项目中显示的按钮)
  3. 修改表格区域源中的where子句

例如,您需要按客户名称搜索:

WHERE lower(CUSTOMER_NAME) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'

如果您需要搜索其他字段,只需在 where 子句中添加其他条件

WHERE (
     lower(CUSTOMER_NAME) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
     or lower(CUSTOMER_address) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
)

简单且使用相同的表格形式。

于 2012-09-21T17:09:34.097 回答