更改APEX表单中的字段后更新图表

时间:2018-02-02 18:19:46

标签: apex

如何更改文本框/选择列表/中的值(在图表的pl / sql语句中用作参数?)后,如何使APEX刷新图表(图形)?

我希望它看起来尽可能专业,并尽量减少必须刷新的页面部分(即&#34; ajax-like&#34;,这是2018年的标准)。< / p>

2 个答案:

答案 0 :(得分:0)

请参阅下面的方法B,以获得最佳解决方案。

接近A

最简单的选项(不太专业)是当文本框/选择列表/ etc的值发生变化时,修改submit the page感兴趣的每个文本框/选择列表/等。例如,对于选择列表,请转到其settings - &gt; page action on selection并将设置更改为submit page

这种方法有两个主要缺点:

  1. 大部分页面都会刷新,这对您的用户来说很不利,

  2. 如果你正在使用插件,或者你使用的item类型不支持这种方法,那么你就不走运了。

  3. 方法B

    更复杂的解决方案随之产生更专业的结果。这个解决方案涉及动态操作,我在这里可能没有完全解释。但是,该信息应足以让用户弄明白。

    让我们假设您有两件事:(1)select list,其值在(2)chart的sql源语句中用作参数。

    要在每次通过chart做出新选择时更新select list,您需要:

    1. 为感兴趣的select list创建动态操作。您可以通过单击选择列表,转到动态操作选项卡(闪电)来完成此操作;右键单击该项目;点击选择动态动作;为其命名并将event设置为change并将selection type设为item,并将item设置为select list的名称你在看。

    2. true action的动态操作创建executes pl/sql code(您可以通过修改默认情况下在1中创建的show操作来执行此操作)。将pl / sql代码设置为null;。然后在items to submit下,指定感兴趣的select list的名称。

    3. 创建第二个true actionrefreshes包含region的{​​{1}}。

    4. 您需要确保分配给2.的序列的编号小于分配给3的序列。默认情况下会发生这种情况,但这是一个可以绊倒的区域。

      不适用的方法C

      在Apex 5.something中,他们添加了一个名为 Cascading List of Values 的功能。此功能允许您指定一个项目依赖于另一个项目的值。例如,如果您有chart允许用户选择一个部门,然后您有第二个select list,您可以从所选部门中选择一个员工(可能从中获取其值一个涉及在第一个select list中选择的值的查询,您可以告诉APEX每当您更新第一个时都刷新第二个select list

      您可以通过编辑第二个select list来执行此操作。在其设置下转到select list - &gt; list of values。将第一个cascading LOV parent item(s)添加为“反向”依赖(又称“父”)。这将确保在第一个select list更新时,第二个select list也会更新。

      无论好坏,图表都没有select list设置。因此,此解决方案不适用于此问题。

答案 1 :(得分:0)

  1. 在事件“更改”
  2. 更改的文本框/选择列表/ etc上创建动态操作
  3. 创建一个真实的动作并选择pl / sql并写入

    开始 空值; 端;

  4. 在要提交的页面项目中选择您的项目

  5. 在第一个之后创建第二个真实操作,然后选择Refresh。然后选择region作为受影响的元素并选择您的图表。请记住,“初始化时启动”选项必须设置为NO