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 summary_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.summary_csid, hierarchy.id) objs.objectcsid,
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_descendant_count, 0) AS lineal_descendant_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 SELECT related_objects.summary_csid,
106 array_agg(fcs.item) as sites
107 FROM collectionobjects_common_fieldcollectionsites fcs
108 INNER JOIN related_objects on related_objects.object_id = fcs.id
109 GROUP BY related_objects.summary_csid
110 ) archaeological_sites ON archaeological_sites.summary_csid = summary_hierarchy.name
112 -- Current Status: most recent
113 SELECT DISTINCT ON (hierarchy.parentid) hierarchy.parentid,
115 status_group.statusdate
117 INNER JOIN statusgroup status_group ON status_group.id = hierarchy.id
118 WHERE hierarchy.name = 'summarydocumentations_common:statusGroupList'
119 ORDER BY hierarchy.parentid,
120 status_group.statusdate DESC NULLS LAST
121 ) summary_status ON summary_status.parentid = summary_hierarchy.id
123 -- Related Object - Object Count
124 -- type is sacred object, cultural partrimony, UFO and lineal descent
125 -- Use regex matching because the refnames can contain subsets of the others,
126 -- so occasionally do things like use a word boundary (\y) to avoid overlaps
127 SELECT objs.summary_csid,
130 WHEN ocg.objectcounttype ~ 'sacred_object' THEN ocg.objectcount
133 ) AS sacred_object_count,
136 WHEN ocg.objectcounttype ~ 'unassociated_funerary' THEN ocg.objectcount
142 WHEN ocg.objectcounttype ~ 'cultural_patrimony' THEN ocg.objectcount
145 ) AS cultural_patrimony_count,
148 WHEN ocg.objectcounttype ~ 'lineal_descendant' THEN ocg.objectcount
151 ) AS lineal_descendant_count
152 FROM hierarchy ocg_hierarchy
153 INNER JOIN related_objects objs ON objs.object_id = ocg_hierarchy.parentid
154 INNER JOIN objectcountgroup ocg ON ocg.id = ocg_hierarchy.id
155 WHERE ocg_hierarchy.name = 'collectionobjects_common:objectCountGroupList'
156 GROUP BY objs.summary_csid
157 ) object_count ON object_count.summary_csid = summary_hierarchy.name
159 -- Related Consultations (Summary -> Consultation)
160 -- Number of Consultation Log Entries. Consultations related to the Summary record, pull a count of how many entries are in the log.
161 SELECT relation.subjectcsid,
162 count(cl_hierarchy.pos) AS log_total
163 FROM relations_common relation
164 INNER JOIN misc ON misc.id = relation.id
165 AND misc.lifecyclestate != 'deleted'
166 INNER JOIN hierarchy consultation_hierarchy ON consultation_hierarchy.name = relation.objectcsid
167 INNER JOIN hierarchy cl_hierarchy ON cl_hierarchy.parentid = consultation_hierarchy.id
168 AND cl_hierarchy.name = 'consultations_common:consultationLogGroupList'
169 WHERE relation.objectdocumenttype = 'Consultation'
170 AND relation.subjectdocumenttype = 'SummaryDocumentation'
171 $P!{whereclause_relation}
172 GROUP BY relation.subjectcsid
173 ) consultations ON consultations.subjectcsid = summary_hierarchy.name
175 -- Related Object Exits (Object -> ObjectExit (New))
176 -- Current owner with exit date: If there is an object exit related to the related objects, pull the current owner. Concatenate and separate by ;
177 -- (Format example: The United Band of Humbolt People, 2024-08-02; The Dog River People, 2024-09-05).
178 -- Allows NULL values to aggregate so we don't lose track of pairs
179 SELECT related_exits.summary_csid,
180 array_agg(exit.exitdate) as exit_dates,
181 array_agg(owners.item) AS exit_owners
182 FROM exits_common exit
183 INNER JOIN related_exits on related_exits.exit_id = exit.id
184 LEFT JOIN exits_common_owners owners on owners.id = exit.id AND owners.pos = 0
185 GROUP BY related_exits.summary_csid
186 ) exits ON exits.summary_csid = summary_hierarchy.name
189 <field name="documentationnumber" class="java.lang.String">
190 <property name="com.jaspersoft.studio.field.name" value="documentationnumber" />
191 <property name="com.jaspersoft.studio.field.label" value="documentationnumber" />
192 <property name="com.jaspersoft.studio.field.tree.path" value="summarydocumentations_common" />
194 <field name="originationdate" class="java.sql.Timestamp">
195 <property name="com.jaspersoft.studio.field.name" value="originationdate" />
196 <property name="com.jaspersoft.studio.field.label" value="originationdate" />
197 <property name="com.jaspersoft.studio.field.tree.path" value="summarydocumentations_common" />
199 <field name="titles" class="java.sql.Array">
200 <property name="com.jaspersoft.studio.field.name" value="titles" />
201 <property name="com.jaspersoft.studio.field.label" value="titles" />
203 <field name="summary_types" class="java.sql.Array">
204 <property name="com.jaspersoft.studio.field.name" value="summary_types" />
205 <property name="com.jaspersoft.studio.field.label" value="summary_types" />
207 <field name="onbehalfof" class="java.sql.Array">
208 <property name="com.jaspersoft.studio.field.name" value="onbehalfof" />
209 <property name="com.jaspersoft.studio.field.label" value="onbehalfof" />
211 <field name="cultures" class="java.sql.Array">
212 <property name="com.jaspersoft.studio.field.name" value="cultures" />
213 <property name="com.jaspersoft.studio.field.label" value="cultures" />
215 <field name="status" class="java.lang.String">
216 <property name="com.jaspersoft.studio.field.name" value="status" />
217 <property name="com.jaspersoft.studio.field.label" value="status" />
218 <property name="com.jaspersoft.studio.field.tree.path" value="statusgroup" />
220 <field name="statusdate" class="java.sql.Timestamp">
221 <property name="com.jaspersoft.studio.field.name" value="statusdate" />
222 <property name="com.jaspersoft.studio.field.label" value="statusdate" />
223 <property name="com.jaspersoft.studio.field.tree.path" value="statusgroup" />
225 <field name="sacred_object_count" class="java.math.BigDecimal">
226 <property name="com.jaspersoft.studio.field.name" value="sacred_object_count" />
227 <property name="com.jaspersoft.studio.field.label" value="sacred_object_count" />
229 <field name="ufo_count" class="java.math.BigDecimal">
230 <property name="com.jaspersoft.studio.field.name" value="ufo_count" />
231 <property name="com.jaspersoft.studio.field.label" value="ufo_count" />
233 <field name="cultural_patrimony_count" class="java.math.BigDecimal">
234 <property name="com.jaspersoft.studio.field.name" value="cultural_patrimony_count" />
235 <property name="com.jaspersoft.studio.field.label" value="cultural_patrimony_count" />
237 <field name="lineal_descendant_count" class="java.math.BigDecimal">
238 <property name="com.jaspersoft.studio.field.name" value="lineal_descendant_count" />
239 <property name="com.jaspersoft.studio.field.label" value="lineal_descendant_count" />
241 <field name="sites" class="java.sql.Array">
242 <property name="com.jaspersoft.studio.field.name" value="sites" />
243 <property name="com.jaspersoft.studio.field.label" value="sites" />
245 <field name="log_total" class="java.lang.Long">
246 <property name="com.jaspersoft.studio.field.name" value="log_total" />
247 <property name="com.jaspersoft.studio.field.label" value="log_total" />
249 <field name="exit_owners" class="java.sql.Array">
250 <property name="com.jaspersoft.studio.field.name" value="exit_owners" />
251 <property name="com.jaspersoft.studio.field.label" value="exit_owners" />
253 <field name="exit_dates" class="java.sql.Array">
254 <property name="com.jaspersoft.studio.field.name" value="exit_dates" />
255 <property name="com.jaspersoft.studio.field.label" value="exit_dates" />
258 <band splitType="Stretch" />
261 <band height="44" splitType="Stretch">
262 <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.FreeLayout" />
263 <property name="com.jaspersoft.studio.unit.height" value="px" />
265 <reportElement style="Column header" x="0" y="0" width="100" height="44" uuid="b8cd41b4-34e5-455f-81fc-97800f4ae9b7">
266 <property name="com.jaspersoft.studio.unit.width" value="px" />
268 <textElement markup="styled" />
269 <text><![CDATA[Organization(s)]]></text>
272 <reportElement style="Column header" x="100" y="0" width="100" height="44" uuid="539fd511-8c4c-4f20-ac0f-1b71fdc26939">
273 <property name="com.jaspersoft.studio.unit.width" value="px" />
275 <textElement markup="styled" />
276 <text><![CDATA[Summary Documentation Origination Date]]></text>
279 <reportElement style="Column header" x="200" y="0" width="100" height="44" uuid="9741cf97-9acc-45aa-bab2-90a03cf29e83">
280 <property name="com.jaspersoft.studio.unit.width" value="px" />
282 <textElement markup="styled" />
283 <text><![CDATA[Summary Documentation Number]]></text>
286 <reportElement style="Column header" x="300" y="0" width="100" height="44" uuid="65b98683-6871-48ec-a4c4-553e41f1b26b">
287 <property name="com.jaspersoft.studio.unit.width" value="px" />
289 <textElement markup="styled" />
290 <text><![CDATA[Summary Documentation Title]]></text>
293 <reportElement style="Column header" x="400" y="0" width="100" height="44" uuid="02898623-0732-4b3d-abe6-948350332361">
294 <property name="com.jaspersoft.studio.unit.width" value="px" />
296 <textElement markup="styled" />
297 <text><![CDATA[Summary Documentation - Summary Status]]></text>
300 <reportElement style="Column header" x="500" y="0" width="100" height="44" uuid="a0f54698-7f5f-4d08-8286-f86c412fa876">
301 <property name="com.jaspersoft.studio.unit.width" value="px" />
303 <textElement markup="styled" />
304 <text><![CDATA[UFO Count]]></text>
307 <reportElement style="Column header" x="600" y="0" width="100" height="44" uuid="9afbf556-a4f6-4041-97a9-ac9f106aa75e">
308 <property name="com.jaspersoft.studio.unit.width" value="px" />
310 <textElement markup="styled" />
311 <text><![CDATA[Objects of Cultural Patrimony Count]]></text>
314 <reportElement style="Column header" x="700" y="0" width="100" height="44" uuid="679eb6c6-e454-47d1-8320-1a723dabf0a1">
315 <property name="com.jaspersoft.studio.unit.width" value="px" />
317 <textElement markup="styled" />
318 <text><![CDATA[Sacred Object Count]]></text>
321 <reportElement style="Column header" x="800" y="0" width="100" height="44" uuid="f9a1fb86-9c78-48ba-942e-e35417916eeb">
322 <property name="com.jaspersoft.studio.unit.width" value="px" />
324 <textElement markup="styled" />
325 <text><![CDATA[Lineal Descendent Count]]></text>
328 <reportElement style="Column header" x="900" y="0" width="100" height="44" uuid="c2e6ccf4-0900-400d-a6f4-4ea0fc9bb95a">
329 <property name="com.jaspersoft.studio.unit.width" value="px" />
331 <textElement markup="styled" />
332 <text><![CDATA[NAGPRA Category Type(s)]]></text>
335 <reportElement style="Column header" x="1000" y="0" width="100" height="44" uuid="52cec6c0-596a-47f6-877a-fa0a4227e55d">
336 <property name="com.jaspersoft.studio.unit.width" value="px" />
338 <textElement markup="styled" />
339 <text><![CDATA[Site(s) Related to Summary]]></text>
342 <reportElement style="Column header" x="1100" y="0" width="100" height="44" uuid="c361bc9c-e677-4a74-a59e-695ba9eddbaa">
343 <property name="com.jaspersoft.studio.unit.width" value="px" />
345 <textElement markup="styled" />
346 <text><![CDATA[Culture(s) Related to Summary]]></text>
349 <reportElement style="Column header" x="1200" y="0" width="100" height="44" uuid="f6441c8d-82a9-4908-94c0-b57be2d22746">
350 <property name="com.jaspersoft.studio.unit.width" value="px" />
352 <textElement markup="styled" />
353 <text><![CDATA[Number of Associated Consultation Log Entries]]></text>
356 <reportElement style="Column header" x="1300" y="0" width="100" height="44" uuid="17fc9356-5a96-4aa4-915a-cf18a83bc614">
357 <property name="com.jaspersoft.studio.unit.width" value="px" />
359 <textElement markup="styled" />
360 <text><![CDATA[Exit Record Current Owner with Exit Date]]></text>
365 <band height="66" splitType="Stretch">
366 <property name="com.jaspersoft.studio.unit.height" value="px" />
367 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
368 <reportElement style="Detail" x="0" y="0" width="100" height="30" uuid="b387bbaf-4760-45af-a84c-62681a678e61">
369 <property name="com.jaspersoft.studio.unit.y" value="px" />
371 <textFieldExpression><![CDATA[$F{onbehalfof}.getArray().filter((val) => !!val).join('; ')]]></textFieldExpression>
373 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
374 <reportElement style="Detail" x="100" y="0" width="100" height="30" uuid="e3b59f6b-c027-4527-8f95-453c97a250f5">
375 <property name="com.jaspersoft.studio.unit.y" value="px" />
377 <textFieldExpression><![CDATA[$F{originationdate} !== null ? $F{originationdate}.toLocalDateTime().toLocalDate() : '']]></textFieldExpression>
379 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
380 <reportElement style="Detail" x="200" y="0" width="100" height="30" uuid="0138ed1b-1e54-4d27-92f4-1e42769adbcb">
381 <property name="com.jaspersoft.studio.unit.y" value="px" />
383 <textFieldExpression><![CDATA[$F{documentationnumber}]]></textFieldExpression>
385 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
386 <reportElement style="Detail" x="300" y="0" width="100" height="30" uuid="99fcf86b-ed71-413a-a65f-dcbb51d096eb">
387 <property name="com.jaspersoft.studio.unit.y" value="px" />
389 <textFieldExpression><![CDATA[$F{titles}.getArray().filter((val) => !!val).join('; ')]]></textFieldExpression>
391 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
392 <reportElement style="Detail" x="400" y="0" width="100" height="30" uuid="637dac22-c0a3-4c77-b323-f15f65b5bdf7">
393 <property name="com.jaspersoft.studio.unit.y" value="px" />
395 <textFieldExpression>
397 var status = $F{status} !== null ? $F{status} : '';
398 var date = $F{statusdate} !== null ? '(' + $F{statusdate}.toLocalDateTime().toLocalDate() + ')' : '';
401 </textFieldExpression>
403 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
404 <reportElement style="Detail" x="500" y="0" width="100" height="30" uuid="9bada286-6f81-4548-bc77-669a0973da26">
405 <property name="com.jaspersoft.studio.unit.y" value="px" />
407 <textFieldExpression><![CDATA[$F{ufo_count}]]></textFieldExpression>
409 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
410 <reportElement style="Detail" x="600" y="0" width="100" height="30" uuid="6619c361-ae3e-4f49-9f9e-492cc307ca30">
411 <property name="com.jaspersoft.studio.unit.y" value="px" />
413 <textFieldExpression><![CDATA[$F{cultural_patrimony_count}]]></textFieldExpression>
415 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
416 <reportElement style="Detail" x="700" y="0" width="100" height="30" uuid="bebdb2bf-297a-477b-a03b-88e5e15fb0f6">
417 <property name="com.jaspersoft.studio.unit.y" value="px" />
419 <textFieldExpression><![CDATA[$F{sacred_object_count}]]></textFieldExpression>
421 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
422 <reportElement style="Detail" x="800" y="0" width="100" height="30" uuid="6619e1e3-2761-4c6b-8e4a-3be5d8e4b956">
423 <property name="com.jaspersoft.studio.unit.y" value="px" />
425 <textFieldExpression><![CDATA[$F{lineal_descendant_count}]]></textFieldExpression>
427 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
428 <reportElement style="Detail" x="900" y="0" width="100" height="30" uuid="0beee49d-f49d-4e17-8f78-bb5c3184aaa1">
429 <property name="com.jaspersoft.studio.unit.y" value="px" />
431 <textFieldExpression><![CDATA[$F{summary_types}.getArray().filter((val) => !!val).join('; ')]]></textFieldExpression>
433 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
434 <reportElement style="Detail" x="1000" y="0" width="100" height="30" uuid="bd6c6806-b6d2-495c-917f-ae879e740992">
435 <property name="com.jaspersoft.studio.unit.y" value="px" />
437 <textFieldExpression><![CDATA[$F{sites}.getArray().filter((val) => !!val).join('; ')]]></textFieldExpression>
439 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
440 <reportElement style="Detail" x="1100" y="0" width="100" height="30" uuid="6d4f8b23-ea8c-4a38-9acc-4ca7eff30219">
441 <property name="com.jaspersoft.studio.unit.y" value="px" />
443 <textFieldExpression><![CDATA[$F{cultures}.getArray().filter((val) => !!val).join('; ')]]></textFieldExpression>
445 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
446 <reportElement style="Detail" x="1200" y="0" width="100" height="30" uuid="54b06775-91a6-4b74-a747-a7977e5943fb">
447 <property name="com.jaspersoft.studio.unit.y" value="px" />
449 <textFieldExpression><![CDATA[$F{log_total}]]></textFieldExpression>
451 <textField textAdjust="StretchHeight" isBlankWhenNull="true">
452 <reportElement style="Detail" x="1300" y="0" width="100" height="30" uuid="04107479-6227-4b31-b0b5-50316e4d3426">
453 <property name="com.jaspersoft.studio.unit.y" value="px" />
455 <textFieldExpression>
457 var dates = $F{exit_dates}.getArray();
458 $F{exit_owners}.getArray().map(function(owner, index) {
462 return dates[index] === null ? owner : owner + ' (' + dates[index].toLocalDateTime().toLocalDate() + ')';
463 }).filter(owner => !!owner).join('; ')
465 </textFieldExpression>