1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Created with Jaspersoft Studio version 6.20.1.final using JasperReports Library version 6.20.1-7584acb244139816654f64e2fd57a00d3e31921e -->
3 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="summary_documentation_consultation" language="javascript" pageWidth="1500" pageHeight="800" orientation="Landscape" columnWidth="100" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isIgnorePagination="true" uuid="e9c71592-7651-43d3-b4ac-6eea5e049ac0">
4 <property name="com.jaspersoft.studio.data.sql.tables" value="" />
5 <property name="com.jaspersoft.studio.data.defaultdataadapter" value="nuxeo" />
6 <property name="com.jaspersoft.studio.data.sql.SQLQueryDesigner.sash.w1" value="193" />
7 <property name="com.jaspersoft.studio.data.sql.SQLQueryDesigner.sash.w2" value="800" />
8 <property name="com.jaspersoft.studio.property.dataset.dialog.DatasetDialog.sash.w1" value="625" />
9 <property name="com.jaspersoft.studio.property.dataset.dialog.DatasetDialog.sash.w2" value="361" />
10 <style name="Column header" fontName="SansSerif" fontSize="12" isBold="true" />
11 <style name="Detail" fontName="SansSerif" fontSize="12" />
12 <parameter name="deurnfields" class="java.lang.String" isForPrompting="false">
13 <defaultValueExpression><![CDATA["onbehalfof,cultures,summary_types,sites,exit_owners,status"]]></defaultValueExpression>
15 <parameter name="tenantid" class="java.lang.String" isForPrompting="false">
16 <defaultValueExpression><![CDATA["1"]]></defaultValueExpression>
18 <parameter name="csidlist" class="java.lang.String" isForPrompting="false" />
19 <parameter name="csids" class="java.lang.String" isForPrompting="false">
20 <defaultValueExpression><![CDATA[$P{csidlist} != null ? ("'" + $P{csidlist}.replace(/,/g, "','") + "'") : "NOVALUE"]]></defaultValueExpression>
22 <parameter name="whereclause_relation" class="java.lang.String" isForPrompting="false">
23 <defaultValueExpression><![CDATA[$P{csids} != "NOVALUE" ? ( "AND relation.subjectcsid IN (" + $P{csids} + ")" ) : ""]]></defaultValueExpression>
25 <parameter name="whereclause" class="java.lang.String" isForPrompting="false">
26 <defaultValueExpression><![CDATA[$P{csids} != "NOVALUE" ? ( "WHERE summary_hierarchy.name IN (" + $P{csids} + ")" ) : ""]]></defaultValueExpression>
28 <queryString language="SQL">
29 <![CDATA[WITH related_objects AS (
30 SELECT hierarchy.id as object_id,
32 relation.subjectcsid as repatriation_csid
33 FROM relations_common relation
34 INNER JOIN hierarchy on hierarchy.name = relation.objectcsid
35 INNER JOIN misc ON misc.id = relation.id
36 AND misc.lifecyclestate != 'deleted'
37 WHERE relation.objectdocumenttype = 'CollectionObject'
38 AND relation.subjectdocumenttype = 'SummaryDocumentation'
39 $P!{whereclause_relation}
42 SELECT DISTINCT ON (objs.repatriation_csid, hierarchy.id) objs.objectcsid,
43 objs.repatriation_csid,
44 hierarchy.id as exit_id,
45 relation.subjectcsid as exit_csid
46 FROM related_objects objs
47 INNER join relations_common relation on relation.objectcsid = objs.objectcsid
48 AND relation.subjectdocumenttype = 'Exit'
49 INNER JOIN hierarchy on hierarchy.name = relation.subjectcsid
50 INNER JOIN misc ON misc.id = relation.id
51 AND misc.lifecyclestate != 'deleted'
53 SELECT summary.documentationnumber,
54 summary.originationdate,
55 coalesce(titles.titles, '{}') AS titles,
56 coalesce(summarytypes.summary_types, '{}') AS summary_types,
57 coalesce(partiesinvolved.onbehalfof, '{}') AS onbehalfof,
58 coalesce(culturalgroup.cultures, '{}') AS cultures,
59 summary_status.status,
60 summary_status.statusdate,
61 coalesce(object_count.sacred_object_count, 0) AS sacred_object_count,
62 coalesce(object_count.ufo_count, 0) AS ufo_count,
63 coalesce(object_count.cultural_patrimony_count, 0) AS cultural_patrimony_count,
64 coalesce(object_count.lineal_descendent_count, 0) AS lineal_descendent_count,
65 coalesce(archaeological_sites.sites, '{}') AS sites,
66 coalesce(consultations.log_total, 0) AS log_total,
67 coalesce(exits.exit_owners, '{}') AS exit_owners,
68 coalesce(exits.exit_dates, '{}') AS exit_dates
69 FROM hierarchy summary_hierarchy
70 INNER JOIN misc ON misc.id = summary_hierarchy.id
71 AND misc.lifecyclestate != 'deleted'
72 INNER JOIN summarydocumentations_common summary ON summary.id = summary_hierarchy.id
75 SELECT title.id AS summary_id,
76 array_agg(title.item) AS titles
77 FROM summarydocumentations_common_titles title
79 ) titles ON titles.summary_id = summary_hierarchy.id
82 SELECT summarytype.id AS summary_id,
83 array_agg(summarytype.item) AS summary_types
84 FROM summarydocumentations_common_types summarytype
85 GROUP BY summarytype.id
86 ) summarytypes ON summarytypes.summary_id = summary_hierarchy.id
88 -- Organizations pulled from on behalf field on Summary record
89 SELECT hierarchy.parentid,
90 array_agg(party.involvedonbehalfof) as onbehalfof
92 INNER JOIN partiesinvolvedgroup party ON party.id = hierarchy.id
93 WHERE hierarchy.name = 'summarydocumentations_common:partiesInvolvedGroupList'
94 GROUP BY hierarchy.parentid
95 ) partiesinvolved ON partiesinvolved.parentid = summary_hierarchy.id
97 SELECT hierarchy.parentid,
98 array_agg(culturalgroup.culture) AS cultures
100 INNER JOIN culturalgroup ON culturalgroup.id = hierarchy.id
101 AND hierarchy.name = 'summarydocumentations_common:culturalGroupList'
102 GROUP BY hierarchy.parentid
103 ) culturalgroup ON culturalgroup.parentid = summary.id
105 -- Related archaeological sites
106 SELECT hierarchy.parentid,
107 array_agg(asg.archaeologicalsite) AS sites
109 INNER JOIN archaeologicalsitegroup asg ON asg.id = hierarchy.id
110 WHERE hierarchy.name = 'summarydocumentations_common:archaeologicalSiteGroupList'
111 GROUP BY hierarchy.parentid
112 ) archaeological_sites ON archaeological_sites.parentid = summary.id
114 -- Current Status: most recent
115 SELECT DISTINCT ON (hierarchy.parentid) hierarchy.parentid,
117 status_group.statusdate
119 INNER JOIN statusgroup status_group ON status_group.id = hierarchy.id
120 WHERE hierarchy.name = 'summarydocumentations_common:statusGroupList'
121 ORDER BY hierarchy.parentid,
122 status_group.statusdate DESC NULLS LAST
123 ) summary_status ON summary_status.parentid = summary_hierarchy.id
125 -- Related Object - Object Count
126 -- type is sacred object, cultural partrimony, UFO and lineal descent
127 -- Use regex matching because the refnames can contain subsets of the others,
128 -- so occasionally do things like use a word boundary (\y) to avoid overlaps
129 SELECT objs.repatriation_csid,
132 WHEN ocg.objectcounttype ~ 'sacred_object' THEN ocg.objectcount
135 ) AS sacred_object_count,
138 WHEN ocg.objectcounttype ~ 'unassociated_funerary' THEN ocg.objectcount
144 WHEN ocg.objectcounttype ~ 'cultural_patrimony' THEN ocg.objectcount
147 ) AS cultural_patrimony_count,
150 WHEN ocg.objectcounttype ~ 'lineal_descendent' THEN ocg.objectcount
153 ) AS lineal_descendent_count
154 FROM hierarchy ocg_hierarchy
155 INNER JOIN related_objects objs ON objs.object_id = ocg_hierarchy.parentid
156 INNER JOIN objectcountgroup ocg ON ocg.id = ocg_hierarchy.id
157 WHERE ocg_hierarchy.name = 'collectionobjects_common:objectCountGroupList'
158 GROUP BY objs.repatriation_csid
159 ) object_count ON object_count.repatriation_csid = summary_hierarchy.name
161 -- Related Consultations (Summary -> Consultation)
162 -- Number of Consultation Log Entries. Consultations related to the Summary record, pull a count of how many entries are in the log.
163 SELECT relation.subjectcsid,
164 count(cl_hierarchy.pos) AS log_total
165 FROM relations_common relation
166 INNER JOIN misc ON misc.id = relation.id
167 AND misc.lifecyclestate != 'deleted'
168 INNER JOIN hierarchy consultation_hierarchy ON consultation_hierarchy.name = relation.objectcsid
169 INNER JOIN hierarchy cl_hierarchy ON cl_hierarchy.parentid = consultation_hierarchy.id
170 AND cl_hierarchy.name = 'consultations_common:consultationLogGroupList'
171 WHERE relation.objectdocumenttype = 'Consultation'
172 AND relation.subjectdocumenttype = 'SummaryDocumentation'
173 $P!{whereclause_relation}
174 GROUP BY relation.subjectcsid
175 ) consultations ON consultations.subjectcsid = summary_hierarchy.name
177 -- Related Object Exits (Object -> ObjectExit (New))
178 -- Current owner with exit date: If there is an object exit related to the related objects, pull the current owner. Concatenate and separate by ;
179 -- (Format example: The United Band of Humbolt People, 2024-08-02; The Dog River People, 2024-09-05).
180 -- Allows NULL values to aggregate so we don't lose track of pairs
181 SELECT related_exits.repatriation_csid,
182 array_agg(exit.exitdate) as exit_dates,
183 array_agg(owners.item) AS exit_owners
184 FROM exits_common exit
185 INNER JOIN related_exits on related_exits.exit_id = exit.id
186 LEFT JOIN exits_common_owners owners on owners.id = exit.id AND owners.pos = 0
187 GROUP BY related_exits.repatriation_csid
188 ) exits ON exits.repatriation_csid = summary_hierarchy.name
191 <field name="documentationnumber" class="java.lang.String">
192 <property name="com.jaspersoft.studio.field.name" value="documentationnumber" />
193 <property name="com.jaspersoft.studio.field.label" value="documentationnumber" />
194 <property name="com.jaspersoft.studio.field.tree.path" value="summarydocumentations_common" />
196 <field name="originationdate" class="java.sql.Timestamp">
197 <property name="com.jaspersoft.studio.field.name" value="originationdate" />
198 <property name="com.jaspersoft.studio.field.label" value="originationdate" />
199 <property name="com.jaspersoft.studio.field.tree.path" value="summarydocumentations_common" />
201 <field name="titles" class="java.sql.Array">
202 <property name="com.jaspersoft.studio.field.name" value="titles" />
203 <property name="com.jaspersoft.studio.field.label" value="titles" />
205 <field name="summary_types" class="java.sql.Array">
206 <property name="com.jaspersoft.studio.field.name" value="summary_types" />
207 <property name="com.jaspersoft.studio.field.label" value="summary_types" />
209 <field name="onbehalfof" class="java.sql.Array">
210 <property name="com.jaspersoft.studio.field.name" value="onbehalfof" />
211 <property name="com.jaspersoft.studio.field.label" value="onbehalfof" />
213 <field name="cultures" class="java.sql.Array">
214 <property name="com.jaspersoft.studio.field.name" value="cultures" />
215 <property name="com.jaspersoft.studio.field.label" value="cultures" />
217 <field name="status" class="java.lang.String">
218 <property name="com.jaspersoft.studio.field.name" value="status" />
219 <property name="com.jaspersoft.studio.field.label" value="status" />
220 <property name="com.jaspersoft.studio.field.tree.path" value="statusgroup" />
222 <field name="statusdate" class="java.sql.Timestamp">
223 <property name="com.jaspersoft.studio.field.name" value="statusdate" />
224 <property name="com.jaspersoft.studio.field.label" value="statusdate" />
225 <property name="com.jaspersoft.studio.field.tree.path" value="statusgroup" />
227 <field name="sacred_object_count" class="java.math.BigDecimal">
228 <property name="com.jaspersoft.studio.field.name" value="sacred_object_count" />
229 <property name="com.jaspersoft.studio.field.label" value="sacred_object_count" />
231 <field name="ufo_count" class="java.math.BigDecimal">
232 <property name="com.jaspersoft.studio.field.name" value="ufo_count" />
233 <property name="com.jaspersoft.studio.field.label" value="ufo_count" />
235 <field name="cultural_patrimony_count" class="java.math.BigDecimal">
236 <property name="com.jaspersoft.studio.field.name" value="cultural_patrimony_count" />
237 <property name="com.jaspersoft.studio.field.label" value="cultural_patrimony_count" />
239 <field name="lineal_descendent_count" class="java.math.BigDecimal">
240 <property name="com.jaspersoft.studio.field.name" value="lineal_descendent_count" />
241 <property name="com.jaspersoft.studio.field.label" value="lineal_descendent_count" />
243 <field name="sites" class="java.sql.Array">
244 <property name="com.jaspersoft.studio.field.name" value="sites" />
245 <property name="com.jaspersoft.studio.field.label" value="sites" />
247 <field name="log_total" class="java.lang.Long">
248 <property name="com.jaspersoft.studio.field.name" value="log_total" />
249 <property name="com.jaspersoft.studio.field.label" value="log_total" />
251 <field name="exit_owners" class="java.sql.Array">
252 <property name="com.jaspersoft.studio.field.name" value="exit_owners" />
253 <property name="com.jaspersoft.studio.field.label" value="exit_owners" />
255 <field name="exit_dates" class="java.sql.Array">
256 <property name="com.jaspersoft.studio.field.name" value="exit_dates" />
257 <property name="com.jaspersoft.studio.field.label" value="exit_dates" />
260 <band splitType="Stretch" />
263 <band height="44" splitType="Stretch">
264 <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.FreeLayout" />
265 <property name="com.jaspersoft.studio.unit.height" value="px" />
267 <reportElement style="Column header" x="0" y="0" width="100" height="44" uuid="b8cd41b4-34e5-455f-81fc-97800f4ae9b7">
268 <property name="com.jaspersoft.studio.unit.width" value="px" />
270 <textElement markup="styled" />
271 <text><![CDATA[Organization(s)]]></text>
274 <reportElement style="Column header" x="100" y="0" width="100" height="44" uuid="539fd511-8c4c-4f20-ac0f-1b71fdc26939">
275 <property name="com.jaspersoft.studio.unit.width" value="px" />
277 <textElement markup="styled" />
278 <text><![CDATA[Summary Documentation Origination Date]]></text>
281 <reportElement style="Column header" x="200" y="0" width="100" height="44" uuid="9741cf97-9acc-45aa-bab2-90a03cf29e83">
282 <property name="com.jaspersoft.studio.unit.width" value="px" />
284 <textElement markup="styled" />
285 <text><![CDATA[Summary Documentation Number]]></text>
288 <reportElement style="Column header" x="300" y="0" width="100" height="44" uuid="65b98683-6871-48ec-a4c4-553e41f1b26b">
289 <property name="com.jaspersoft.studio.unit.width" value="px" />
291 <textElement markup="styled" />
292 <text><![CDATA[Summary Documentation Title]]></text>
295 <reportElement style="Column header" x="400" y="0" width="100" height="44" uuid="02898623-0732-4b3d-abe6-948350332361">
296 <property name="com.jaspersoft.studio.unit.width" value="px" />
298 <textElement markup="styled" />
299 <text><![CDATA[Summary Documentation - Summary Status]]></text>
302 <reportElement style="Column header" x="500" y="0" width="100" height="44" uuid="a0f54698-7f5f-4d08-8286-f86c412fa876">
303 <property name="com.jaspersoft.studio.unit.width" value="px" />
305 <textElement markup="styled" />
306 <text><![CDATA[UFO Count]]></text>
309 <reportElement style="Column header" x="600" y="0" width="100" height="44" uuid="9afbf556-a4f6-4041-97a9-ac9f106aa75e">
310 <property name="com.jaspersoft.studio.unit.width" value="px" />
312 <textElement markup="styled" />
313 <text><![CDATA[Objects of Cultural Patrimony Count]]></text>
316 <reportElement style="Column header" x="700" y="0" width="100" height="44" uuid="679eb6c6-e454-47d1-8320-1a723dabf0a1">
317 <property name="com.jaspersoft.studio.unit.width" value="px" />
319 <textElement markup="styled" />
320 <text><![CDATA[Sacred Object Count]]></text>
323 <reportElement style="Column header" x="800" y="0" width="100" height="44" uuid="f9a1fb86-9c78-48ba-942e-e35417916eeb">
324 <property name="com.jaspersoft.studio.unit.width" value="px" />
326 <textElement markup="styled" />
327 <text><![CDATA[Lineal Descendent Count]]></text>
330 <reportElement style="Column header" x="900" y="0" width="100" height="44" uuid="c2e6ccf4-0900-400d-a6f4-4ea0fc9bb95a">
331 <property name="com.jaspersoft.studio.unit.width" value="px" />
333 <textElement markup="styled" />
334 <text><![CDATA[NAGPRA Category Type(s)]]></text>
337 <reportElement style="Column header" x="1000" y="0" width="100" height="44" uuid="52cec6c0-596a-47f6-877a-fa0a4227e55d">
338 <property name="com.jaspersoft.studio.unit.width" value="px" />
340 <textElement markup="styled" />
341 <text><![CDATA[Site(s) Related to Summary]]></text>
344 <reportElement style="Column header" x="1100" y="0" width="100" height="44" uuid="c361bc9c-e677-4a74-a59e-695ba9eddbaa">
345 <property name="com.jaspersoft.studio.unit.width" value="px" />
347 <textElement markup="styled" />
348 <text><![CDATA[Culture(s) Related to Summary]]></text>
351 <reportElement style="Column header" x="1200" y="0" width="100" height="44" uuid="f6441c8d-82a9-4908-94c0-b57be2d22746">
352 <property name="com.jaspersoft.studio.unit.width" value="px" />
354 <textElement markup="styled" />
355 <text><![CDATA[Number of Associated Consultation Log Entries]]></text>
358 <reportElement style="Column header" x="1300" y="0" width="100" height="44" uuid="17fc9356-5a96-4aa4-915a-cf18a83bc614">
359 <property name="com.jaspersoft.studio.unit.width" value="px" />
361 <textElement markup="styled" />
362 <text><![CDATA[Exit Record Current Owner with Exit Date]]></text>
367 <band height="66" splitType="Stretch">
368 <property name="com.jaspersoft.studio.unit.height" value="px" />
369 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
370 <reportElement style="Detail" x="0" y="0" width="100" height="30" uuid="b387bbaf-4760-45af-a84c-62681a678e61">
371 <property name="com.jaspersoft.studio.unit.y" value="px" />
373 <textFieldExpression><![CDATA[$F{onbehalfof}.getArray().join('; ')]]></textFieldExpression>
375 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
376 <reportElement style="Detail" x="100" y="0" width="100" height="30" uuid="e3b59f6b-c027-4527-8f95-453c97a250f5">
377 <property name="com.jaspersoft.studio.unit.y" value="px" />
379 <textFieldExpression><![CDATA[$F{originationdate} !== null ? java.lang.String.format("%tF", $F{originationdate}) : '']]></textFieldExpression>
381 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
382 <reportElement style="Detail" x="200" y="0" width="100" height="30" uuid="0138ed1b-1e54-4d27-92f4-1e42769adbcb">
383 <property name="com.jaspersoft.studio.unit.y" value="px" />
385 <textFieldExpression><![CDATA[$F{documentationnumber}]]></textFieldExpression>
387 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
388 <reportElement style="Detail" x="300" y="0" width="100" height="30" uuid="99fcf86b-ed71-413a-a65f-dcbb51d096eb">
389 <property name="com.jaspersoft.studio.unit.y" value="px" />
391 <textFieldExpression><![CDATA[$F{titles}.getArray().join('; ')]]></textFieldExpression>
393 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
394 <reportElement style="Detail" x="400" y="0" width="100" height="30" uuid="637dac22-c0a3-4c77-b323-f15f65b5bdf7">
395 <property name="com.jaspersoft.studio.unit.y" value="px" />
397 <textFieldExpression>
399 var status = $F{status} !== null ? $F{status} : '';
400 var date = $F{statusdate} !== null ? java.lang.String.format("(%tF)", $F{statusdate}) : '';
403 </textFieldExpression>
405 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
406 <reportElement style="Detail" x="500" y="0" width="100" height="30" uuid="9bada286-6f81-4548-bc77-669a0973da26">
407 <property name="com.jaspersoft.studio.unit.y" value="px" />
409 <textFieldExpression><![CDATA[$F{ufo_count}]]></textFieldExpression>
411 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
412 <reportElement style="Detail" x="600" y="0" width="100" height="30" uuid="6619c361-ae3e-4f49-9f9e-492cc307ca30">
413 <property name="com.jaspersoft.studio.unit.y" value="px" />
415 <textFieldExpression><![CDATA[$F{cultural_patrimony_count}]]></textFieldExpression>
417 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
418 <reportElement style="Detail" x="700" y="0" width="100" height="30" uuid="bebdb2bf-297a-477b-a03b-88e5e15fb0f6">
419 <property name="com.jaspersoft.studio.unit.y" value="px" />
421 <textFieldExpression><![CDATA[$F{sacred_object_count}]]></textFieldExpression>
423 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
424 <reportElement style="Detail" x="800" y="0" width="100" height="30" uuid="6619e1e3-2761-4c6b-8e4a-3be5d8e4b956">
425 <property name="com.jaspersoft.studio.unit.y" value="px" />
427 <textFieldExpression><![CDATA[$F{lineal_descendent_count}]]></textFieldExpression>
429 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
430 <reportElement style="Detail" x="900" y="0" width="100" height="30" uuid="0beee49d-f49d-4e17-8f78-bb5c3184aaa1">
431 <property name="com.jaspersoft.studio.unit.y" value="px" />
433 <textFieldExpression><![CDATA[$F{summary_types}.getArray().join('; ')]]></textFieldExpression>
435 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
436 <reportElement style="Detail" x="1000" y="0" width="100" height="30" uuid="bd6c6806-b6d2-495c-917f-ae879e740992">
437 <property name="com.jaspersoft.studio.unit.y" value="px" />
439 <textFieldExpression><![CDATA[$F{sites}.getArray().join('; ')]]></textFieldExpression>
441 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
442 <reportElement style="Detail" x="1100" y="0" width="100" height="30" uuid="6d4f8b23-ea8c-4a38-9acc-4ca7eff30219">
443 <property name="com.jaspersoft.studio.unit.y" value="px" />
445 <textFieldExpression><![CDATA[$F{cultures}.getArray().join('; ')]]></textFieldExpression>
447 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
448 <reportElement style="Detail" x="1200" y="0" width="100" height="30" uuid="54b06775-91a6-4b74-a747-a7977e5943fb">
449 <property name="com.jaspersoft.studio.unit.y" value="px" />
451 <textFieldExpression><![CDATA[$F{log_total}]]></textFieldExpression>
453 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
454 <reportElement style="Detail" x="1300" y="0" width="100" height="30" uuid="04107479-6227-4b31-b0b5-50316e4d3426">
455 <property name="com.jaspersoft.studio.unit.y" value="px" />
457 <textFieldExpression>
459 var dates = $F{exit_dates}.getArray();
460 $F{exit_owners}.getArray().map(function(owner, index) {
464 return dates[index] === null ? owner : java.lang.String.format("%s (%tF)", owner, dates[index]);
465 }).filter(owner => !!owner).join('; ')
467 </textFieldExpression>