如何在 Oracle APEX 中动态创建可变数量的交互式报告/图表?

问题描述 投票:0回答:1

在我的应用程序中,作为创建“新项目”的一部分,我允许最终用户从班车中选择某些站点并将其存储在另一个表中。这样,一个项目就可以包含一个或多个站点。我正在努力做的是在包含项目信息的另一个页面中绘制这些站点的某些数据。例如,如果对于项目 1,最终用户选择站点 A、B 和 C,我希望为每个站点的关键数据提供表格或图形可视化。因此,对于每个站点,我可能会有一个表格,其中包含该站点的基本统计数据摘要,或者可能有一个描述该站点多年来累积使用情况的图表。

我的主要问题是,如何使用 APEX 根据表中存在的数据创建可变数量的图表或交互式网格/报告?如果一个项目作为一个关联站点,我会期望一个站点/表,如果两个则两个,依此类推。

谢谢你

oracle plsql oracle-apex
1个回答
0
投票

我不认为你可以绝对动态地做到这一点,让软件为你做一切

但是,如果我们假设要渲染的区域数量是确定的,那么这是一个选项。

示例表(基于 Scott 的示例架构;它将包含作业):

create table sh_jobs (id number generated always as identity,
                      jobs varchar2(50));

创建交互式网格区域;

jobs
栏目是穿梭项目:

为了能够继续执行此任务,请创建一个视图来标准化表中存储的数据:

create or replace view sh_jobs_v as
select id, 
  regexp_substr(jobs, '[^:]+', 1, column_value) job,
  column_value rn
from sh_jobs cross join 
  table(cast(multiset(select level from dual
                      connect by level <= regexp_count(jobs, ':') + 1
                     ) as sys.odcinumberlist));

查看内容例如

SQL> select * from sh_jobs_v;

        ID JOB                                                        RN
---------- -------------------------------------------------- ----------
         1 ANALYST                                                     1
         1 CLERK                                                       2
         2 MANAGER                                                     1
         2 SALESMAN                                                    2
         2 ANALYST                                                     3

下一步是创建一个项目,让您选择存储的数据;我将所有内容都放在同一页面上,这只是一个简单的选择列表项,它还重定向并设置值(如果需要,您也可以提交;关键是刷新页面):

然后,创建确定的数量的不同区域。我选择了经典的交互式报表和交互式网格;你说过你会创建图表和任何你想要的东西。我将 3 个区域设置为同一行。它们每个都包含服务器端条件,决定是否渲染它。

运行页面,在交互式网格中输入一些行,然后选择存储的值之一并查看结果。例如:


仅此而已;我向您展示了如何使其发挥作用。现在你可以把它变得更漂亮了。

© www.soinside.com 2019 - 2024. All rights reserved.