]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
DRYD-1851: Report > Public Art > Full object with place details (#493)
authorSpiros Dimopulos <spiros@wantedpixel.com>
Tue, 20 Jan 2026 10:17:52 +0000 (12:17 +0200)
committerGitHub <noreply@github.com>
Tue, 20 Jan 2026 10:17:52 +0000 (12:17 +0200)
* DRYD-1851: fixed adding all creators with their roles;

* DRYD-1851: fixed adding all worktypes and materials

* DRYD-1851: added additional report for showing creator name and creator role in distinct columns;

* DRYD-1851: changed uuids using uuidgen and name

services/common/src/main/cspace/config/services/tenants/publicart/publicart-tenant-bindings.delta.xml
services/report/3rdparty/jasper-cs-report/src/main/resources/full_obj_place.jrxml
services/report/3rdparty/jasper-cs-report/src/main/resources/full_obj_place_creator_role_combined.jrxml [new file with mode: 0644]
services/report/3rdparty/jasper-cs-report/src/main/resources/full_obj_place_creator_role_combined.xml [new file with mode: 0644]

index a6b71878ef058c69913758ff633dc0302eaac924..5e9d84131bf3bbd7e941f56a273744393549726a 100644 (file)
                                        <types:key>report</types:key>
                                        <types:value>full_obj_place</types:value>
                                </types:item>
+                               <types:item merge:matcher="skip" merge:action="insert">
+                                       <types:key>report</types:key>
+                                       <types:value>full_obj_place_creator_role_combined</types:value>
+                               </types:item>
                        </service:properties>
                </tenant:serviceBindings>
        </tenant:tenantBinding>
index bc7a4c1de09296b1c76e19c430f481fb1e4ee2aa..6587a43cf69200c51835e3b278a6d195fb0ebfd2 100644 (file)
@@ -10,7 +10,7 @@
        <style name="Column header" fontName="SansSerif" fontSize="12" isBold="true"/>
        <style name="Detail" fontName="SansSerif" fontSize="12"/>
        <parameter name="deurnfields" class="java.lang.String" isForPrompting="false">
-               <defaultValueExpression><![CDATA["publicartproductiondatetype,publicartproductionperson,publicartproductionpersonrole,responsibledepartment,publishto,installationtype,worktype,material,collections,owner,computedcurrentlocation,placementtype,placetype,placeowner,addressmunicipality,addressstateorprovince,addresscountry,addresstype,addresstype,broaderplace"]]></defaultValueExpression>
+               <defaultValueExpression><![CDATA["publicartproductiondatetype,responsibledepartment,publicartproductionpersons,publicartproductionpersonroles,publishto,installationtype,worktypes,materials,collections,owner,computedcurrentlocation,placementtype,placetype,placeowner,addressmunicipality,addressstateorprovince,addresscountry,addresstype,addresstype,broaderplace"]]></defaultValueExpression>
        </parameter>
        <parameter name="tenantid" class="java.lang.String" isForPrompting="false">
                <defaultValueExpression><![CDATA["5000"]]></defaultValueExpression>
        tg.title,
        dategroup.publicartproductiondatetype,
        proddate.datedisplaydate AS objectproductiondate,
-       creator.publicartproductionperson,
-       creator.publicartproductionpersonrole,
+       coalesce(creator_agg.publicartproductionpersons, '{}') as publicartproductionpersons,
+       coalesce(creator_agg.publicartproductionpersonroles, '{}') as publicartproductionpersonroles,
        rd.item AS responsibledepartment,
        obj.recordstatus,
        publishto.item AS publishto,
        installationtype.item AS installationtype,
        objectCountGroup.objectcount AS numberofobjects,
-       worktype.objectname AS worktype,
-       material.material, -- deurn
+       coalesce(worktype_agg.worktypes, '{}') AS worktypes,
+       coalesce(material_agg.materials, '{}') AS materials,
        bd.item AS briefdescription,
        comment.item AS comment,
        coalesce(publicart_collections.collections, '{}') as collections,
@@ -69,17 +69,42 @@ LEFT JOIN hierarchy proddategroup_hier ON proddategroup_hier.parentid = obj.id A
 LEFT JOIN publicartproductiondategroup dategroup ON dategroup.id = proddategroup_hier.id
 LEFT JOIN hierarchy proddate_hier ON proddate_hier.parentid = proddategroup_hier.id
 LEFT JOIN structureddategroup proddate ON proddate.id = proddate_hier.id
-LEFT JOIN hierarchy creator_hier ON creator_hier.parentid = obj.id AND creator_hier.primarytype = 'publicartProductionPersonGroup' AND creator_hier.pos = 0
-LEFT JOIN publicartproductionpersongroup creator ON creator.id = creator_hier.id
+-- AGGREGATE ALL CREATORS AND ROLES
+LEFT JOIN (
+  SELECT
+    creator_hier.parentid AS obj_id,
+       array_agg(coalesce(creator.publicartproductionperson, '')) AS publicartproductionpersons,
+       array_agg(coalesce(creator.publicartproductionpersonrole, '')) AS publicartproductionpersonroles
+  FROM hierarchy creator_hier
+  LEFT JOIN publicartproductionpersongroup creator ON creator.id = creator_hier.id
+  WHERE creator_hier.primarytype = 'publicartProductionPersonGroup'
+  GROUP BY creator_hier.parentid
+) creator_agg ON creator_agg.obj_id = obj.id
 LEFT JOIN collectionobjects_common_responsibledepartments rd ON rd.id = obj.id AND rd.pos = 0
 LEFT JOIN collectionobjects_common_publishtolist publishto ON publishto.id = obj.id AND publishto.pos = 0
 LEFT JOIN collectionobjects_common_inventorystatuslist installationtype ON installationtype.id = obj.id AND installationtype.pos = 0
 LEFT JOIN collectionobjects_common_briefdescriptions bd ON bd.id = obj.id AND bd.pos = 0
 LEFT JOIN collectionobjects_common_comments comment ON comment.id = obj.id AND comment.pos = 0
-LEFT JOIN hierarchy work_hier on work_hier.parentid = obj.id and work_hier.primarytype = 'objectNameGroup' and work_hier.pos = 0
-LEFT JOIN objectnamegroup worktype on worktype.id = work_hier.id
-LEFT JOIN hierarchy material_hier on material_hier.parentid = obj.id and material_hier.primarytype = 'materialGroup' and material_hier.pos = 0
-LEFT JOIN materialgroup material on material.id = material_hier.id
+-- AGGREGATE ALL WORK TYPES
+LEFT JOIN (
+  SELECT
+    work_hier.parentid AS obj_id,
+    array_agg(coalesce(worktype.objectname, '')) AS worktypes
+  FROM hierarchy work_hier
+  LEFT JOIN objectnamegroup worktype ON worktype.id = work_hier.id
+  WHERE work_hier.primarytype = 'objectNameGroup'
+  GROUP BY work_hier.parentid
+) worktype_agg ON worktype_agg.obj_id = obj.id
+-- AGGREGATE ALL MATERIALS
+LEFT JOIN (
+  SELECT
+    material_hier.parentid AS obj_id,
+    array_agg(coalesce(material.material, '')) AS materials
+  FROM hierarchy material_hier
+  LEFT JOIN materialgroup material ON material.id = material_hier.id
+  WHERE material_hier.primarytype = 'materialGroup'
+  GROUP BY material_hier.parentid
+) material_agg ON material_agg.obj_id = obj.id
 LEFT JOIN (
        SELECT
                id AS obj_id,
@@ -150,14 +175,14 @@ $P!{whereclause}]]>
                <property name="com.jaspersoft.studio.field.label" value="objectproductiondate"/>
                <property name="com.jaspersoft.studio.field.tree.path" value="structureddategroup"/>
        </field>
