Oracle apex 基于表值以表格形式使行只读

Oracle apex 基于表值以表格形式使行只读,oracle-apex,Oracle Apex,我有一个整年更新的表格,我想阻止用户编辑某些行。目前,“行类型”是硬编码的,但是我希望应用程序管理员控制哪些“行类型”在特定时间可读/写 当前触发了一个动态操作,该操作可防止编辑包含“manager figure”和“sales_target”类型的行 我针对每个客户创建了一个具有三种行类型的表。每个状态都由一个数字设置:0到3(我将把它们解码成对用户有意义的东西) 0-具有该行类型的行为只读 1-用户可以输入具有该行类型的行 2-行是该行类型的只读行 3-行已完成并设置为只读 我已经为管理

我有一个整年更新的表格,我想阻止用户编辑某些行。目前,“行类型”是硬编码的,但是我希望应用程序管理员控制哪些“行类型”在特定时间可读/写

当前触发了一个动态操作,该操作可防止编辑包含“manager figure”和“sales_target”类型的行

我针对每个客户创建了一个具有三种行类型的表。每个状态都由一个数字设置:0到3(我将把它们解码成对用户有意义的东西)

  • 0-具有该行类型的行为只读
  • 1-用户可以输入具有该行类型的行
  • 2-行是该行类型的只读行
  • 3-行已完成并设置为只读
我已经为管理员用户创建了一个新表单(新选项卡),以维护每个状态

目前,客户“大玩具店”行应设置如下:

  • Manager地物行应为只读(因为设置为2)
  • 销售应可读(因为设置为0)
  • 销售目标应可写(因为设置为1)
请允许我指出正确的方向,我研究了jquery,但正在努力解决如何将sql查询的输出传递给它,以便它可以用来确定哪些行应该是只读的

链接:
工作区:apps2
用户:开发者。用户
密码:DynamicAction

应用程序名称:应用程序71656表格格式的只读行

我不确定表格格式是否是解决此问题的好格式。如您所见,您需要相当多的javascript来生成所需的结果。不仅如此,这也是客户端的问题,因此需要考虑一些安全风险。毕竟,我可以运行一些Firebug,禁用或恢复您所做的所有事情,甚至更改数字。尤其是销售数字,这是你最肯定希望每个人都改变的,也是你问题的本质,安全性很重要。
这里有更优雅的方法来控制这一点,而不是减少高度定制的javascript代码的数量。例如,您可以取消表格形式,而是从交互式报告中实现一个模式弹出窗口。由于模式弹出窗口将是一个iframe,因此是一个不同的页面,因此您可以创建一个表单页面。在表单页面上,您可以更好地控制某些元素的变化。您可以指定条件、只读条件或使用授权方案。所有你不能以表格形式使用的东西。
我认为你应该重新考虑这一点,并探索一个不同的选择,从而为自己服务。有多少交易破坏者实际使用的是表格形式?
您需要用户。您需要知道他属于哪个组,然后必须根据不同的状态进行检查,并且行必须为en/disabled。您真的希望这种情况在客户端发生吗?

我并不是说它不能以表格形式和javascript完成。可以,我只是怀疑这是正确的方法

谢谢你的留言,你是说控制可编辑行的表格,还是人们输入数字的表格?它必须是表格形式,以便用户可以看到客户,只需在需要时键入数字。我最初让他们从一个报告中进入一个表单,他们说没有。因为这篇文章,我现在使用选择列表更新哪些状态有可编辑的行,并使用sql更新表,这使我能够删除管理页面上的表格表单。我会阅读交互式报告/模型弹出窗口,有点担心他们不喜欢单击。谢谢。我知道您的用户可能不喜欢单击,但从安全角度来看,我认为这种表格形式的设置不是一个好的设置。当您希望某些用户不更新某些行时,最好同时进行客户端和服务器端验证。也许在理想情况下,您最好使用手动表格,这样您可以更好地控制它。不过,tradeof的代码更多,因为您将无法使用内置进程