reporting - 如何在 oracle apex 中将表单 View 中的报表行显示为只读

标签 reporting oracle-apex

我有一个 apex 报告,其中包含许多具有各种数据类型的行。 现在用户想要详细查看每一行。为此,他们希望它位于表单 View 中。

但是表单 View 必须是有条件只读的(以便用户在没有权限的情况下无法更改任何内容)。

我发现,oracle的交互式报告生成了类似的“单行 View ” View (尽管它不是有条件可编辑的)。

换句话说,我想通过将列旋转到行来显示报表的行。

请帮我看看该怎么做。

(创建一个新的表单 View ,然后使每个元素只读是一个选项,但它有很多问题,并且不适合超过 50 个报表。)

预先感谢您的帮助。

最佳答案

我想说您唯一的选择是创建表单页面,尤其是当您想要编辑时。 IR 没有内置此类功能,如果您尝试通过 apex_item API 提供此类功能,您仍然需要编写自定义流程。
在创建时创建报告+表单组合是最快的(选择新页面的表单,然后选择带有报告的表单)。
现在您必须选择 IR 的查询,并将其用作表单查询的基础。
要使您的项目有条件地只读,您可以对项目使用只读条件。如果您使用返回 bool 值的 plsql 函数,您甚至可以通过 apex_util.public_check_authorization 测试授权方案(文档: APEX_UTIL )
除了这条路线非常烦人和耗时之外,我不知道它有这些“许多问题”。


现在,如果您的表单必须作为整体有条件只读,而不仅仅是某些项目,您也可以通过其他方式解决它。
对于两者,您都必须创建表单页面:没有办法解决这个问题,但这是最快、最简单的。

  1. 表单页面上的条件javascript+条件处理:

    • 动态操作,页面加载时触发。执行 JavaScript:

      $('input').prop('readonly', true);
      

      这会将所有输入项设置为只读。

    • 例如,通过使用 CSS,您可以向用户明确这一点

      input[readonly]{ background-color: grey; }
      

    他们仍然能够导航并看到光标,但不会 可以直接编辑。当然,只有 JavaScript 是不够的。 有人仍然可以通过使用像 firebug 或 即开发者工具。要阻止这种情况,请更改条件和/或 对您的动态操作进行授权检查(仅在以下情况下触发) 用户没有权限)和您的记录处理过程(仅运行 当用户拥有权限时)。当用户没有权限但设法 更改值并提交它们,不会将任何内容发送到数据库。

  2. 条件链接+表单页面:

    • 设置报告的默认链接列以显示报告详细信息 View 。
    • 在报告中创建另一个链接列,该链接列将链接到您的表单页面。
    • 将第二个链接列的显示条件或授权设置为仅在用户被授权时才显示。
    • 为了防止未经授权的用户访问该页面并操纵 URL 来更改记录的值,您必须设置 不过,页面的授权方案。或者流程, 任何能让你的船真正漂浮的东西。或者使用 session 状态 保护。 (我想是阅读安全性的好时机!)

关于reporting - 如何在 oracle apex 中将表单 View 中的报表行显示为只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12625559/

相关文章:

python - 如何从 openerp 中的帐户报告打印单一合作伙伴分类帐报告

oracle - Oracle APEX 的终端名称

jquery - Oracle Apex 5.1 动态日期选择器 minDate 移动日历图标

javascript 'mailto' 命令

reporting - 自定义报告表查询 bool 列

javascript - 使用 javascript 创建数据集(birt)

pdf - 报告服务报告

reporting - 为 BI 模块选择策略

http - 使我的oracle apex应用程序指向网站主页URL

oracle - 在 Oracle DB 中将字符串列表转换为数字