-       <field name="publicartproductionperson" class="java.lang.String">
-               <property name="com.jaspersoft.studio.field.name" value="publicartproductionperson"/>
-               <property name="com.jaspersoft.studio.field.label" value="publicartproductionperson"/>
+       <field name="publicartproductionpersons" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="publicartproductionpersons"/>
+               <property name="com.jaspersoft.studio.field.label" value="publicartproductionpersons"/>
                <property name="com.jaspersoft.studio.field.tree.path" value="publicartproductionpersongroup"/>
        </field>
-       <field name="publicartproductionpersonrole" class="java.lang.String">
-               <property name="com.jaspersoft.studio.field.name" value="publicartproductionpersonrole"/>
-               <property name="com.jaspersoft.studio.field.label" value="publicartproductionpersonrole"/>
+       <field name="publicartproductionpersonroles" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="publicartproductionpersonroles"/>
+               <property name="com.jaspersoft.studio.field.label" value="publicartproductionpersonroles"/>
                <property name="com.jaspersoft.studio.field.tree.path" value="publicartproductionpersongroup"/>
        </field>
        <field name="responsibledepartment" class="java.lang.String">
@@ -185,14 +210,14 @@ $P!{whereclause}]]>
                <property name="com.jaspersoft.studio.field.label" value="numberofobjects"/>
                <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common"/>
        </field>
-       <field name="worktype" class="java.lang.String">
-               <property name="com.jaspersoft.studio.field.name" value="worktype"/>
-               <property name="com.jaspersoft.studio.field.label" value="worktype"/>
+       <field name="worktypes" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="worktypes"/>
+               <property name="com.jaspersoft.studio.field.label" value="worktypes"/>
                <property name="com.jaspersoft.studio.field.tree.path" value="objectnamegroup"/>
        </field>
-       <field name="material" class="java.lang.String">
-               <property name="com.jaspersoft.studio.field.name" value="material"/>
-               <property name="com.jaspersoft.studio.field.label" value="material"/>
+       <field name="materials" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="materials"/>
+               <property name="com.jaspersoft.studio.field.label" value="materials"/>
                <property name="com.jaspersoft.studio.field.tree.path" value="materialgroup"/>
        </field>
        <field name="briefdescription" class="java.lang.String">
@@ -415,7 +440,7 @@ $P!{whereclause}]]>
                                        <property name="com.jaspersoft.studio.unit.width" value="px"/>
                                </reportElement>
                                <textElement markup="styled"/>
-                               <text><![CDATA[Materal]]></text>
+                               <text><![CDATA[Material]]></text>
                        </staticText>
                        <staticText>
                                <reportElement style="Column header" x="1300" y="0" width="100" height="44" uuid="40c138fe-ed94-4433-b5ad-4dbe3a9ff58a">
@@ -625,13 +650,13 @@ $P!{whereclause}]]>
                                <reportElement style="Detail" x="400" y="0" width="100" height="30" uuid="684b01a8-875b-4405-a580-b9ef32528154">
                                        <property name="com.jaspersoft.studio.unit.y" value="px"/>
                                </reportElement>
-                               <textFieldExpression><![CDATA[$F{publicartproductionperson}]]></textFieldExpression>
+                               <textFieldExpression><![CDATA[$F{publicartproductionpersons}.getArray().join('; ')]]></textFieldExpression>
                        </textField>
                        <textField textAdjust="StretchHeight" isBlankWhenNull="true">
                                <reportElement style="Detail" x="500" y="0" width="100" height="30" uuid="c9a6e1f9-b088-4e28-8d3a-f185609211b5">
                                        <property name="com.jaspersoft.studio.unit.y" value="px"/>
                                </reportElement>
