Oracle apex 基于用户输入的交互式网格列顺序

Oracle apex 基于用户输入的交互式网格列顺序,oracle-apex,oracle-apex-5.1,Oracle Apex,Oracle Apex 5.1,可以定义交互式网格的列顺序,以便根据用户输入更改列顺序 例如,如果用户在选择列表中选择“A”作为值,则报表的列顺序应为“A1”、“A2”、“A3”、“B1”、“B2”、“B3”;如果用户在选择列表中选择“B”作为值,则报表的列顺序应为“B1”、“B2”、“B3”、“A1”、“A2”、“A3” 有什么方法可以实现这一点吗?一个选择是使用UNION,例如 请注意,列必须在数据类型中匹配 如果它们不匹配,还有另一个简单的解决方案:按原样创建报表网格,以任意顺序使用所有列。运行页面,转到“操作”菜单和“

可以定义交互式网格的列顺序,以便根据用户输入更改列顺序

例如,如果用户在选择列表中选择“A”作为值,则报表的列顺序应为“A1”、“A2”、“A3”、“B1”、“B2”、“B3”;如果用户在选择列表中选择“B”作为值,则报表的列顺序应为“B1”、“B2”、“B3”、“A1”、“A2”、“A3”

有什么方法可以实现这一点吗?

一个选择是使用UNION,例如

请注意,列必须在数据类型中匹配


如果它们不匹配,还有另一个简单的解决方案:按原样创建报表网格,以任意顺序使用所有列。运行页面,转到“操作”菜单和“列”,以任意方式对列重新排序。然后将该报告另存为自定义报告。对另一个布局执行相同的操作。这样做,您将有两种布局可供选择。

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

最佳解决方案:创建2个已保存的报告,查找id,并在动态操作上使用javascript进行更改。当用户选择a或B时:检查此线程,它具有javascript功能: 最简单的解决方案:创建2个报表,报表A的列顺序为A1、A2。。。和列顺序为B1,B2。。。并在用户输入上设置一个动态操作,以便当用户选择a时,显示reportA,隐藏reportB,反之亦然。
正如我所说,我没有测试过这一点。我也没有访问5.1安装的权限,因此您只能在这里自行操作。

不幸的是,这些列的数据类型不同。我正在考虑通过javascript动态操作设置列顺序,该操作可以在提交页面按钮上触发。但不幸的是,我找不到任何方法来做到这一点。使用“操作”按钮怎么样?我在回答中描述了这一点。请看一看,为什么不呢?适合我。我正在使用Oracle APEX 5.1.4。我想这就是为什么它对我不起作用的原因。无论如何,谢谢你为我找到答案所做的努力。谢谢你的帮助。你的标题是交互式网格,但你的问题是交互式报告。由于方法不同,请确定您正在使用的方法。抱歉。我已经更新了问题。不幸的是,我的应用程序中的选择列表有166个国家名称条目,这要求每个国家的列顺序不同。这将需要大量重复的代码,这是我一直不想做的事情。除了上面提到的解决方案之外,我不知道还有其他解决方案。是的,很遗憾,我认为在Oracle APEX中不可能通过JavaScript设置列顺序。不管怎样,谢谢你努力为我找到答案。我很感激。
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'