如何在 SpagoBI 中传递参数顶部 LOV 查询

Posted

技术标签:

【中文标题】如何在 SpagoBI 中传递参数顶部 LOV 查询【英文标题】:How to pass parameter top LOV query in SpagoBI 【发布时间】:2014-11-21 08:54:40 【问题描述】:

如何将参数传递给 SPagoBI 中的 LOV 查询?

我正在使用查询创建一个 LOV ...类似这样的内容:

select id, name
from table1
where parent_id = $parent_id

当我单击“保存前测试”以评估查询时,会出现标题为“要填充的配置文件属性”的窗口,要求我输入参数 parent_id 的值

这是显示在该页面上的文本:

lov 需要一些配置文件属性。 您的个人资料不包含所有必要的属性。 要继续测试,请为缺少的配置文件属性分配一个值。

填充值并单击“测试”后会出现加载图标并卡住。我检查了日志。以下任何日志文件中都没有错误信息:SpagoBI.log、catalina.out、SpagoBI_[1]_OperatorTrace.log、SpagoBIBirtReportEngine.log

我可以通过 Express Profiler 看到查询是使用有效传递的参数执行的,但为什么窗口会卡住?

【问题讨论】:

【参考方案1】:

您不能将参数从报告传递给 lovs。

前面给出的示例是基于用户登录的配置文件属性。

查看下图了解如何使用配置文件属性。

首先创建要使用的配置文件属性。

那你要填写用户对应的所有profile属性

然后使用您希望我使用venueId创建的配置文件属性创建一个lov

见下图

现在测试 lov 你会得到响应见下图。

如果您需要特定于用户的报告,请使用配置文件属性。

【讨论】:

【参考方案2】:

您可以在数据集查询中使用配置文件属性,例如;

select id, name
from table1
where parent_id = '$parent_id'

并在 LOV 中使用创建的数据集。

请注意,如果查询仅返回 1 行链接到文档的分析驱动程序将不可见,但会按预期运行。

【讨论】:

【参考方案3】:

您需要在查询语句中用单引号包裹属性简码

喜欢这个

select id, name
from table1
where parent_id = '$parent_id'

【讨论】:

这里的 parent _id 是配置文件属性,而不是从报告中传递的参数。需要设置此配置文件属性,然后它将适用于用户登录的配置文件。

以上是关于如何在 SpagoBI 中传递参数顶部 LOV 查询的主要内容,如果未能解决你的问题,请参考以下文章

SpagoBI 连接数据库

如何在 oracle 表单中为值列表“LOV”设置方向

如何配置/格式化 spagobi 导出到 excel 配置

SpagoBI 使用环境搭建

Oracle OAF 学习小结- 增删改查/LOV/Button/Sequence 的完整案例开发

如何在 ADF: ListOfValues (LOV) 组件中强制搜索字段为大写?