-                               <textFieldExpression><![CDATA[$F{publicartproductionpersonrole}]]></textFieldExpression>
+                               <textFieldExpression><![CDATA[$F{publicartproductionpersonroles}.getArray().join('; ')]]></textFieldExpression>
                        </textField>
                        <textField textAdjust="StretchHeight" isBlankWhenNull="true">
                                <reportElement style="Detail" x="600" y="0" width="100" height="30" uuid="86bdc0bd-65c1-4c30-9716-7d4815131536">
@@ -667,13 +692,13 @@ $P!{whereclause}]]>
                                <reportElement style="Detail" x="1100" y="0" width="100" height="30" uuid="7384199e-4476-46a9-88f0-ddb9a89eb948">
                                        <property name="com.jaspersoft.studio.unit.y" value="px"/>
                                </reportElement>
-                               <textFieldExpression><![CDATA[$F{worktype}]]></textFieldExpression>
+                               <textFieldExpression><![CDATA[$F{worktypes}.getArray().join('; ')]]></textFieldExpression>
                        </textField>
                        <textField textAdjust="StretchHeight" isBlankWhenNull="true">
                                <reportElement style="Detail" x="1200" y="0" width="100" height="30" uuid="7368bb5a-e0a0-492c-8396-56385eaa187a">
                                        <property name="com.jaspersoft.studio.unit.y" value="px"/>
                                </reportElement>
-                               <textFieldExpression><![CDATA[$F{material}]]></textFieldExpression>
+                               <textFieldExpression><![CDATA[$F{materials}.getArray().join('; ')]]></textFieldExpression>
                        </textField>
                        <textField textAdjust="StretchHeight" isBlankWhenNull="true">
                                <reportElement style="Detail" x="1300" y="0" width="100" height="30" uuid="f0be7108-9cbb-483a-ae78-a1a4bd4636bf">
