基于用户输入的交互式网格的列序。

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

能否定义交互式网格的列序,使列序根据用户的输入而改变,比如用户在选择列表中选择 "A "作为值,那么报表的列序应该是 "A1"、"A2"、"A3"、"B1"、"B2"、"B3 "和 "B1"。

例如,如果用户在选择列表中选择'A'作为值,那么报表的列序应该是'A1','A2','A3','B1','B2',B3',如果用户在选择列表中选择'B'作为值,那么报表的列序应该是'B1','B2','B3','A1','A2','A3'。

有什么方法可以实现吗?

oracle oracle-apex oracle-apex-5.1
1个回答
1
投票

我相信有几种可能性可以做到这一点。没有测试过任何一种,你需要自己做重头戏。

  1. 最好的解决方案:创建2个已保存的报表,当用户选择A或B时,用javascript在动态动作上查找id并更改它们:查看这个帖子,它有javascript功能。https:/community.oracle.comthread4173941。
  2. 最简单的解决方案:创建2个报表,报表A的col顺序为A1,A2,...,报表B的col顺序为B1,B2,...,然后对用户输入设置一个动态操作,这样当用户选择A时,就会显示报表A,隐藏报表B,反之亦然。

正如我所说,我还没有测试过。我也没有机会安装5.1版本,所以你只能靠自己了。


0
投票

一个选择是使用 UNION,例如

select a1, a2, a3, b1, b2, b3
  from your_table
  where :P1_SELECT_LIST = 'A'
union
select b1, b2, b3, a1, a2, a3 
  from your_table
  where :P1_SELECT_LIST = 'B'

注意,数据类型中的列必须匹配。


如果它们不匹配,就会有另一个 简单的 解决方法:"按原样 "创建报表(网格),以任意顺序使用所有列。运行页面,进入 "操作 "菜单,"列 "以 重新排序 以任何你想要的方式列。然后将该报表保存为 习俗 报告。对另一个布局做同样的工作。这样做,你就有两个布局可供选择。

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