1

我如何列出 Jaspersoft 中域中使用的所有域和数据源。

我的意思是我有不同的域,如审计域、客户域等有没有办法让所有域与表(数据源)在 jaspersoft 的这些域中使用?

我有大约 20 个域,手动访问每个域并列出表格非常麻烦,所以我需要一些帮助!

4

2 回答 2

1

我没有找到一个好的方法(我相信你可以深入研究数据库),一种方法是导出域并将其导出到一个漂亮的整洁 XML 文件。由于我们只使用 JDBC 源,我们只需要查找“jdbcTable”和“jdbcQuery”标签来查看域正在使用什么,这一切都在 xml 的第二个 1/2 中。如果您使用其他数据源,您可能需要查看 xml 以了解 Jasper 如何在 XML 中引用它们。

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.jaspersoft.com/2007/SL/XMLSchema" version="1.0">
   <resources>
     <jdbcTable id="" datasourceId="" tableName="">  
     <jdbcQuery id="" datasourceId="">  
         <query>  select * from table <\query>
于 2014-09-17T15:57:58.850 回答
0

以下解决方案用于识别依赖于域的临时视图,但我相信您可以使用依赖于数据源的域实现类似的解决方案。

在域中,我创建了一个派生表 [AdhocViewName]。该域的查询是:

    SELECT   a.id               as AdhocID,     
             r.label            as AdhocLabel,      
             a.reportDataSource as AdhocDataSourceID,   
             t.AdhocDataSourceLabel 

    FROM   (SELECT id    as AdhocDataSourceID, 
                   label as AdhocDataSourceLabel 
    FROM public.jiresource       
    ) as t     

        INNER JOIN public.jiadhocdataview a ON a.reportDataSource = t.AdhocDataSourceID     
        INNER JOIN public.jiresource      r ON a.id = r.id

笔记:

  • 即使表格带有下划线(public_jiresource),查询也只能通过替换“。”(public.jiresource)来工作。
  • 出于某种原因,jasper 不喜欢使用括号;例如,a.id [AdhocID],因此我使用 a.id 作为 AdhocID。

当您将派生表拉入 Adhoc 视图时,

  • 创建表
  • 具有资源类型的过滤器是 SemanticLayerDataSource、AdhocDataView 之一
  • 列:资源标签,uri
  • 组:adhocdatasourcelabel
于 2017-10-23T21:30:34.040 回答