Mercurial > dive4elements > river
changeset 9554:33ce8eba9806
waterlevel export W/am Pegel / "Bezeichnung" fixes
author | gernotbelger |
---|---|
date | Mon, 22 Oct 2018 18:26:05 +0200 |
parents | c3ed5dcd5e08 |
children | ef5754ba5573 |
files | artifacts/doc/conf/jasper/templates/waterlevel.jrxml artifacts/doc/conf/jasper/templates/waterlevel_new.jrxml artifacts/src/main/java/org/dive4elements/river/artifacts/model/Calculation4.java artifacts/src/main/java/org/dive4elements/river/exports/FixWaterlevelExporter.java artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelExporter.java |
diffstat | 5 files changed, 359 insertions(+), 326 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts/doc/conf/jasper/templates/waterlevel.jrxml Mon Oct 22 18:26:05 2018 +0200 @@ -0,0 +1,272 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 4.5.0 --> +<!-- 2018-10-22T18:12:48 --> +<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="flysreport" language="groovy" pageWidth="595" pageHeight="842" columnWidth="545" leftMargin="30" rightMargin="20" topMargin="20" bottomMargin="20"> + <property name="ireport.zoom" value="1.0"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="0"/> + <style name="htmlStyle" isDefault="true" mode="Transparent" markup="html" fontName="Roboto"> + <paragraph lineSpacing="Single"/> + </style> + <field name="meta:header" class="java.lang.String"/> + <field name="meta:calcMode" class="java.lang.String"/> + <field name="meta:version_label" class="java.lang.String"/> + <field name="meta:version" class="java.lang.String"/> + <field name="meta:user_label" class="java.lang.String"/> + <field name="meta:user" class="java.lang.String"/> + <field name="meta:date_label" class="java.lang.String"/> + <field name="meta:date" class="java.lang.String"/> + <field name="meta:river_label" class="java.lang.String"/> + <field name="meta:river" class="java.lang.String"/> + <field name="meta:range_label" class="java.lang.String"/> + <field name="meta:range" class="java.lang.String"/> + <field name="meta:calculation_label" class="java.lang.String"/> + <field name="meta:calculation_name" class="java.lang.String"/> + <field name="meta:station_header" class="java.lang.String"/> + <field name="meta:flowdepthdevelopment_header" class="java.lang.String"/> + <field name="meta:flowdepthdevelopmentperyear_header" class="java.lang.String"/> + <field name="meta:waterleveldifference_header" class="java.lang.String"/> + <field name="meta:waterleveldifference_header2" class="java.lang.String"/> + <field name="meta:waterleveldifference_header_label" class="java.lang.String"/> + <field name="meta:bedheightdifference_header" class="java.lang.String"/> + <field name="meta:bedheightdifference_header2" class="java.lang.String"/> + <field name="meta:bedheightdifference_header_label" class="java.lang.String"/> + <field name="meta:flowdepthcurrent_header" class="java.lang.String"/> + <field name="meta:flowdepthcurrent_header2" class="java.lang.String"/> + <field name="meta:flowdepthhistorical_header" class="java.lang.String"/> + <field name="meta:flowdepthhistorical_header2" class="java.lang.String"/> + <field name="meta:flowdepthcurrent_header_label" class="java.lang.String"/> + <field name="meta:flowdepthhistorical_header_label" class="java.lang.String"/> + <field name="meta:flowdepth_header" class="java.lang.String"/> + <field name="meta:flowdepthdevelopment" class="java.lang.String"/> + <field name="meta:flowdepthmin_header" class="java.lang.String"/> + <field name="meta:flowdepthmax_header" class="java.lang.String"/> + <field name="meta:flowdepthdevelopment_header_label" class="java.lang.String"/> + <field name="meta:flowdepth_tkh_header" class="java.lang.String"/> + <field name="meta:w_at_gauge_header" class="java.lang.String"/> + <field name="meta:w_at_gauge_header_2" class="java.lang.String"/> + <field name="meta:tkh_header" class="java.lang.String"/> + <field name="meta:tkhkind_header" class="java.lang.String"/> + <field name="meta:waterlevel_header" class="java.lang.String"/> + <field name="meta:discharge_header" class="java.lang.String"/> + <field name="meta:waterlevel_name_header" class="java.lang.String"/> + <field name="meta:gauge_header" class="java.lang.String"/> + <field name="meta:bedheight_header" class="java.lang.String"/> + <field name="meta:sounding_name_header" class="java.lang.String"/> + <field name="meta:location_header" class="java.lang.String"/> + <field name="meta:fix_date" class="java.lang.String"/> + <field name="meta:fix_q" class="java.lang.String"/> + <field name="meta:fix_w" class="java.lang.String"/> + <field name="meta:fix_state" class="java.lang.String"/> + <field name="meta:fix_delta_w" class="java.lang.String"/> + <field name="data:0" class="java.lang.String"/> + <field name="data:1" class="java.lang.String"/> + <field name="data:2" class="java.lang.String"/> + <field name="data:3" class="java.lang.String"/> + <field name="data:4" class="java.lang.String"/> + <field name="data:5" class="java.lang.String"/> + <field name="data:6" class="java.lang.String"/> + <background> + <band splitType="Stretch"/> + </background> + <title> + <band height="169" splitType="Stretch"> + <textField> + <reportElement style="htmlStyle" x="0" y="0" width="515" height="30"/> + <textElement> + <font size="18"/> + </textElement> + <textFieldExpression><![CDATA[$F{meta:header} + " " + $F{meta:river}]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="0" y="39" width="165" height="20"/> + <textFieldExpression><![CDATA[$F{meta:calcMode}]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="0" y="69" width="123" height="20"/> + <textFieldExpression><![CDATA[$F{meta:version_label} + ":"]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="123" y="69" width="392" height="20"/> + <textFieldExpression><![CDATA[$F{meta:version}]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="0" y="89" width="123" height="20"/> + <textFieldExpression><![CDATA[$F{meta:user_label} + ":"]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="123" y="89" width="392" height="20"/> + <textFieldExpression><![CDATA[$F{meta:user}]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="0" y="109" width="123" height="20"/> + <textFieldExpression><![CDATA[$F{meta:date_label} + ":"]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="123" y="109" width="392" height="20"/> + <textFieldExpression><![CDATA[$F{meta:date}]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="0" y="129" width="123" height="20"/> + <textFieldExpression><![CDATA[$F{meta:river_label} + ":"]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="123" y="129" width="392" height="20"/> + <textFieldExpression><![CDATA[$F{meta:river}]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="0" y="149" width="123" height="20"/> + <textFieldExpression><![CDATA[$F{meta:range_label} + ":"]]></textFieldExpression> + </textField> + <textField> + <reportElement style="htmlStyle" x="123" y="149" width="392" height="20"/> + <textFieldExpression><![CDATA[$F{meta:range}]]></textFieldExpression> + </textField> + </band> + </title> + <columnHeader> + <band height="25" splitType="Stretch"> + <line> + <reportElement style="htmlStyle" positionType="FixRelativeToBottom" x="0" y="24" width="550" height="1"/> + </line> + <textField isStretchWithOverflow="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="0" y="0" width="60" height="24"/> + <box padding="5"/> + <textElement textAlignment="Right" verticalAlignment="Bottom"/> + <textFieldExpression><![CDATA[$F{meta:station_header}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="60" y="0" width="77" height="24"/> + <box padding="5"/> + <textElement textAlignment="Right" verticalAlignment="Bottom"/> + <textFieldExpression><![CDATA[$F{meta:fix_w}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement key="delete" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="137" y="-1" width="0" height="24"/> + <box padding="5"/> + <textElement textAlignment="Right" verticalAlignment="Bottom"/> + <textFieldExpression><![CDATA[$F{meta:w_at_gauge_header}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="137" y="0" width="70" height="24"/> + <box padding="5"/> + <textElement textAlignment="Right" verticalAlignment="Bottom"/> + <textFieldExpression><![CDATA[$F{meta:fix_q}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="207" y="0" width="83" height="24"/> + <box padding="5"/> + <textElement textAlignment="Right" verticalAlignment="Bottom"/> + <textFieldExpression><![CDATA[$F{meta:w_at_gauge_header_2}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement key="" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="290" y="0" width="120" height="24"/> + <box padding="5"/> + <textElement textAlignment="Left" verticalAlignment="Bottom"/> + <textFieldExpression><![CDATA[$F{meta:location_header}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="410" y="0" width="140" height="24"/> + <box padding="5"/> + <textElement textAlignment="Left" verticalAlignment="Bottom"/> + <textFieldExpression><![CDATA[$F{meta:gauge_header}]]></textFieldExpression> + </textField> + </band> + </columnHeader> + <detail> + <band height="15" splitType="Prevent"> + <textField isStretchWithOverflow="true" isBlankWhenNull="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="0" y="0" width="60" height="15"/> + <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> + <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Top"/> + <textFieldExpression><![CDATA[$F{data:0}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true" isBlankWhenNull="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="60" y="0" width="77" height="15"/> + <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> + <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Top"/> + <textFieldExpression><![CDATA[$F{data:1}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true" isBlankWhenNull="true"> + <reportElement key="delete" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="137" y="-1" width="0" height="15"/> + <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> + <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Top"/> + <textFieldExpression><![CDATA[$F{data:2}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true" isBlankWhenNull="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="137" y="0" width="70" height="15"/> + <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> + <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Top"/> + <textFieldExpression><![CDATA[$F{data:3}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true" isBlankWhenNull="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="207" y="0" width="83" height="15"/> + <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> + <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + </box> + <textElement textAlignment="Right" verticalAlignment="Top"/> + <textFieldExpression><![CDATA[$F{data:4}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true" isBlankWhenNull="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="290" y="0" width="120" height="15"/> + <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> + <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + </box> + <textElement textAlignment="Left" verticalAlignment="Top"/> + <textFieldExpression><![CDATA[$F{data:5}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true" isBlankWhenNull="true"> + <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="410" y="0" width="140" height="15"/> + <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> + <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> + </box> + <textElement textAlignment="Left" verticalAlignment="Top"/> + <textFieldExpression><![CDATA[$F{data:6}]]></textFieldExpression> + </textField> + </band> + </detail> + <pageFooter> + <band height="15" splitType="Stretch"> + <textField isStretchWithOverflow="true"> + <reportElement style="htmlStyle" x="437" y="0" width="55" height="15"/> + <box topPadding="2" rightPadding="3"/> + <textElement textAlignment="Right"/> + <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true" evaluationTime="Report"> + <reportElement style="htmlStyle" x="493" y="0" width="57" height="15"/> + <box topPadding="2" leftPadding="0" bottomPadding="0" rightPadding="0"/> + <textFieldExpression><![CDATA["/ " + $V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + </band> + </pageFooter> +</jasperReport>
--- a/artifacts/doc/conf/jasper/templates/waterlevel_new.jrxml Mon Oct 22 16:33:10 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,272 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 4.5.0 --> -<!-- 2018-09-17T18:59:50 --> -<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="flysreport" language="groovy" pageWidth="595" pageHeight="842" columnWidth="545" leftMargin="30" rightMargin="20" topMargin="20" bottomMargin="20"> - <property name="ireport.zoom" value="1.0"/> - <property name="ireport.x" value="0"/> - <property name="ireport.y" value="0"/> - <style name="htmlStyle" isDefault="true" mode="Transparent" markup="html" fontName="Roboto"> - <paragraph lineSpacing="Single"/> - </style> - <field name="meta:header" class="java.lang.String"/> - <field name="meta:calcMode" class="java.lang.String"/> - <field name="meta:version_label" class="java.lang.String"/> - <field name="meta:version" class="java.lang.String"/> - <field name="meta:user_label" class="java.lang.String"/> - <field name="meta:user" class="java.lang.String"/> - <field name="meta:date_label" class="java.lang.String"/> - <field name="meta:date" class="java.lang.String"/> - <field name="meta:river_label" class="java.lang.String"/> - <field name="meta:river" class="java.lang.String"/> - <field name="meta:range_label" class="java.lang.String"/> - <field name="meta:range" class="java.lang.String"/> - <field name="meta:calculation_label" class="java.lang.String"/> - <field name="meta:calculation_name" class="java.lang.String"/> - <field name="meta:station_header" class="java.lang.String"/> - <field name="meta:flowdepthdevelopment_header" class="java.lang.String"/> - <field name="meta:flowdepthdevelopmentperyear_header" class="java.lang.String"/> - <field name="meta:waterleveldifference_header" class="java.lang.String"/> - <field name="meta:waterleveldifference_header2" class="java.lang.String"/> - <field name="meta:waterleveldifference_header_label" class="java.lang.String"/> - <field name="meta:bedheightdifference_header" class="java.lang.String"/> - <field name="meta:bedheightdifference_header2" class="java.lang.String"/> - <field name="meta:bedheightdifference_header_label" class="java.lang.String"/> - <field name="meta:flowdepthcurrent_header" class="java.lang.String"/> - <field name="meta:flowdepthcurrent_header2" class="java.lang.String"/> - <field name="meta:flowdepthhistorical_header" class="java.lang.String"/> - <field name="meta:flowdepthhistorical_header2" class="java.lang.String"/> - <field name="meta:flowdepthcurrent_header_label" class="java.lang.String"/> - <field name="meta:flowdepthhistorical_header_label" class="java.lang.String"/> - <field name="meta:flowdepth_header" class="java.lang.String"/> - <field name="meta:flowdepthdevelopment" class="java.lang.String"/> - <field name="meta:flowdepthmin_header" class="java.lang.String"/> - <field name="meta:flowdepthmax_header" class="java.lang.String"/> - <field name="meta:flowdepthdevelopment_header_label" class="java.lang.String"/> - <field name="meta:flowdepth_tkh_header" class="java.lang.String"/> - <field name="meta:w_at_gauge_header" class="java.lang.String"/> - <field name="meta:w_at_gauge_header_2" class="java.lang.String"/> - <field name="meta:tkh_header" class="java.lang.String"/> - <field name="meta:tkhkind_header" class="java.lang.String"/> - <field name="meta:waterlevel_header" class="java.lang.String"/> - <field name="meta:discharge_header" class="java.lang.String"/> - <field name="meta:waterlevel_name_header" class="java.lang.String"/> - <field name="meta:gauge_header" class="java.lang.String"/> - <field name="meta:bedheight_header" class="java.lang.String"/> - <field name="meta:sounding_name_header" class="java.lang.String"/> - <field name="meta:location_header" class="java.lang.String"/> - <field name="meta:fix_date" class="java.lang.String"/> - <field name="meta:fix_q" class="java.lang.String"/> - <field name="meta:fix_w" class="java.lang.String"/> - <field name="meta:fix_state" class="java.lang.String"/> - <field name="meta:fix_delta_w" class="java.lang.String"/> - <field name="data:0" class="java.lang.String"/> - <field name="data:1" class="java.lang.String"/> - <field name="data:2" class="java.lang.String"/> - <field name="data:3" class="java.lang.String"/> - <field name="data:4" class="java.lang.String"/> - <field name="data:5" class="java.lang.String"/> - <field name="data:6" class="java.lang.String"/> - <background> - <band splitType="Stretch"/> - </background> - <title> - <band height="169" splitType="Stretch"> - <textField> - <reportElement style="htmlStyle" x="0" y="0" width="515" height="30"/> - <textElement> - <font size="18"/> - </textElement> - <textFieldExpression><![CDATA[$F{meta:header} + " " + $F{meta:river}]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="0" y="39" width="165" height="20"/> - <textFieldExpression><![CDATA[$F{meta:calcMode}]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="0" y="69" width="123" height="20"/> - <textFieldExpression><![CDATA[$F{meta:version_label} + ":"]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="123" y="69" width="392" height="20"/> - <textFieldExpression><![CDATA[$F{meta:version}]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="0" y="89" width="123" height="20"/> - <textFieldExpression><![CDATA[$F{meta:user_label} + ":"]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="123" y="89" width="392" height="20"/> - <textFieldExpression><![CDATA[$F{meta:user}]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="0" y="109" width="123" height="20"/> - <textFieldExpression><![CDATA[$F{meta:date_label} + ":"]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="123" y="109" width="392" height="20"/> - <textFieldExpression><![CDATA[$F{meta:date}]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="0" y="129" width="123" height="20"/> - <textFieldExpression><![CDATA[$F{meta:river_label} + ":"]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="123" y="129" width="392" height="20"/> - <textFieldExpression><![CDATA[$F{meta:river}]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="0" y="149" width="123" height="20"/> - <textFieldExpression><![CDATA[$F{meta:range_label} + ":"]]></textFieldExpression> - </textField> - <textField> - <reportElement style="htmlStyle" x="123" y="149" width="392" height="20"/> - <textFieldExpression><![CDATA[$F{meta:range}]]></textFieldExpression> - </textField> - </band> - </title> - <columnHeader> - <band height="25" splitType="Stretch"> - <line> - <reportElement style="htmlStyle" positionType="FixRelativeToBottom" x="0" y="24" width="550" height="1"/> - </line> - <textField isStretchWithOverflow="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="0" y="0" width="60" height="24"/> - <box padding="5"/> - <textElement textAlignment="Right" verticalAlignment="Bottom"/> - <textFieldExpression><![CDATA[$F{meta:station_header}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="60" y="0" width="77" height="24"/> - <box padding="5"/> - <textElement textAlignment="Right" verticalAlignment="Bottom"/> - <textFieldExpression><![CDATA[$F{meta:fix_w}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement key="delete" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="137" y="-1" width="0" height="24"/> - <box padding="5"/> - <textElement textAlignment="Right" verticalAlignment="Bottom"/> - <textFieldExpression><![CDATA[$F{meta:w_at_gauge_header}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="137" y="0" width="70" height="24"/> - <box padding="5"/> - <textElement textAlignment="Right" verticalAlignment="Bottom"/> - <textFieldExpression><![CDATA[$F{meta:fix_q}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="207" y="0" width="83" height="24"/> - <box padding="5"/> - <textElement textAlignment="Right" verticalAlignment="Bottom"/> - <textFieldExpression><![CDATA[$F{meta:w_at_gauge_header_2}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="290" y="0" width="120" height="24"/> - <box padding="5"/> - <textElement textAlignment="Left" verticalAlignment="Bottom"/> - <textFieldExpression><![CDATA[$F{meta:location_header}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="410" y="0" width="140" height="24"/> - <box padding="5"/> - <textElement textAlignment="Left" verticalAlignment="Bottom"/> - <textFieldExpression><![CDATA[$F{meta:gauge_header}]]></textFieldExpression> - </textField> - </band> - </columnHeader> - <detail> - <band height="15" splitType="Prevent"> - <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="0" y="0" width="60" height="15"/> - <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> - <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - </box> - <textElement textAlignment="Right" verticalAlignment="Top"/> - <textFieldExpression><![CDATA[$F{data:0}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="60" y="0" width="77" height="15"/> - <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> - <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - </box> - <textElement textAlignment="Right" verticalAlignment="Top"/> - <textFieldExpression><![CDATA[$F{data:1}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement key="delete" style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="137" y="-1" width="0" height="15"/> - <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> - <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - </box> - <textElement textAlignment="Right" verticalAlignment="Top"/> - <textFieldExpression><![CDATA[$F{data:2}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="137" y="0" width="70" height="15"/> - <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> - <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - </box> - <textElement textAlignment="Right" verticalAlignment="Top"/> - <textFieldExpression><![CDATA[$F{data:3}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="207" y="0" width="83" height="15"/> - <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> - <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - </box> - <textElement textAlignment="Right" verticalAlignment="Top"/> - <textFieldExpression><![CDATA[$F{data:4}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="290" y="0" width="120" height="15"/> - <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> - <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - </box> - <textElement textAlignment="Left" verticalAlignment="Top"/> - <textFieldExpression><![CDATA[$F{data:5}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true" isBlankWhenNull="true"> - <reportElement style="htmlStyle" positionType="Float" stretchType="RelativeToBandHeight" x="410" y="0" width="140" height="15"/> - <box topPadding="2" leftPadding="5" bottomPadding="0" rightPadding="5"> - <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/> - </box> - <textElement textAlignment="Left" verticalAlignment="Top"/> - <textFieldExpression><![CDATA[$F{data:6}]]></textFieldExpression> - </textField> - </band> - </detail> - <pageFooter> - <band height="15" splitType="Stretch"> - <textField isStretchWithOverflow="true"> - <reportElement style="htmlStyle" x="437" y="0" width="55" height="15"/> - <box topPadding="2" rightPadding="3"/> - <textElement textAlignment="Right"/> - <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true" evaluationTime="Report"> - <reportElement style="htmlStyle" x="493" y="0" width="57" height="15"/> - <box topPadding="2" leftPadding="0" bottomPadding="0" rightPadding="0"/> - <textFieldExpression><![CDATA["/ " + $V{PAGE_NUMBER}]]></textFieldExpression> - </textField> - </band> - </pageFooter> -</jasperReport>
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/Calculation4.java Mon Oct 22 16:33:10 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/Calculation4.java Mon Oct 22 18:26:05 2018 +0200 @@ -236,7 +236,7 @@ } } } - final String custom = Resources.format(meta, "common.custom"); + final String custom = Resources.getMsg(meta, "common.custom"); // Backjump correction for (int i = 0; i < results.length; ++i) {
--- a/artifacts/src/main/java/org/dive4elements/river/exports/FixWaterlevelExporter.java Mon Oct 22 16:33:10 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/FixWaterlevelExporter.java Mon Oct 22 18:26:05 2018 +0200 @@ -47,17 +47,15 @@ /** Write an csv-row at gauge location. */ @Override protected void writeRow6(final CSVWriter writer, final double wqkm[], final String wOrQDesc, final D4EArtifact flys, final String gaugeName, - final Gauge gauge, final boolean isQ) { + final String wAtGauge, final boolean isQ) { if (!isQ) { - super.writeRow6(writer, wqkm, wOrQDesc, flys, gaugeName, gauge, isQ); + super.writeRow6(writer, wqkm, wOrQDesc, flys, gaugeName, wAtGauge, isQ); } else { final NumberFormat kmf = getKmFormatter(); final NumberFormat wf = getWFormatter(); final NumberFormat qf = getQFormatter(); - final String waterlevel = getWaterlevel(wqkm[1], gauge); - - writer.writeNext(new String[] { kmf.format(wqkm[2]), wf.format(wqkm[0]), waterlevel, qf.format(RiverUtils.roundQ(wqkm[1])), wOrQDesc, + writer.writeNext(new String[] { kmf.format(wqkm[2]), wf.format(wqkm[0]), wAtGauge, qf.format(RiverUtils.roundQ(wqkm[1])), wOrQDesc, RiverUtils.getLocationDescription(flys, wqkm[2]), gaugeName }); } }
--- a/artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelExporter.java Mon Oct 22 16:33:10 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelExporter.java Mon Oct 22 18:26:05 2018 +0200 @@ -534,7 +534,7 @@ /** Write an csv-row at gauge location. */ protected void writeRow6(final CSVWriter writer, final double wqkm[], final String wOrQDesc, final D4EArtifact flys, final String gaugeName, - final Gauge gauge, final boolean isQ) { + final String wAtGauge, final boolean isQ) { final NumberFormat kmf = getKmFormatter(); final NumberFormat wf = getWFormatter(); final NumberFormat qf = getQFormatter(); @@ -615,24 +615,18 @@ if (gauge == null) gauge = rangeAccess.getRiver().determineRefGauge(wqkms.getKms(), rangeAccess.isRange()); - final String gaugeName = gauge.getName(); // RANDOMLY CHRASHES HERE, gauge is randomly null (especially on heavy load) - on production system as well - // (it seems to) - // REMARK "randomly" crashes: see REMARK above + final String notinrange = msg(CSV_NOT_IN_GAUGE_RANGE, DEFAULT_CSV_NOT_IN_GAUGE_RANGE); + final String gaugeName = gauge != null ? gauge.getName() : notinrange; - String desc = ""; - final String notinrange = msg(CSV_NOT_IN_GAUGE_RANGE, DEFAULT_CSV_NOT_IN_GAUGE_RANGE); + final double a = gauge != null ? gauge.getRange().getA().doubleValue() : Double.NaN; + final double b = gauge != null ? gauge.getRange().getB().doubleValue() : Double.NaN; - final double a = gauge.getRange().getA().doubleValue(); - final double b = gauge.getRange().getB().doubleValue(); final long startTime = System.currentTimeMillis(); - desc = getDesc(wqkms, isQ); + String desc = getDesc(wqkms, isQ); - boolean isFixRealize = false; final List<Segment> segments = getSegments(flys); - if (segments != null && !segments.isEmpty()) { - isFixRealize = true; - } + final boolean isFixRealize = isFixrealize(segments); if (atGauge) { // "At gauge" needs more output. // Kms tend to be close together so caching the last sector @@ -644,10 +638,12 @@ for (int i = 0; i < size; ++i) { result = wqkms.get(i, result); - final double km = result[2]; + + final double station = result[2]; + final double q = result[1]; if (segments != null) { - final Segment found = lastSegment != null && lastSegment.inside(km) ? lastSegment : findSegment(km, segments); + final Segment found = lastSegment != null && lastSegment.inside(station) ? lastSegment : findSegment(station, segments); if (found != null) { desc = nf.format(found.getValues()[0]); @@ -656,16 +652,22 @@ } String gaugeN; + final String wAtGauge; if (isFixRealize) { - final Gauge found = lastGauge != null && lastGauge.getRange().contains(km) ? lastGauge : findGauge(km, gauges); + final Gauge found = lastGauge != null && lastGauge.getRange().contains(station) ? lastGauge : findGauge(station, gauges); gaugeN = found != null ? found.getName() : notinrange; lastGauge = found; + + wAtGauge = this.getWaterlevel(q, found); // THIS IS NEW (and makes common super method difficult) } else { // TODO issue1114: Take correct gauge - gaugeN = km >= a && km <= b ? gaugeName : notinrange; + gaugeN = station >= a && station <= b ? gaugeName : notinrange; + + wAtGauge = ""; } - writeRow6(writer, result, desc, flys, gaugeN, gauge, isQ); + + writeRow6(writer, result, desc, flys, gaugeN, wAtGauge, isQ); } } else { // Not at gauge. for (int i = 0; i < size; ++i) { @@ -681,6 +683,14 @@ } } + private boolean isFixrealize(final List<Segment> segments) { + boolean isFixRealize = false; + if (segments != null && !segments.isEmpty()) { + isFixRealize = true; + } + return isFixRealize; + } + /** * Generates the output in WST format. */ @@ -782,18 +792,17 @@ final boolean isQ = isQ(); final MetaAndTableJRDataSource source = new MetaAndTableJRDataSource(); - final String jasperFile = !isQ ? "/jasper/templates/waterlevel_new.jrxml" : "/jasper/templates/fix_waterlevel.jrxml"; + + final boolean isFixationAnalysis = this.master instanceof AbstractFixBunduArtifact; + final boolean doWaterlevelAtGaugeOutput = isQ && isFixationAnalysis; + + final String jasperFile = doWaterlevelAtGaugeOutput ? "/jasper/templates/fix_waterlevel.jrxml" : "/jasper/templates/waterlevel.jrxml"; ((D4EArtifact) this.master).getData("calculation.mode"); if ((this.master instanceof WINFOArtifact)) { - addMetaData(source, "calc.surface.curve"); // Wasserspiegellage - } else if - - (this.master instanceof AbstractFixBunduArtifact) { - addMetaData(source, ((AbstractFixBunduArtifact) this.master).getCalculationModeString());// "calculation.vollmer"); // ausgelagerte - // Wasserspiegellage - // else - // addMetaData(source, "calculation.analysis"); // Fixierungsanalyse + addMetaData(source, "calc.surface.curve", isQ); // Wasserspiegellage + } else if (this.master instanceof AbstractFixBunduArtifact) { + addMetaData(source, ((AbstractFixBunduArtifact) this.master).getCalculationModeString(), isQ); } try { @@ -876,30 +885,42 @@ final D4EArtifact flys = (D4EArtifact) this.master; final RangeAccess rangeAccess = new RangeAccess(flys); - final Gauge gauge = rangeAccess.getRiver().determineRefGauge(rangeAccess.getKmRange(), rangeAccess.isRange()); + final List<Gauge> gauges = RiverUtils.getGauges(flys); + + Gauge gauge = rangeAccess.getRiver().determineRefGauge(rangeAccess.getKmRange(), rangeAccess.isRange()); + // REMARK gauge may be null when rangeAccess starts outside any gauge range + if (gauge == null) + gauge = rangeAccess.getRiver().determineRefGauge(wqkms.getKms(), rangeAccess.isRange()); final String notinrange = msg(CSV_NOT_IN_GAUGE_RANGE, DEFAULT_CSV_NOT_IN_GAUGE_RANGE); final String gaugeName = gauge != null ? gauge.getName() : notinrange; - String desc = ""; - final Double a = gauge != null ? gauge.getRange().getA().doubleValue() : Double.NaN; - final Double b = gauge != null ? gauge.getRange().getB().doubleValue() : Double.NaN; + final double a = gauge != null ? gauge.getRange().getA().doubleValue() : Double.NaN; + final double b = gauge != null ? gauge.getRange().getB().doubleValue() : Double.NaN; + final WaterlevelDescriptionBuilder wldb = new WaterlevelDescriptionBuilder(flys, this.context); - desc = wldb.getDesc(wqkms);// class getDesc(wqkms, isQ); + String desc = wldb.getDesc(wqkms);// class getDesc(wqkms, isQ); Segment lastSegment = null; - final Gauge lastGauge = null; + final List<Segment> segments = getSegments(flys); + final boolean isFixRealize = isFixrealize(segments); + final NumberFormat nf = Formatter.getFormatter(this.context.getMeta(), 0, 0); + Gauge lastGauge = null; + for (int i = 0; i < size; ++i) { result = wqkms.get(i, result); - final double km = result[2]; + + final double station = result[2]; + final double q = result[1]; + final double w = result[0]; if (segments != null) { - final Segment found = lastSegment != null && lastSegment.inside(km) ? lastSegment : findSegment(km, segments); + final Segment found = lastSegment != null && lastSegment.inside(station) ? lastSegment : findSegment(station, segments); if (found != null) { desc = nf.format(found.getValues()[0]); @@ -907,23 +928,34 @@ lastSegment = found; } - final double q = result[1]; - final String waterlevel = this.getWaterlevel(q, gauge); // THIS IS NEW (and makes common super method - // difficult) - if (atGauge) { - list.add(new String[] { kmf.format(result[2]), wf.format(result[0]), waterlevel, qf.format(RiverUtils.roundQ(result[1])), desc, - RiverUtils.getLocationDescription(flys, result[2]), result[2] >= a && result[2] <= b ? gaugeName : notinrange }); + String gaugeN; + final String wAtGauge; + if (isFixRealize) { + final Gauge found = lastGauge != null && lastGauge.getRange().contains(station) ? lastGauge : findGauge(station, gauges); + + gaugeN = found != null ? found.getName() : notinrange; + lastGauge = found; + + wAtGauge = this.getWaterlevel(q, found); // THIS IS NEW (and makes common super method difficult) } else { - list.add(new String[] { kmf.format(result[2]), wf.format(result[0]), waterlevel, qf.format(RiverUtils.roundQ(result[1])), desc, - RiverUtils.getLocationDescription(flys, result[2]), result[2] >= a && result[2] <= b ? gaugeName : notinrange }); + // TODO issue1114: Take correct gauge + gaugeN = station >= a && station <= b ? gaugeName : notinrange; + wAtGauge = ""; } + if (atGauge) { + list.add(new String[] { kmf.format(station), wf.format(w), wAtGauge, qf.format(RiverUtils.roundQ(q)), desc, + RiverUtils.getLocationDescription(flys, station), gaugeN }); + } else { + list.add(new String[] { kmf.format(station), wf.format(w), wAtGauge, qf.format(RiverUtils.roundQ(q)), desc, + RiverUtils.getLocationDescription(flys, station), gaugeN }); + } } return list; } - protected final void addMetaData(final MetaAndTableJRDataSource source, final String calculation) { + protected final void addMetaData(final MetaAndTableJRDataSource source, final String calculation, final boolean isQ) { final D4EArtifact flys = (D4EArtifact) this.master; final String user = CalculationUtils.findArtifactUser(this.context, flys); final RangeAccess ra = new RangeAccess(flys); @@ -939,10 +971,15 @@ contextPdf.addJRMetadata(source, "fix_w", msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] { ri.getWstUnit() })); contextPdf.addJRMetadata(source, "w_at_gauge_header", msg("fix.export.csv.w_at_gauge")); contextPdf.addJRMetadata(source, "fix_q", msg(CSV_Q_HEADER)); + contextPdf.addJRMetadata(source, "waterlevel_name_header", msg("common.export.csv.header.mainvalue_label")); contextPdf.addJRMetadata(source, "location_header", msg("common.export.csv.header.location")); - contextPdf.addJRMetadata(source, "w_at_gauge_header_2", msg("export.waterlevel.csv.header.w.desc")); + // FIXME: use WaterlevelDescriptionBuilder instead and also remove all this duplicate code. + final String waterlevelOrBezeichnung = (isQ ? msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER) : msg(CSV_W_DESC_HEADER, DEFAULT_CSV_W_DESC_HEADER)); + contextPdf.addJRMetadata(source, "w_at_gauge_header_2", waterlevelOrBezeichnung); + + // msg("export.waterlevel.csv.header.w.desc")); (old. delete) contextPdf.addJRMetadata(source, "location_header", msg("common.export.csv.header.location")); contextPdf.addJRMetadata(source, "gauge_header", msg("common.export.csv.header.gauge")); @@ -1096,6 +1133,4 @@ } return this.gaugeQ_W_Map.get(key); } - -} -// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : +} \ No newline at end of file