diff --git a/services/report/3rdparty/jasper-cs-report/src/main/resources/full_obj_place_creator_role_combined.jrxml b/services/report/3rdparty/jasper-cs-report/src/main/resources/full_obj_place_creator_role_combined.jrxml
new file mode 100644 (file)
index 0000000..313d043
--- /dev/null
@@ -0,0 +1,855 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created with Jaspersoft Studio version 6.20.1.final using JasperReports Library version 6.20.1-7584acb244139816654f64e2fd57a00d3e31921e  -->
+<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="obj_full_place_creator_role_combined" language="javascript" pageWidth="3900" pageHeight="800" orientation="Landscape" columnWidth="100" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isIgnorePagination="true" uuid="e7341792-0aee-463a-847c-462d12bf8e24">
+       <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
+       <property name="com.jaspersoft.studio.data.defaultdataadapter" value="nuxeo"/>
+       <property name="com.jaspersoft.studio.data.sql.SQLQueryDesigner.sash.w1" value="193"/>
+       <property name="com.jaspersoft.studio.data.sql.SQLQueryDesigner.sash.w2" value="800"/>
+       <property name="com.jaspersoft.studio.property.dataset.dialog.DatasetDialog.sash.w1" value="625"/>
+       <property name="com.jaspersoft.studio.property.dataset.dialog.DatasetDialog.sash.w2" value="361"/>
+       <style name="Column header" fontName="SansSerif" fontSize="12" isBold="true"/>
+       <style name="Detail" fontName="SansSerif" fontSize="12"/>
+       <parameter name="deurnfields" class="java.lang.String" isForPrompting="false">
+               <defaultValueExpression><![CDATA["publicartproductiondatetype,responsibledepartment,publicartproductionpersons,publicartproductionpersonroles,publishto,installationtype,worktypes,materials,collections,owner,computedcurrentlocation,placementtype,placetype,placeowner,addressmunicipality,addressstateorprovince,addresscountry,addresstype,addresstype,broaderplace"]]></defaultValueExpression>
+       </parameter>
+       <parameter name="tenantid" class="java.lang.String" isForPrompting="false">
+               <defaultValueExpression><![CDATA["5000"]]></defaultValueExpression>
+       </parameter>
+       <parameter name="csid" class="java.lang.String" isForPrompting="false"/>
+       <parameter name="whereclause" class="java.lang.String" isForPrompting="false">
+               <defaultValueExpression><![CDATA[$P{csid} != null ? "WHERE hier.name = '" + $P{csid} + "'" : ""]]></defaultValueExpression>
+       </parameter>
+       <queryString language="SQL">
+               <![CDATA[SELECT
+       obj.objectnumber,
+       tg.title,
+       dategroup.publicartproductiondatetype,
+       proddate.datedisplaydate AS objectproductiondate,
+       coalesce(creator_agg.publicartproductionpersons, '{}') as publicartproductionpersons,
+       coalesce(creator_agg.publicartproductionpersonroles, '{}') as publicartproductionpersonroles,
+       rd.item AS responsibledepartment,
+       obj.recordstatus,
+       publishto.item AS publishto,
+       installationtype.item AS installationtype,
+       objectCountGroup.objectcount AS numberofobjects,
+       coalesce(worktype_agg.worktypes, '{}') AS worktypes,
+       coalesce(material_agg.materials, '{}') AS materials,
+       bd.item AS briefdescription,
+       comment.item AS comment,
+       coalesce(publicart_collections.collections, '{}') as collections,
+       owners.item AS owner,
+       dimension.dimension,
+       obj.computedcurrentlocation,
+       movement.currentlocationnote,
+       place.placenote,
+       placement.item AS placementtype,
+       place_pa.placementenvironment,
+       placetype.item AS placetype,
+       placeowner.owner AS placeowner,
+       placeowner.ownershipnote,
+       placeowner.ownertype,
+       placeownerdate.datedisplaydate AS ownershipdate,
+       address.addressplace1,
+       address.addressplace2,
+       address.addressmunicipality,
+       address.addressstateorprovince,
+       address.addresscountry,
+       address.addresstype,
+       address.addresspostcode,
+       geo.decimallatitude,
+       geo.decimallongitude,
+       broaderplace.objectrefname AS broaderplace
+FROM collectionobjects_common obj
+INNER JOIN hierarchy hier on hier.id = obj.id
+INNER JOIN misc ON misc.id = obj.id and misc.lifecyclestate != 'deleted'
+INNER JOIN collectionspace_core core ON misc.id = core.id AND core.tenantid = $P{tenantid}
+LEFT JOIN hierarchy title_hier ON title_hier.parentid = obj.id AND title_hier.primarytype = 'titleGroup' AND title_hier.pos = 0
+LEFT JOIN titlegroup tg ON tg.id = title_hier.id
+LEFT JOIN hierarchy proddategroup_hier ON proddategroup_hier.parentid = obj.id AND proddategroup_hier.primarytype = 'publicartProductionDateGroup' AND proddategroup_hier.pos = 0
+LEFT JOIN publicartproductiondategroup dategroup ON dategroup.id = proddategroup_hier.id
+LEFT JOIN hierarchy proddate_hier ON proddate_hier.parentid = proddategroup_hier.id
+LEFT JOIN structureddategroup proddate ON proddate.id = proddate_hier.id
+-- AGGREGATE ALL CREATORS AND ROLES
+LEFT JOIN (
+  SELECT
+    creator_hier.parentid AS obj_id,
+       array_agg(coalesce(creator.publicartproductionperson, '')) AS publicartproductionpersons,
+       array_agg(coalesce(creator.publicartproductionpersonrole, '')) AS publicartproductionpersonroles
+  FROM hierarchy creator_hier
+  LEFT JOIN publicartproductionpersongroup creator ON creator.id = creator_hier.id
+  WHERE creator_hier.primarytype = 'publicartProductionPersonGroup'
+  GROUP BY creator_hier.parentid
+) creator_agg ON creator_agg.obj_id = obj.id
+LEFT JOIN collectionobjects_common_responsibledepartments rd ON rd.id = obj.id AND rd.pos = 0
+LEFT JOIN collectionobjects_common_publishtolist publishto ON publishto.id = obj.id AND publishto.pos = 0
+LEFT JOIN collectionobjects_common_inventorystatuslist installationtype ON installationtype.id = obj.id AND installationtype.pos = 0
+LEFT JOIN collectionobjects_common_briefdescriptions bd ON bd.id = obj.id AND bd.pos = 0
+LEFT JOIN collectionobjects_common_comments comment ON comment.id = obj.id AND comment.pos = 0
+-- AGGREGATE ALL WORK TYPES
+LEFT JOIN (
+  SELECT
+    work_hier.parentid AS obj_id,
+    array_agg(coalesce(worktype.objectname, '')) AS worktypes
+  FROM hierarchy work_hier
+  LEFT JOIN objectnamegroup worktype ON worktype.id = work_hier.id
+  WHERE work_hier.primarytype = 'objectNameGroup'
+  GROUP BY work_hier.parentid
+) worktype_agg ON worktype_agg.obj_id = obj.id
+-- AGGREGATE ALL MATERIALS
+LEFT JOIN (
+  SELECT
+    material_hier.parentid AS obj_id,
+    array_agg(coalesce(material.material, '')) AS materials
+  FROM hierarchy material_hier
+  LEFT JOIN materialgroup material ON material.id = material_hier.id
+  WHERE material_hier.primarytype = 'materialGroup'
+  GROUP BY material_hier.parentid
+) material_agg ON material_agg.obj_id = obj.id
+LEFT JOIN (
+       SELECT
+               id AS obj_id,
+               array_agg(item) AS collections
+       FROM collectionobjects_publicart_publicartcollections
+       GROUP BY obj_id
+) publicart_collections on publicart_collections.obj_id = obj.id
+LEFT JOIN collectionobjects_common_owners owners ON owners.id = obj.id AND owners.pos = 0
+LEFT JOIN hierarchy count_hier ON obj.id = count_hier.parentid AND count_hier.primarytype='objectCountGroup' AND count_hier.pos=0
+LEFT JOIN objectcountgroup objectCountGroup ON count_hier.id = objectCountGroup.id
+-- aggregate for the dimension
+LEFT JOIN (
+       SELECT
+               measured_hier.parentid,
+               string_agg(concat(dimension.dimension, ' ', dimension.value::text, ' ', dimension.measurementunit), ' | ') AS dimension
+       FROM hierarchy measured_hier
+       INNER JOIN hierarchy dimension_hier on dimension_hier.parentid = measured_hier.id and dimension_hier.primarytype = 'dimensionSubGroup'
+       LEFT JOIN dimensionsubgroup dimension on dimension.id = dimension_hier.id
+       WHERE measured_hier.primarytype = 'measuredPartGroup'
+       GROUP BY measured_hier.parentid
+) dimension on dimension.parentid = obj.id
+-- get the correct movement from relation + computed location
+LEFT JOIN (
+       SELECT
+               relation.objectcsid,
+               movement.currentlocation,
+               movement.currentlocationnote
+       FROM relations_common relation
+       INNER JOIN misc ON misc.id = relation.id AND misc.lifecyclestate != 'deleted'
+       INNER JOIN hierarchy hier ON hier.name = relation.subjectcsid
+       INNER JOIN movements_common movement ON movement.id = hier.id
+       WHERE relation.objectdocumenttype = 'CollectionObject' AND relation.subjectdocumenttype = 'Movement'
+) movement ON movement.objectcsid = hier.name AND movement.currentlocation = obj.computedcurrentlocation
+-- place and all place fields
+LEFT JOIN places_common place on place.refname = obj.computedcurrentlocation
+LEFT JOIN places_publicart_placementtypes placement on placement.id = place.id AND placement.pos = 0
+LEFT JOIN places_publicart place_pa on place_pa.id = place.id
+LEFT JOIN places_publicart_publicartplacetypes placetype on placetype.id = place.id AND placetype.pos = 0
+LEFT JOIN hierarchy placeowner_hier on placeowner_hier.parentid = place.id and placeowner_hier.primarytype = 'publicartPlaceOwnerGroup' and placeowner_hier.pos = 0
+LEFT JOIN hierarchy placeownerdate_hier on placeownerdate_hier.parentid = placeowner_hier.id
+LEFT JOIN publicartplaceownergroup placeowner on placeowner.id = placeowner_hier.id
+LEFT JOIN structureddategroup placeownerdate on placeownerdate.id = placeownerdate_hier.id
+LEFT JOIN hierarchy addr_hier ON addr_hier.parentid = place.id AND addr_hier.primarytype = 'addrGroup' AND addr_hier.pos = 0
+LEFT JOIN addrgroup address ON address.id = addr_hier.id
+LEFT JOIN hierarchy geo_hier ON geo_hier.parentid = place.id AND geo_hier.primarytype = 'placeGeoRefGroup' AND geo_hier.pos = 0
+LEFT JOIN placegeorefgroup geo ON geo.id = geo_hier.id
+LEFT JOIN hierarchy place_hier on place_hier.id = place.id
+LEFT JOIN relations_common broaderplace ON broaderplace.subjectcsid = place_hier.name AND broaderplace.relationshiptype = 'hasBroader'
+$P!{whereclause}]]>
+       </queryString>
+       <field name="objectnumber" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="objectnumber"/>
+               <property name="com.jaspersoft.studio.field.label" value="objectnumber"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common"/>
+       </field>
+       <field name="title" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="title"/>
+               <property name="com.jaspersoft.studio.field.label" value="title"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="titlegroup"/>
+       </field>
+       <field name="publicartproductiondatetype" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="publicartproductiondatetype"/>
+               <property name="com.jaspersoft.studio.field.label" value="publicartproductiondatetype"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="publicartproductiondategroup"/>
+       </field>
+       <field name="objectproductiondate" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="objectproductiondate"/>
+               <property name="com.jaspersoft.studio.field.label" value="objectproductiondate"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="structureddategroup"/>
+       </field>
+       <field name="publicartproductionpersons" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="publicartproductionpersons"/>
+               <property name="com.jaspersoft.studio.field.label" value="publicartproductionpersons"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="publicartproductionpersongroup"/>
+       </field>
+       <field name="publicartproductionpersonroles" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="publicartproductionpersonroles"/>
+               <property name="com.jaspersoft.studio.field.label" value="publicartproductionpersonroles"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="publicartproductionpersongroup"/>
+       </field>
+       <field name="responsibledepartment" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="responsibledepartment"/>
+               <property name="com.jaspersoft.studio.field.label" value="responsibledepartment"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common_responsibledepartments"/>
+       </field>
+       <field name="recordstatus" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="recordstatus"/>
+               <property name="com.jaspersoft.studio.field.label" value="recordstatus"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common"/>
+       </field>
+       <field name="publishto" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="publishto"/>
+               <property name="com.jaspersoft.studio.field.label" value="publishto"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common_publishtolist"/>
+       </field>
+       <field name="installationtype" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="installationtype"/>
+               <property name="com.jaspersoft.studio.field.label" value="installationtype"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common_inventorystatuslist"/>
+       </field>
+       <field name="numberofobjects" class="java.lang.Long">
+               <property name="com.jaspersoft.studio.field.name" value="numberofobjects"/>
+               <property name="com.jaspersoft.studio.field.label" value="numberofobjects"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common"/>
+       </field>
+       <field name="worktypes" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="worktypes"/>
+               <property name="com.jaspersoft.studio.field.label" value="worktypes"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="objectnamegroup"/>
+       </field>
+       <field name="materials" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="materials"/>
+               <property name="com.jaspersoft.studio.field.label" value="materials"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="materialgroup"/>
+       </field>
+       <field name="briefdescription" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="briefdescription"/>
+               <property name="com.jaspersoft.studio.field.label" value="briefdescription"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common_briefdescriptions"/>
+       </field>
+       <field name="comment" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="comment"/>
+               <property name="com.jaspersoft.studio.field.label" value="comment"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common_comments"/>
+       </field>
+       <field name="collections" class="java.sql.Array">
+               <property name="com.jaspersoft.studio.field.name" value="collections"/>
+               <property name="com.jaspersoft.studio.field.label" value="collections"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_publicart_publicartcollections"/>
+       </field>
+       <field name="owner" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="owner"/>
+               <property name="com.jaspersoft.studio.field.label" value="owner"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common_owners"/>
+       </field>
+       <field name="dimension" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="dimension"/>
+               <property name="com.jaspersoft.studio.field.label" value="dimension"/>
+       </field>
+       <field name="computedcurrentlocation" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="computedcurrentlocation"/>
+               <property name="com.jaspersoft.studio.field.label" value="computedcurrentlocation"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="collectionobjects_common"/>
+       </field>
+       <field name="currentlocationnote" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="currentlocationnote"/>
+               <property name="com.jaspersoft.studio.field.label" value="currentlocationnote"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="movements_common"/>
+       </field>
+       <field name="placementtype" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="placementtype"/>
+               <property name="com.jaspersoft.studio.field.label" value="placementtype"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="places_publicart_placementtypes"/>
+       </field>
+       <field name="placementenvironment" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="placementenvironment"/>
+               <property name="com.jaspersoft.studio.field.label" value="placementenvironment"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="places_publicart"/>
+       </field>
+       <field name="placetype" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="placetype"/>
+               <property name="com.jaspersoft.studio.field.label" value="placetype"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="places_publicart_publicartplacetypes"/>
+       </field>
+       <field name="placeowner" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="placeowner"/>
+               <property name="com.jaspersoft.studio.field.label" value="placeowner"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="publicartplaceownergroup"/>
+       </field>
+       <field name="ownershipnote" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="ownershipnote"/>
+               <property name="com.jaspersoft.studio.field.label" value="ownershipnote"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="publicartplaceownergroup"/>
+       </field>
+       <field name="ownertype" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="ownertype"/>
+               <property name="com.jaspersoft.studio.field.label" value="ownertype"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="publicartplaceownergroup"/>
+       </field>
+       <field name="ownershipdate" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="ownershipdate"/>
+               <property name="com.jaspersoft.studio.field.label" value="ownershipdate"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="structureddategroup"/>
+       </field>
+       <field name="addressplace1" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="addressplace1"/>
+               <property name="com.jaspersoft.studio.field.label" value="addressplace1"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="addrgroup"/>
+       </field>
+       <field name="addressplace2" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="addressplace2"/>
+               <property name="com.jaspersoft.studio.field.label" value="addressplace2"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="addrgroup"/>
+       </field>
+       <field name="addressmunicipality" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="addressmunicipality"/>
+               <property name="com.jaspersoft.studio.field.label" value="addressmunicipality"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="addrgroup"/>
+       </field>
+       <field name="addressstateorprovince" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="addressstateorprovince"/>
+               <property name="com.jaspersoft.studio.field.label" value="addressstateorprovince"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="addrgroup"/>
+       </field>
+       <field name="addresscountry" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="addresscountry"/>
+               <property name="com.jaspersoft.studio.field.label" value="addresscountry"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="addrgroup"/>
+       </field>
+       <field name="addresstype" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="addresstype"/>
+               <property name="com.jaspersoft.studio.field.label" value="addresstype"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="addrgroup"/>
+       </field>
+       <field name="addresspostcode" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="addresspostcode"/>
+               <property name="com.jaspersoft.studio.field.label" value="addresspostcode"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="addrgroup"/>
+       </field>
+       <field name="decimallatitude" class="java.lang.Double">
+               <property name="com.jaspersoft.studio.field.name" value="decimallatitude"/>
+               <property name="com.jaspersoft.studio.field.label" value="decimallatitude"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="placegeorefgroup"/>
+       </field>
+       <field name="decimallongitude" class="java.lang.Double">
+               <property name="com.jaspersoft.studio.field.name" value="decimallongitude"/>
+               <property name="com.jaspersoft.studio.field.label" value="decimallongitude"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="placegeorefgroup"/>
+       </field>
+       <field name="broaderplace" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="broaderplace"/>
+               <property name="com.jaspersoft.studio.field.label" value="broaderplace"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="relations_common"/>
+       </field>
+       <field name="placenote" class="java.lang.String">
+               <property name="com.jaspersoft.studio.field.name" value="placenote"/>
+               <property name="com.jaspersoft.studio.field.label" value="placenote"/>
+               <property name="com.jaspersoft.studio.field.tree.path" value="places_common"/>
+       </field>
+       <background>
+               <band splitType="Stretch"/>
+       </background>
+       <columnHeader>
+               <band height="44" splitType="Stretch">
+                       <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.FreeLayout"/>
+                       <property name="com.jaspersoft.studio.unit.height" value="px"/>
+                       <staticText>
+                               <reportElement style="Column header" x="0" y="0" width="100" height="44" uuid="7f5bf8c5-d4d8-47ce-9a87-196159f49d51">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Artwork ID]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="100" y="0" width="100" height="44" uuid="e18fc5d2-ec59-4015-9bd0-4c2cadedc7cc">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Title]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="200" y="0" width="100" height="44" uuid="e42249c3-2d9a-4fdb-b152-083bcd458945">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Production Date]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="300" y="0" width="100" height="44" uuid="47dbec68-a31e-4c52-ad98-0c81a208b125">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Production Date Type]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="400" y="0" width="100" height="44" uuid="b05cdf2f-45a7-414a-8e10-efa6a896d93d">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Creator (Creator Role)]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="600" y="0" width="100" height="44" uuid="88e6a812-ab40-4d73-85fb-7af13d82bec3">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Program Name]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="700" y="0" width="100" height="44" uuid="2a0a2c6d-2ed1-4dd4-b916-17287045deb3">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Record Status]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="800" y="0" width="100" height="44" uuid="b26015fa-a7d4-409c-be8d-3629a5e7d1fa">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Publish To]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="900" y="0" width="100" height="44" uuid="f06f2010-e1d6-40d0-bae9-68e69d204da7">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Instalation Type]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1000" y="0" width="100" height="44" uuid="4a3d8f5c-14c1-47b8-871b-59c7f060cde3">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Number of Objects]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1100" y="0" width="100" height="44" uuid="1f803ff8-45b1-4a34-a69b-7a402c51a1f8">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Work Type]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1200" y="0" width="100" height="44" uuid="680a42d8-8c37-46a4-97ce-ab3032682f9a">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Material]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1300" y="0" width="100" height="44" uuid="3bc81e2e-1cc6-4aea-9aad-cc2ea579e051">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Description]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1400" y="0" width="100" height="44" uuid="37ec46eb-d990-470f-a792-e65950e76882">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Comments]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1500" y="0" width="100" height="44" uuid="8ee89d69-b9f3-4e1e-8c47-1678bb2ae56e">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Collection]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1600" y="0" width="100" height="44" uuid="290145b5-c739-4d89-9e35-52363c4b3539">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Owner]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1700" y="0" width="100" height="44" uuid="885c0873-8f95-41ba-aa93-e5b35674d1c9">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Measurement]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1800" y="0" width="100" height="44" uuid="e19dde7b-424e-4776-871a-16ce1281a95a">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Computed Current Location]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="1900" y="0" width="100" height="44" uuid="d77c8825-0788-4ce1-adeb-893f7058f202">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Location Note]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2000" y="0" width="100" height="44" uuid="4fd19fa9-d5c8-4795-9249-1ef735a8ff12">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Placement Type]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2100" y="0" width="100" height="44" uuid="bd91bea0-2b73-41a1-8e6c-1f98c220f22a">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Placement Environment]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2200" y="0" width="100" height="44" uuid="9a719d3b-d547-4726-8af4-bcac3ad56803">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Type]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2300" y="0" width="100" height="44" uuid="eebb9e8a-e0bf-4b9e-be76-0a773afd16b1">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Owner]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2400" y="0" width="100" height="44" uuid="37b02046-e9ac-4785-8612-d375eb4d0196">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Owner Type]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2500" y="0" width="100" height="44" uuid="be336898-6d37-4b12-8c37-00240645c916">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Owner Date]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2600" y="0" width="100" height="44" uuid="9a98fc55-bec3-4923-bd4d-84aaaf49e785">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Owner Note]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2700" y="0" width="100" height="44" uuid="82de0dfb-ef9c-4626-924a-4cde835b36ac">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Address Line 1]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2800" y="0" width="100" height="44" uuid="f8dd2612-4e96-4b5f-ae20-4c91ae301b87">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Address Line 2]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="2900" y="0" width="100" height="44" uuid="cf8bd67c-2041-4f2f-b4f8-a2c7c10eae91">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Municipality]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="3000" y="0" width="100" height="44" uuid="5db09d4f-5dfc-45a1-b785-0459624c8c29">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place State/Province]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="3100" y="0" width="100" height="44" uuid="e07cf8ff-7a8f-4966-9791-cbd42167d9c5">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Country]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="3200" y="0" width="100" height="44" uuid="2f8f8a9a-39d1-4b3d-b05b-e8177de4aabc">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Address Type]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="3300" y="0" width="100" height="44" uuid="f4265ca1-12b4-4bd0-986f-2aba295759ad">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Postal Code]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="3400" y="0" width="100" height="44" uuid="aa8f6fe9-6387-4a9e-bbb0-21997c5ff177">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Decimal Latitude]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="3500" y="0" width="100" height="44" uuid="bdd72a82-b756-44d0-9d3b-8404a422f239">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Decimal Longitude]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="3600" y="0" width="100" height="44" uuid="d25ecba9-3cf3-4215-9bf2-87d94e244cfc">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Hierarchy Broader Place]]></text>
+                       </staticText>
+                       <staticText>
+                               <reportElement style="Column header" x="3700" y="0" width="100" height="44" uuid="d00d1738-8a2a-48d1-bb75-237eaeecef8a">
+                                       <property name="com.jaspersoft.studio.unit.width" value="px"/>
+                               </reportElement>
+                               <textElement markup="styled"/>
+                               <text><![CDATA[Place Note]]></text>
+                       </staticText>
+               </band>
+       </columnHeader>
+       <detail>
+               <band height="66" splitType="Stretch">
+                       <property name="com.jaspersoft.studio.unit.height" value="px"/>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="0" y="0" width="100" height="30" uuid="329d7cca-0e59-4b4b-a9db-a00983705651">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{objectnumber}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="100" y="0" width="100" height="30" uuid="e72bd744-d4e6-42c4-88c9-8692c39ae730">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{title}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="200" y="0" width="100" height="30" uuid="0f5d4d5e-a6a8-47a0-99bf-291f59c503ca">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{objectproductiondate}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="300" y="0" width="100" height="30" uuid="acf887f8-6fdf-45b1-a8ea-041ea46efa4c">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{publicartproductiondatetype}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="400" y="0" width="100" height="30" uuid="fd47819e-2277-4105-be4d-e5e9531cd0f1">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression>
+                                       <![CDATA[
+                                       var persons = $F{publicartproductionpersons}.getArray();
+                                       var roles = $F{publicartproductionpersonroles}.getArray();
+
+                                       persons.map(function(person, index) {
+                                               if (!person) {
+                                                       return null;
+                                               }
+                                               var role = roles[index];
+                                               return person + ' (' + role + ')';
+                                       }).filter((value) => !!value).join('; ')
+                                       ]]>
+                               </textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="600" y="0" width="100" height="30" uuid="d71a9e95-c14e-43af-9188-3b270d982adf">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{responsibledepartment}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="700" y="0" width="100" height="30" uuid="99b99fe8-9554-475c-aed3-a43a374f8932">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{recordstatus}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="800" y="0" width="100" height="30" uuid="3fe28021-38a6-4f05-89e9-543efff1a05d">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{publishto}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="900" y="0" width="100" height="30" uuid="42adcc58-f026-49ce-8055-ee5567f40cea">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{installationtype}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1000" y="0" width="100" height="30" uuid="6c173670-a1db-43fa-9bae-138637abf17c">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{numberofobjects}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1100" y="0" width="100" height="30" uuid="f5ed52e8-dee0-4376-bf6c-74ccb891b706">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{worktypes}.getArray().join('; ')]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1200" y="0" width="100" height="30" uuid="647d56b4-1d6c-4284-930b-e6a561a0fee2">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{materials}.getArray().join('; ')]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1300" y="0" width="100" height="30" uuid="37195d8b-62ca-49a7-85d9-8cc77632657f">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{briefdescription}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1400" y="0" width="100" height="30" uuid="427561d6-0e53-4640-b293-1033427cadb2">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{comment}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1500" y="0" width="100" height="30" uuid="118cecdc-6f8e-4be9-b84a-51095772c449">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{collections}.getArray().join('; ')]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1600" y="0" width="100" height="30" uuid="547fe798-a381-4299-bc51-9ab9a003ec93">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{owner}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1700" y="0" width="100" height="30" uuid="ec3253d7-c5dc-42d3-9298-73817aea8471">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{dimension}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1800" y="0" width="100" height="30" uuid="54975571-1a08-4cc2-b2e5-45404db7881a">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{computedcurrentlocation}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="1900" y="0" width="100" height="30" uuid="69adde0e-8c36-4298-a462-fe0236bdef81">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{currentlocationnote}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2000" y="0" width="100" height="30" uuid="e703c8f3-255d-4e9b-86c2-6c3ff4a5d57c">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{placementtype}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2100" y="0" width="100" height="30" uuid="bf82c6ce-f8fa-4d71-975d-5aac2739aa36">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{placementenvironment}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2200" y="0" width="100" height="30" uuid="d8b3cb62-ef05-4108-a4d1-91eb6b40daf4">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{placetype}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2300" y="0" width="100" height="30" uuid="0d2aedb2-b30d-46e2-8127-a28616a502c2">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{placeowner}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2400" y="0" width="100" height="30" uuid="555820d4-8200-487a-93c1-55183eac8ce7">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{ownershipnote}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2500" y="0" width="100" height="30" uuid="d1325b38-832f-41ec-97e7-8ba0785fd3ca">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{ownertype}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2600" y="0" width="100" height="30" uuid="a09f4407-8e56-486d-afbd-28103d9d11ee">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{ownershipdate}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2700" y="0" width="100" height="30" uuid="01830e1d-cee3-41fc-b52d-37e03692e5e4">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{addressplace1}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2800" y="0" width="100" height="30" uuid="61fd47ab-c389-4783-bcd5-58950d292f49">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{addressplace2}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="2900" y="0" width="100" height="30" uuid="761ae437-27a9-47de-8a86-6d5f49c2b335">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{addressmunicipality}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="3000" y="0" width="100" height="30" uuid="34700833-f428-42ea-9d7e-d85c623e37b2">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{addressstateorprovince}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="3100" y="0" width="100" height="30" uuid="6f4c695b-869e-4e42-bf7c-099798dcc12a">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{addresscountry}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="3200" y="0" width="100" height="30" uuid="b230f942-d14d-4cc8-8ee6-d546cfea4616">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{addresstype}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="3300" y="0" width="100" height="30" uuid="d148c0a6-94d0-4509-b2d1-915085cb8a10">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{addresspostcode}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="3400" y="0" width="100" height="30" uuid="30a948ed-116f-4eda-bb3f-5ab5f4c2390a">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{decimallatitude}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="3500" y="0" width="100" height="30" uuid="90b39e6b-2249-4a2f-95dc-14dc87e0a3b3">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{decimallongitude}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="3600" y="0" width="100" height="30" uuid="a3c03608-c101-4a0a-bfee-26acfe5c62e6">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{broaderplace}]]></textFieldExpression>
+                       </textField>
+                       <textField textAdjust="StretchHeight" isBlankWhenNull="true">
+                               <reportElement style="Detail" x="3700" y="0" width="100" height="30" uuid="5de64dd8-7f25-4dda-8034-800edc19ff9c">
+                                       <property name="com.jaspersoft.studio.unit.y" value="px"/>
+                               </reportElement>
+                               <textFieldExpression><![CDATA[$F{placenote}]]></textFieldExpression>
+                       </textField>
+               </band>
+       </detail>
+</jasperReport>
diff --git a/services/report/3rdparty/jasper-cs-report/src/main/resources/full_obj_place_creator_role_combined.xml b/services/report/3rdparty/jasper-cs-report/src/main/resources/full_obj_place_creator_role_combined.xml
new file mode 100644 (file)
index 0000000..f45a558
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<document name="report">
+  <ns2:reports_common xmlns:ns2="http://collectionspace.org/services/report">
+    <name>Full Object with Place Details: Creator Name and Role Combined</name>
+    <notes>This object report exclusive to the Public Art profile includes descriptive object record fields combined with current place details. The creator's name and role are combined in a single column.</notes>
+    <forDocTypes>
+      <forDocType>CollectionObject</forDocType>
+    </forDocTypes>
+    <supportsSingleDoc>true</supportsSingleDoc>
+    <supportsDocList>false</supportsDocList>
+    <supportsGroup>false</supportsGroup>
+    <supportsNoContext>true</supportsNoContext>
+    <filename>full_obj_place_creator_role_combined.jrxml</filename>
+    <outputMIME>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</outputMIME>
+  </ns2:reports_common>
+</document>