From fe6810d21a7c7dc57e78947b8d18444e6a826322 Mon Sep 17 00:00:00 2001 From: Patrick Schmitz Date: Wed, 16 Jan 2013 17:20:04 -0800 Subject: [PATCH] CSPACE-5305 Fixed bug that was not passing invocationContext params into the report engine. Modified sample report to show how to pass in a param that is used in a query. Added a note with a sample invocationContext payload that specifies a param. --- .../main/resources/Notes On Invocation.txt | 18 +++++ .../src/main/resources/acq_basic.jasper | Bin 49884 -> 52595 bytes .../src/main/resources/acq_basic.jrxml | 70 ++++++++++-------- .../nuxeo/ReportDocumentModelHandler.java | 24 ++++++ 4 files changed, 81 insertions(+), 31 deletions(-) create mode 100644 services/report/3rdparty/jasper-cs-report/src/main/resources/Notes On Invocation.txt diff --git a/services/report/3rdparty/jasper-cs-report/src/main/resources/Notes On Invocation.txt b/services/report/3rdparty/jasper-cs-report/src/main/resources/Notes On Invocation.txt new file mode 100644 index 000000000..619950952 --- /dev/null +++ b/services/report/3rdparty/jasper-cs-report/src/main/resources/Notes On Invocation.txt @@ -0,0 +1,18 @@ +As an example of invoking the acq_basic report from, e.g., poster, here is a payload that shows how to use parameters. The report has a parameter called "queryYear" that when invoked in the no-context mode, will restrict the acquisitions to that year. See the actual report for how the query is built. + +The invocation payload is: + + + + nocontext + Acquisition + + + queryYear + 2000 + + + + +Note that this can be used for a report with any output type - it only impacts the invocation properties. diff --git a/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jasper b/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jasper index ba00ecee60e56e8703c74c6548ef272a162b7bbd..f73c73c5116b2e70bd7a212e1762101908d9975b 100644 GIT binary patch literal 52595 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 Kf{R8K^8WzX_g2>c literal 49884 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 diff --git a/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jrxml b/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jrxml index fd1ec8de6..e6e705583 100644 --- a/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jrxml +++ b/services/report/3rdparty/jasper-cs-report/src/main/resources/acq_basic.jrxml @@ -16,21 +16,29 @@ - - + + + + 0)? + (" AND hierarchy.name = '"+$P{csid}+"'") + :(($P{queryYear}==null || $P{queryYear}.length()==0)?" AND 1=1" + :" AND acquisitions_common.acquisitionauthorizerdate >= '"+$P{queryYear} + +"-1-1' AND acquisitions_common.acquisitionauthorizerdate <= '" + +$P{queryYear}+"-12-31'"))]]> + - - - - - - - + + + + + + + <band height="102" splitType="Stretch"> <frame> - <reportElement mode="Opaque" x="0" y="0" width="797" height="76" backcolor="#FFFFFF"/> + <reportElement mode="Opaque" x="0" y="0" width="797" height="90" backcolor="#FFFFFF"/> <staticText> <reportElement style="SubTitle" x="458" y="0" width="339" height="29"/> <textElement textAlignment="Right"> @@ -61,7 +69,7 @@ $P!{where_clause}]]> </staticText> <image> <reportElement x="0" y="0" width="349" height="67"/> - <imageExpression class="java.lang.String"><![CDATA["http://www.collectionspace.org/sites/all/themes/CStheme/images/CSpaceLogo.png"]]></imageExpression> + <imageExpression><![CDATA["http://www.collectionspace.org/sites/all/themes/CStheme/images/CSpaceLogo.png"]]></imageExpression> </image> </frame> <frame> @@ -127,46 +135,46 @@ $P!{where_clause}]]> <textElement textAlignment="Center"> <font fontName="DejaVu Serif" size="13"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$F{acquisitions_common_originalobjectpurchasepricevalue}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{ac_originalobjectpurchasepricevalue}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" positionType="Float" x="2" y="0" width="139" height="18"/> <textElement> <font fontName="DejaVu Serif" size="12"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$F{acquisitions_common_acquisitionreferencenumber}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{ac_acquisitionreferencenumber}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" positionType="Float" x="228" y="0" width="144" height="18"/> <textElement textAlignment="Center"> <font fontName="DejaVu Serif" size="13"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$F{acquisitions_common_acquisitionauthorizerdate}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{ac_acqauth_date}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" positionType="Float" x="372" y="0" width="155" height="18"/> <textElement textAlignment="Center"> <font fontName="DejaVu Serif" size="13"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[($F{acquisitions_common_acquisitionauthorizer}==null || - $F{acquisitions_common_acquisitionauthorizer}.isEmpty())? - "":$F{acquisitions_common_acquisitionauthorizer}.substring( - $F{acquisitions_common_acquisitionauthorizer}.lastIndexOf( ")" )+2, - $F{acquisitions_common_acquisitionauthorizer}.length()-1).replaceAll("[+]"," ")]]></textFieldExpression> + <textFieldExpression><![CDATA[($F{ac_acquisitionauthorizer}==null || + $F{ac_acquisitionauthorizer}.isEmpty())? + "":$F{ac_acquisitionauthorizer}.substring( + $F{ac_acquisitionauthorizer}.lastIndexOf( ")" )+2, + $F{ac_acquisitionauthorizer}.length()-1).replaceAll("[+]"," ")]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" positionType="Float" x="527" y="0" width="150" height="18"/> <textElement textAlignment="Center"> <font fontName="DejaVu Serif" size="13"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$F{acquisitions_common_acquisitionreason}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{ac_acquisitionreason}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" positionType="Float" x="677" y="0" width="120" height="18"/> <textElement textAlignment="Center"> <font fontName="DejaVu Serif" size="13"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[$F{acquisitions_common_acquisitionmethod}]]></textFieldExpression> + <textFieldExpression><![CDATA[$F{ac_acquisitionmethod}]]></textFieldExpression> </textField> </frame> </band> @@ -190,21 +198,21 @@ $P!{where_clause}]]> <textElement verticalAlignment="Middle"> <font fontName="DejaVu Serif" size="10" isBold="false"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> + <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> </textField> <textField> <reportElement style="Column header" x="677" y="3" width="80" height="20" forecolor="#FFFFFF"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font fontName="DejaVu Serif" size="10" isBold="false"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression> + <textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression> </textField> <textField pattern="EEEEE dd MMMMM yyyy"> <reportElement style="Column header" x="2" y="3" width="197" height="20" forecolor="#FFFFFF"/> <textElement verticalAlignment="Middle"> <font fontName="DejaVu Serif" size="10" isBold="false"/> </textElement> - <textFieldExpression class="java.lang.String"><![CDATA[new java.util.Date()]]></textFieldExpression> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> </textField> </frame> </band> diff --git a/services/report/service/src/main/java/org/collectionspace/services/report/nuxeo/ReportDocumentModelHandler.java b/services/report/service/src/main/java/org/collectionspace/services/report/nuxeo/ReportDocumentModelHandler.java index d809de4b7..426014e46 100644 --- a/services/report/service/src/main/java/org/collectionspace/services/report/nuxeo/ReportDocumentModelHandler.java +++ b/services/report/service/src/main/java/org/collectionspace/services/report/nuxeo/ReportDocumentModelHandler.java @@ -31,6 +31,8 @@ import java.sql.Connection; import java.sql.SQLException; import java.util.HashMap; import java.util.List; +import java.util.Map; + import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response.ResponseBuilder; @@ -105,6 +107,10 @@ public class ReportDocumentModelHandler extends DocHandlerBase<ReportsCommon> { HashMap<String, Object> params = new HashMap<String, Object>(); params.put(REPORTS_STD_TENANTID_PARAM, ctx.getTenantId()); boolean checkDocType = true; + + // Note we set before we put in the default ones, so they cannot override tenant or CSID. + setParamsFromContext(params, invContext); + if(Invocable.INVOCATION_MODE_SINGLE.equalsIgnoreCase(invocationMode)) { modeProperty = InvocableJAXBSchema.SUPPORTS_SINGLE_DOC; params.put(REPORTS_STD_CSID_PARAM, invContext.getSingleCSID()); @@ -196,6 +202,24 @@ public class ReportDocumentModelHandler extends DocHandlerBase<ReportsCommon> { } return buildReportResponse(csid, params, reportFileName, outputMimeType); } + + private void setParamsFromContext(Map<String, Object> params, InvocationContext invContext) { + InvocationContext.Params icParams = invContext.getParams(); + if(icParams!= null) { + List<InvocationContext.Params.Param> icParamList = icParams.getParam(); + if(icParamList != null) { + for(InvocationContext.Params.Param param:icParamList) { + String key = param.getKey(); + String value = param.getValue(); + if(!Tools.isEmpty(key) && !Tools.isEmpty(value)) { + params.put(key, value); + } + } + } + } + + } + private Response buildReportResponse(String reportCSID, -- 2.47.3