Jasper report - printing view's relations

Started by Joel01, November 12, 2020, 12:01:46 PM

Previous topic - Next topic

Joel01

Hello,
I'm trying to customize the jasper report template, and I would like to print all the relations used in a view. Is there an easy way to get those relations?
Joël

Phil Beauvoir

#1
I think it might be:

getChildElementsDataSourceForTypes("relations")

I replaced some lines in the view.jrxml file like this:

<dataSourceExpression><![CDATA[((com.archimatetool.jasperreports.data.ViewModelDataSource)$P{REPORT_DATA_SOURCE}).getChildElementsDataSourceForTypes("relations")]]></dataSourceExpression>

and that seemed to work.

General comment regarding the Jasper code - if you need to see how it works, you could take a look at it here:

https://github.com/archimatetool/archi/tree/master/com.archimatetool.jasperreports/src/com/archimatetool/jasperreports/data
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

johmut

Hi Phil,

I can't get this to work. I don't have a getChildElementsDataSourceForTypes in my dataSourceExpressions within view.jrxml ? Can you share a modded view.jrxml to report on relations on a view ?

TIA,
Johan

Phil Beauvoir

Hi Johan,

my original response was really a proof of concept, to show how to get the relations. I edited the "view.jrxml" file in a text editor and replaced line 191. The original code is this:

<dataSourceExpression><![CDATA[((com.archimatetool.jasperreports.data.ViewModelDataSource)$P{REPORT_DATA_SOURCE}).getChildElementsDataSource()]]></dataSourceExpression>
Replaced with:

<dataSourceExpression><![CDATA[((com.archimatetool.jasperreports.data.ViewModelDataSource)$P{REPORT_DATA_SOURCE}).getChildElementsDataSourceForTypes("relations")]]></dataSourceExpression>
Phil
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.