tdf#162963 export property TotalsRow to ODF

DatabaseRange has got the property TotalsRow with UI and UNO. But this
property was not written to ODF. The patch adds this as attribute
calcext:contains-footer to <table:database-range> element.
Related is issue OFFICE-4169 at OASIS.

Change-Id: I99a51198585b9b7dfb840217bdf1312f2462c9bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173612
Tested-by: Jenkins
Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
This commit is contained in:
Regina Henschel 2024-09-18 10:43:32 +02:00
parent 56507ad26c
commit 35c5d49664
16 changed files with 1127 additions and 6 deletions

View file

@ -507,6 +507,7 @@ namespace xmloff::token {
XML_CONSOLIDATION,
XML_CONSTANT,
XML_CONTAINS_ERROR,
XML_CONTAINS_FOOTER,
XML_CONTAINS_HEADER,
XML_CONTENT,
XML_CONTENT_VALIDATION,

View file

@ -0,0 +1,12 @@
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call sc_subsequent_test,filters_test5))
# vim: set noet sw=4 ts=4:

View file

@ -92,6 +92,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sc, \
CppunitTest_sc_subsequent_filters_test2 \
CppunitTest_sc_subsequent_filters_test3 \
CppunitTest_sc_subsequent_filters_test4 \
CppunitTest_sc_subsequent_filters_test5 \
CppunitTest_sc_subsequent_export_test \
CppunitTest_sc_subsequent_export_test2 \
CppunitTest_sc_subsequent_export_test3 \

View file

@ -42,6 +42,7 @@ struct SAL_DLLPUBLIC_RTTI ScQueryParamBase
{
utl::SearchParam::SearchType eSearchType;
bool bHasHeader;
bool bHasTotals;
bool bByRow;
bool bInplace;
bool bCaseSens;
@ -88,6 +89,7 @@ inline std::basic_ostream<charT, traits> & operator <<(std::basic_ostream<charT,
stream << "{" <<
"searchType=" << rParam.eSearchType <<
",hasHeader=" << (rParam.bHasHeader?"YES":"NO") <<
",hasTotals=" << (rParam.bHasTotals?"YES":"NO") <<
",byRow=" << (rParam.bByRow?"YES":"NO") <<
",inplace=" << (rParam.bInplace?"YES":"NO") <<
",caseSens=" << (rParam.bCaseSens?"YES":"NO") <<

View file

@ -0,0 +1,959 @@
<?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
<office:meta>
<meta:generator>LODev_daily_installed/25.2.0.0.alpha0$Windows_X86_64 LibreOffice_project/976567aee323afd09629b6adf13537908f43d2a8
</meta:generator>
<dc:title>5mm Grid</dc:title>
<meta:initial-creator>Regina Henschel</meta:initial-creator>
<meta:creation-date>2024-07-29T22:39:46</meta:creation-date>
<dc:creator>Regina Henschel</dc:creator>
<dc:date>2024-09-18T20:23:43</dc:date>
<meta:user-defined meta:name="AppVersion" meta:value-type="string">16.0300</meta:user-defined>
<meta:document-statistic meta:table-count="1" meta:object-count="0" meta:cell-count="21"/>
</office:meta>
<office:settings>
<config:config-item-set config:name="ooo:view-settings">
<config:config-item config:name="VisibleAreaTop" config:type="int">0</config:config-item>
<config:config-item config:name="VisibleAreaLeft" config:type="int">0</config:config-item>
<config:config-item config:name="VisibleAreaWidth" config:type="int">4198</config:config-item>
<config:config-item config:name="VisibleAreaHeight" config:type="int">8731</config:config-item>
<config:config-item-map-indexed config:name="Views">
<config:config-item-map-entry>
<config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
<config:config-item-map-named config:name="Tables">
<config:config-item-map-entry config:name="Vertical">
<config:config-item config:name="CursorPositionX" config:type="int">3</config:config-item>
<config:config-item config:name="CursorPositionY" config:type="int">0</config:config-item>
<config:config-item config:name="ActiveSplitRange" config:type="short">2</config:config-item>
<config:config-item config:name="PositionLeft" config:type="int">0</config:config-item>
<config:config-item config:name="PositionRight" config:type="int">0</config:config-item>
<config:config-item config:name="PositionTop" config:type="int">0</config:config-item>
<config:config-item config:name="PositionBottom" config:type="int">0</config:config-item>
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
<config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
<config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
<config:config-item config:name="LegacySingleLineFontwork" config:type="boolean">false</config:config-item>
<config:config-item config:name="ConnectorUseSnapRect" config:type="boolean">false</config:config-item>
<config:config-item config:name="IgnoreBreakAfterMultilineField" config:type="boolean">false</config:config-item>
</config:config-item-map-entry>
</config:config-item-map-named>
<config:config-item config:name="ActiveTable" config:type="string">Vertical</config:config-item>
<config:config-item config:name="HorizontalScrollbarWidth" config:type="int">1666</config:config-item>
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
<config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
<config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
<config:config-item config:name="ShowPageBreakPreview" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
<config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
<config:config-item config:name="ShowNoteAuthor" config:type="boolean">true</config:config-item>
<config:config-item config:name="ShowFormulasMarks" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
<config:config-item config:name="GridColor" config:type="int">-1</config:config-item>
<config:config-item config:name="FormulaBarHeight" config:type="short">1</config:config-item>
<config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
<config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
<config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
<config:config-item config:name="IsValueHighlightingEnabled" config:type="boolean">false</config:config-item>
<config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
<config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
<config:config-item config:name="RasterResolutionX" config:type="int">500</config:config-item>
<config:config-item config:name="RasterResolutionY" config:type="int">500</config:config-item>
<config:config-item config:name="RasterSubdivisionX" config:type="int">4</config:config-item>
<config:config-item config:name="RasterSubdivisionY" config:type="int">4</config:config-item>
<config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
<config:config-item config:name="LegacySingleLineFontwork" config:type="boolean">false</config:config-item>
<config:config-item config:name="ConnectorUseSnapRect" config:type="boolean">false</config:config-item>
<config:config-item config:name="IgnoreBreakAfterMultilineField" config:type="boolean">false</config:config-item>
</config:config-item-map-entry>
</config:config-item-map-indexed>
</config:config-item-set>
<config:config-item-set config:name="ooo:configuration-settings">
<config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
<config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
<config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item>
<config:config-item config:name="ShowNoteAuthor" config:type="boolean">true</config:config-item>
<config:config-item config:name="ShowFormulasMarks" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
<config:config-item config:name="GridColor" config:type="int">-1</config:config-item>
<config:config-item config:name="ShowPageBreaks" config:type="boolean">false</config:config-item>
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">true</config:config-item>
<config:config-item config:name="LinkUpdateMode" config:type="short">3</config:config-item>
<config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
<config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
<config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
<config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
<config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
<config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
<config:config-item config:name="RasterResolutionX" config:type="int">500</config:config-item>
<config:config-item config:name="RasterResolutionY" config:type="int">500</config:config-item>
<config:config-item config:name="RasterSubdivisionX" config:type="int">4</config:config-item>
<config:config-item config:name="RasterSubdivisionY" config:type="int">4</config:config-item>
<config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
<config:config-item config:name="AutoCalculate" config:type="boolean">true</config:config-item>
<config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
<config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item>
<config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item>
<config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
<config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
<config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
<config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
<config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
<config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
<config:config-item config:name="IsDocumentShared" config:type="boolean">false</config:config-item>
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
<config:config-item config:name="SyntaxStringRef" config:type="short">2</config:config-item>
<config:config-item-map-named config:name="ScriptConfiguration">
<config:config-item-map-entry config:name="Vertical">
<config:config-item config:name="CodeName" config:type="string">Sheet1</config:config-item>
</config:config-item-map-entry>
</config:config-item-map-named>
</config:config-item-set>
</office:settings>
<office:scripts>
<office:script script:language="ooo:Basic">
<ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</office:script>
</office:scripts>
<office:font-face-decls>
<style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans1" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss"/>
<style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman"/>
<style:font-face style:name="Lucida Sans" svg:font-family="&apos;Lucida Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
</office:font-face-decls>
<office:styles>
<style:default-style style:family="table-cell">
<style:paragraph-properties style:tab-stop-distance="12.7mm"/>
<style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="Microsoft YaHei" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Lucida Sans" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN"/>
</style:default-style>
<style:default-style style:family="graphic">
<style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="3mm" draw:shadow-offset-y="3mm" style:writing-mode="page"/>
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:punctuation-wrap="simple" style:line-break="strict" loext:tab-stop-distance="0mm" style:writing-mode="page" style:font-independent-line-spacing="false">
<style:tab-stops/>
</style:paragraph-properties>
<style:text-properties style:use-window-font-color="true" loext:opacity="0%" fo:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable" fo:font-size="12pt" fo:language="en" fo:country="US" style:letter-kerning="true" style:font-family-asian="&apos;Segoe UI&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-family-complex="Tahoma" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
</style:default-style>
<style:style style:name="Default" style:family="graphic"/>
<style:style style:name="Note" style:family="graphic" style:parent-style-name="Default">
<style:graphic-properties draw:stroke="solid" draw:marker-start="Arrowheads_20_1" draw:marker-start-width="2mm" draw:marker-start-center="false" draw:fill="solid" draw:fill-color="#ffffc0" draw:auto-grow-height="true" draw:auto-grow-width="false" fo:padding-top="1mm" fo:padding-bottom="1mm" fo:padding-left="1mm" fo:padding-right="1mm" draw:shadow="visible" draw:shadow-offset-x="1mm" draw:shadow-offset-y="1mm"/>
<style:text-properties style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="10pt" style:font-name-asian="Microsoft YaHei" style:font-family-asian="&apos;Microsoft YaHei&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="10pt" style:font-name-complex="Lucida Sans" style:font-family-complex="&apos;Lucida Sans&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="10pt"/>
</style:style>
<number:number-style style:name="N0">
<number:number number:min-integer-digits="1"/>
</number:number-style>
<number:currency-style style:name="N114P0" style:volatile="true">
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text> </number:text>
<number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
</number:currency-style>
<number:currency-style style:name="N114">
<style:text-properties fo:color="#ff0000"/>
<number:text>-</number:text>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text> </number:text>
<number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N114P0"/>
</number:currency-style>
<number:number-style style:name="N117P0" style:volatile="true">
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text> €</number:text>
</number:number-style>
<number:number-style style:name="N117">
<number:text>-</number:text>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text> €</number:text>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N117P0"/>
</number:number-style>
<number:number-style style:name="N118P0" style:volatile="true">
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text> €</number:text>
</number:number-style>
<number:number-style style:name="N118">
<style:text-properties fo:color="#ff0000"/>
<number:text>-</number:text>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text> €</number:text>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N118P0"/>
</number:number-style>
<number:number-style style:name="N120P0" style:volatile="true">
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text> €</number:text>
</number:number-style>
<number:number-style style:name="N120">
<number:text>-</number:text>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text> €</number:text>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N120P0"/>
</number:number-style>
<number:number-style style:name="N121P0" style:volatile="true">
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text> €</number:text>
</number:number-style>
<number:number-style style:name="N121">
<style:text-properties fo:color="#ff0000"/>
<number:text>-</number:text>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text> €</number:text>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N121P0"/>
</number:number-style>
<number:date-style style:name="N122">
<number:day number:style="long"/>
<number:text>. </number:text>
<number:month number:textual="true"/>
<number:text> </number:text>
<number:year/>
</number:date-style>
<number:date-style style:name="N123">
<number:day number:style="long"/>
<number:text>. </number:text>
<number:month number:textual="true"/>
</number:date-style>
<number:date-style style:name="N124">
<number:month number:textual="true"/>
<number:text> </number:text>
<number:year/>
</number:date-style>
<number:time-style style:name="N125">
<number:hours/>
<number:text>:</number:text>
<number:minutes number:style="long"/>
<number:text> </number:text>
<number:am-pm/>
</number:time-style>
<number:time-style style:name="N126">
<number:hours/>
<number:text>:</number:text>
<number:minutes number:style="long"/>
<number:text>:</number:text>
<number:seconds number:style="long"/>
<number:text> </number:text>
<number:am-pm/>
</number:time-style>
<number:number-style style:name="N128P0" style:volatile="true">
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1"> </number:text>
</number:number-style>
<number:number-style style:name="N128">
<number:text>-</number:text>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1"> </number:text>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N128P0"/>
</number:number-style>
<number:number-style style:name="N129P0" style:volatile="true">
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1"> </number:text>
</number:number-style>
<number:number-style style:name="N129">
<style:text-properties fo:color="#ff0000"/>
<number:text>-</number:text>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1"> </number:text>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N129P0"/>
</number:number-style>
<number:number-style style:name="N131P0" style:volatile="true">
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1"> </number:text>
</number:number-style>
<number:number-style style:name="N131">
<number:text>-</number:text>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1"> </number:text>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N131P0"/>
</number:number-style>
<number:number-style style:name="N132P0" style:volatile="true">
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1"> </number:text>
</number:number-style>
<number:number-style style:name="N132">
<style:text-properties fo:color="#ff0000"/>
<number:text>-</number:text>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1"> </number:text>
<style:map style:condition="value()&gt;=0" style:apply-style-name="N132P0"/>
</number:number-style>
<number:number-style style:name="N136P0" style:volatile="true">
<number:text loext:blank-width-char="-"> </number:text>
<number:fill-character> </number:fill-character>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1_-3"> </number:text>
</number:number-style>
<number:number-style style:name="N136P1" style:volatile="true">
<number:text>-</number:text>
<number:fill-character> </number:fill-character>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1_-3"> </number:text>
</number:number-style>
<number:number-style style:name="N136P2" style:volatile="true">
<number:text loext:blank-width-char="-"> </number:text>
<number:fill-character> </number:fill-character>
<number:text loext:blank-width-char="€2_-4">- </number:text>
</number:number-style>
<number:text-style style:name="N136">
<number:text loext:blank-width-char="-"> </number:text>
<number:text-content/>
<number:text loext:blank-width-char="-"> </number:text>
<style:map style:condition="value()&gt;0" style:apply-style-name="N136P0"/>
<style:map style:condition="value()&lt;0" style:apply-style-name="N136P1"/>
<style:map style:condition="value()=0" style:apply-style-name="N136P2"/>
</number:text-style>
<number:number-style style:name="N140P0" style:volatile="true">
<number:text loext:blank-width-char="-"> </number:text>
<number:fill-character> </number:fill-character>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="-2"> € </number:text>
</number:number-style>
<number:number-style style:name="N140P1" style:volatile="true">
<number:text>-</number:text>
<number:fill-character> </number:fill-character>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="-2"> € </number:text>
</number:number-style>
<number:number-style style:name="N140P2" style:volatile="true">
<number:text loext:blank-width-char="-"> </number:text>
<number:fill-character> </number:fill-character>
<number:text loext:blank-width-char="-3">- € </number:text>
</number:number-style>
<number:text-style style:name="N140">
<number:text loext:blank-width-char="-"> </number:text>
<number:text-content/>
<number:text loext:blank-width-char="-"> </number:text>
<style:map style:condition="value()&gt;0" style:apply-style-name="N140P0"/>
<style:map style:condition="value()&lt;0" style:apply-style-name="N140P1"/>
<style:map style:condition="value()=0" style:apply-style-name="N140P2"/>
</number:text-style>
<number:number-style style:name="N144P0" style:volatile="true">
<number:text loext:blank-width-char="-"> </number:text>
<number:fill-character> </number:fill-character>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1_-3"> </number:text>
</number:number-style>
<number:number-style style:name="N144P1" style:volatile="true">
<number:text>-</number:text>
<number:fill-character> </number:fill-character>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="€1_-3"> </number:text>
</number:number-style>
<number:number-style style:name="N144P2" style:volatile="true">
<number:text loext:blank-width-char="-"> </number:text>
<number:fill-character> </number:fill-character>
<number:text>-</number:text>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/>
<number:text loext:blank-width-char="€1_-3"> </number:text>
</number:number-style>
<number:text-style style:name="N144">
<number:text loext:blank-width-char="-"> </number:text>
<number:text-content/>
<number:text loext:blank-width-char="-"> </number:text>
<style:map style:condition="value()&gt;0" style:apply-style-name="N144P0"/>
<style:map style:condition="value()&lt;0" style:apply-style-name="N144P1"/>
<style:map style:condition="value()=0" style:apply-style-name="N144P2"/>
</number:text-style>
<number:number-style style:name="N148P0" style:volatile="true">
<number:text loext:blank-width-char="-"> </number:text>
<number:fill-character> </number:fill-character>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="-2"> € </number:text>
</number:number-style>
<number:number-style style:name="N148P1" style:volatile="true">
<number:text>-</number:text>
<number:fill-character> </number:fill-character>
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
<number:text loext:blank-width-char="-2"> € </number:text>
</number:number-style>
<number:number-style style:name="N148P2" style:volatile="true">
<number:text loext:blank-width-char="-"> </number:text>
<number:fill-character> </number:fill-character>
<number:text>-</number:text>
<number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="2" loext:max-blank-integer-digits="2"/>
<number:text loext:blank-width-char="-2"> € </number:text>
</number:number-style>
<number:text-style style:name="N148">
<number:text loext:blank-width-char="-"> </number:text>
<number:text-content/>
<number:text loext:blank-width-char="-"> </number:text>
<style:map style:condition="value()&gt;0" style:apply-style-name="N148P0"/>
<style:map style:condition="value()&lt;0" style:apply-style-name="N148P1"/>
<style:map style:condition="value()=0" style:apply-style-name="N148P2"/>
</number:text-style>
<number:time-style style:name="N149">
<number:minutes number:style="long"/>
<number:text>:</number:text>
<number:seconds number:style="long"/>
</number:time-style>
<number:time-style style:name="N150" number:truncate-on-overflow="false">
<number:hours/>
<number:text>:</number:text>
<number:minutes number:style="long"/>
<number:text>:</number:text>
<number:seconds number:style="long"/>
</number:time-style>
<number:time-style style:name="N151">
<number:minutes number:style="long"/>
<number:text>:</number:text>
<number:seconds number:style="long" number:decimal-places="1"/>
</number:time-style>
<number:number-style style:name="N152">
<number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/>
</number:number-style>
<style:style style:name="Default" style:family="table-cell">
<style:table-cell-properties style:rotation-align="none" style:vertical-align="bottom"/>
<style:text-properties fo:color="#000000" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:font-size="24pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
</style:style>
<style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:font-size="12pt" style:font-size-asian="12pt" style:font-size-complex="12pt"/>
</style:style>
<style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
</style:style>
<style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text">
<style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:wrap-option="no-wrap" fo:border="0.74pt solid #808080" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#333333">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#808080" fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#0000ee" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
</style:style>
<style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status">
<style:table-cell-properties fo:background-color="#ccffcc" fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#006600">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status">
<style:table-cell-properties fo:background-color="#ffffcc" fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#996600">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status">
<style:table-cell-properties fo:background-color="#ffcccc" fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#cc0000">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#cc0000">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status">
<style:table-cell-properties fo:background-color="#cc0000" fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#ffffff" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent">
<style:table-cell-properties fo:background-color="#000000" fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#ffffff">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent">
<style:table-cell-properties fo:background-color="#808080" fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:color="#ffffff">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent">
<style:table-cell-properties fo:background-color="#dddddd" fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
</style:style>
<style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:wrap-option="no-wrap" style:shrink-to-fit="false"/>
<style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Accent_20_1_20_5" style:display-name="Accent 1 5" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#000000" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#ffffff" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Accent_20_2_20_6" style:display-name="Accent 2 6" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#808080" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#ffffff" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Accent_20_3_20_7" style:display-name="Accent 3 7" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#dddddd" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Accent_20_4" style:display-name="Accent 4" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Default_20_8" style:display-name="Default 8" style:family="table-cell" style:parent-style-name="Default"/>
<style:style style:name="Error_20_9" style:display-name="Error 9" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#cc0000" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#ffffff" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Excel_20_Built-in_20_Bad" style:display-name="Excel Built-in Bad" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#ffcccc" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#cc0000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Excel_20_Built-in_20_Good" style:display-name="Excel Built-in Good" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#ccffcc" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#006600" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Excel_20_Built-in_20_Heading_20_1" style:display-name="Excel Built-in Heading 1" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Excel_20_Built-in_20_Heading_20_2" style:display-name="Excel Built-in Heading 2" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="12pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="12pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="12pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Excel_20_Built-in_20_Neutral" style:display-name="Excel Built-in Neutral" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#ffffcc" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#996600" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Excel_20_Built-in_20_Note" style:display-name="Excel Built-in Note" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border="0.74pt solid #808080" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#333333" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Footnote_20_10" style:display-name="Footnote 10" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#808080" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="italic" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="italic" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Header" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:background-color="#dcdcdc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border="0.74pt solid #000000" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="middle" loext:vertical-justify="auto"/>
<style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Serif" style:font-family-complex="&apos;Liberation Serif&apos;" style:font-family-generic-complex="roman" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Heading_20_11" style:display-name="Heading 11" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="24pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Hyperlink_20_12" style:display-name="Hyperlink 12" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#0000ee" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="PresentationText" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #000000"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Serif" style:font-family-complex="&apos;Liberation Serif&apos;" style:font-family-generic-complex="roman" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Result_20_13" style:display-name="Result 13" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="italic" fo:text-shadow="none" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-size-asian="10pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="italic" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Status_20_14" style:display-name="Status 14" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
</style:style>
<style:style style:name="Text_20_15" style:display-name="Text 15" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
</style:style>
<style:style style:name="Totals" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #000000"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Serif" style:font-family-complex="&apos;Liberation Serif&apos;" style:font-family-generic-complex="roman" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="Warning_20_16" style:display-name="Warning 16" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties style:text-align-source="value-type" style:repeat-content="false" fo:wrap-option="no-wrap" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#cc0000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans1" style:font-family-complex="&apos;Liberation Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<draw:marker draw:name="Arrowheads_20_1" draw:display-name="Arrowheads 1" svg:viewBox="0 0 20 30" svg:d="M10 0l-10 30h20z"/>
<loext:theme loext:name="Office Theme">
<loext:theme-colors loext:name="Office">
<loext:color loext:name="dark1" loext:color="#000000"/>
<loext:color loext:name="light1" loext:color="#ffffff"/>
<loext:color loext:name="dark2" loext:color="#0e2841"/>
<loext:color loext:name="light2" loext:color="#e8e8e8"/>
<loext:color loext:name="accent1" loext:color="#156082"/>
<loext:color loext:name="accent2" loext:color="#e97132"/>
<loext:color loext:name="accent3" loext:color="#196b24"/>
<loext:color loext:name="accent4" loext:color="#0f9ed5"/>
<loext:color loext:name="accent5" loext:color="#a02b93"/>
<loext:color loext:name="accent6" loext:color="#4ea72e"/>
<loext:color loext:name="hyperlink" loext:color="#467886"/>
<loext:color loext:name="followed-hyperlink" loext:color="#96607d"/>
</loext:theme-colors>
</loext:theme>
</office:styles>
<office:automatic-styles>
<style:style style:name="co1" style:family="table-column">
<style:table-column-properties fo:break-before="auto" style:column-width="21.54mm"/>
</style:style>
<style:style style:name="co2" style:family="table-column">
<style:table-column-properties fo:break-before="auto" style:column-width="20.44mm"/>
</style:style>
<style:style style:name="co3" style:family="table-column">
<style:table-column-properties fo:break-before="auto" style:column-width="15.43mm"/>
</style:style>
<style:style style:name="co4" style:family="table-column">
<style:table-column-properties fo:break-before="auto" style:column-width="25.66mm"/>
</style:style>
<style:style style:name="co5" style:family="table-column">
<style:table-column-properties fo:break-before="auto" style:column-width="16.72mm"/>
</style:style>
<style:style style:name="co6" style:family="table-column">
<style:table-column-properties fo:break-before="auto" style:column-width="22.58mm"/>
</style:style>
<style:style style:name="ro1" style:family="table-row">
<style:table-row-properties style:row-height="7.94mm" fo:break-before="auto" style:use-optimal-row-height="false"/>
</style:style>
<style:style style:name="ro2" style:family="table-row">
<style:table-row-properties style:row-height="4.76mm" fo:break-before="auto" style:use-optimal-row-height="false"/>
</style:style>
<style:style style:name="ta1" style:family="table" style:master-page-name="PageStyle_5f_Vertical">
<style:table-properties table:display="true" style:writing-mode="lr-tb"/>
</style:style>
<number:number-style style:name="N2">
<number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/>
</number:number-style>
<style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Header" style:data-style-name="N0">
<style:table-cell-properties fo:border-bottom="0.74pt solid #000000" fo:background-color="#dcdcdc" style:cell-protect="protected" style:print-content="true" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #000000" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="middle" loext:vertical-justify="auto"/>
<style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce2" style:family="table-cell" style:parent-style-name="PresentationText" style:data-style-name="N0">
<style:table-cell-properties fo:border-bottom="0.74pt solid #000000" style:cell-protect="protected" style:print-content="true" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="value-type" style:repeat-content="false" fo:background-color="transparent" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #000000" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="0.74pt solid #000000" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce3" style:family="table-cell" style:parent-style-name="PresentationText" style:data-style-name="N0">
<style:table-cell-properties fo:border-bottom="0.74pt solid #000000" style:cell-protect="protected" style:print-content="true" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="value-type" style:repeat-content="false" fo:background-color="transparent" fo:wrap-option="wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #000000" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="0.74pt solid #000000" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce4" style:family="table-cell" style:parent-style-name="PresentationText" style:data-style-name="N0">
<style:table-cell-properties fo:border-bottom="none" style:cell-protect="protected" style:print-content="true" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="value-type" style:repeat-content="false" fo:background-color="transparent" fo:wrap-option="no-wrap" fo:border-left="none" style:direction="ltr" fo:border-right="0.74pt solid #000000" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="0.74pt solid #000000" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.74pt solid #000000" style:rotation-align="none" fo:border-top="0.74pt solid #000000"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce6" style:family="table-cell" style:parent-style-name="Default_20_8" style:data-style-name="N0">
<style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="value-type" style:repeat-content="false" fo:background-color="transparent" fo:wrap-option="no-wrap" fo:border="none" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans1" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans1" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce21" style:family="table-cell" style:parent-style-name="Header" style:data-style-name="N0">
<style:table-cell-properties fo:border-bottom="0.74pt solid #000000" fo:background-color="#dcdcdc" style:cell-protect="protected" style:print-content="true" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #000000" style:direction="ltr" fo:border-right="0.74pt solid #000000" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="none" style:vertical-align="middle" loext:vertical-justify="auto"/>
<style:paragraph-properties fo:text-align="center" css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="bold">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce8" style:family="table-cell" style:parent-style-name="PresentationText" style:data-style-name="N0">
<style:table-cell-properties style:cell-protect="protected" style:print-content="true" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="value-type" style:repeat-content="false" fo:background-color="transparent" fo:wrap-option="no-wrap" fo:border="0.74pt solid #000000" style:direction="ltr" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce9" style:family="table-cell" style:parent-style-name="PresentationText" style:data-style-name="N0">
<style:table-cell-properties fo:border-bottom="none" style:cell-protect="protected" style:print-content="true" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" style:text-align-source="value-type" style:repeat-content="false" fo:background-color="transparent" fo:wrap-option="no-wrap" fo:border-left="0.74pt solid #000000" style:direction="ltr" fo:border-right="0.74pt solid #000000" style:rotation-angle="0" style:rotation-align="none" style:shrink-to-fit="false" fo:border-top="0.74pt solid #000000" style:vertical-align="bottom" loext:vertical-justify="auto"/>
<style:paragraph-properties css3t:text-justify="auto" fo:margin-left="0mm" style:writing-mode="page"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:style style:name="ce10" style:family="table-cell" style:parent-style-name="Default">
<style:table-cell-properties fo:border-bottom="none" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="0.74pt solid #000000" fo:border-right="0.74pt solid #000000" style:rotation-align="none" fo:border-top="0.74pt solid #000000"/>
<style:text-properties fo:color="#000000" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Serif" fo:font-size="18pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="18pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Serif" style:font-size-complex="18pt" style:font-style-complex="normal" style:font-weight-complex="normal">
<loext:char-complex-color loext:theme-type="dark1" loext:color-type="theme"/>
</style:text-properties>
</style:style>
<style:page-layout style:name="pm1">
<style:page-layout-properties style:first-page-number="continue" style:writing-mode="lr-tb"/>
<style:header-style>
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-bottom="2.5mm"/>
</style:header-style>
<style:footer-style>
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-top="2.5mm"/>
</style:footer-style>
</style:page-layout>
<style:page-layout style:name="pm2">
<style:page-layout-properties style:writing-mode="lr-tb"/>
<style:header-style>
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-bottom="2.5mm" fo:border="1.5pt solid #000000" fo:padding="0.18mm" fo:background-color="#c0c0c0">
<style:background-image/>
</style:header-footer-properties>
</style:header-style>
<style:footer-style>
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-top="2.5mm" fo:border="1.5pt solid #000000" fo:padding="0.18mm" fo:background-color="#c0c0c0">
<style:background-image/>
</style:header-footer-properties>
</style:footer-style>
</style:page-layout>
<style:page-layout style:name="pm3">
<style:page-layout-properties style:num-format="1" style:print-orientation="portrait" fo:margin-top="0mm" fo:margin-bottom="0mm" fo:margin-left="0mm" fo:margin-right="0mm" style:print-page-order="ttb" style:first-page-number="continue" style:scale-to="100%" style:writing-mode="lr-tb" style:print="charts drawings objects zero-values"/>
<style:header-style>
<style:header-footer-properties fo:min-height="10mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-bottom="6.47mm"/>
</style:header-style>
<style:footer-style>
<style:header-footer-properties fo:min-height="10mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-top="6.47mm"/>
</style:footer-style>
</style:page-layout>
<style:style style:name="T1" style:family="text">
<style:text-properties fo:color="#000000" loext:opacity="100%" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" style:text-position="0% 100%" style:font-name="Liberation Sans" fo:font-size="10pt" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:font-size-asian="10pt" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-name-complex="Liberation Sans" style:font-size-complex="10pt" style:font-style-complex="normal" style:font-weight-complex="normal"/>
</style:style>
</office:automatic-styles>
<office:master-styles>
<style:master-page style:name="Default" style:page-layout-name="pm1">
<style:header>
<text:p><text:sheet-name>???</text:sheet-name></text:p>
</style:header>
<style:header-left style:display="false"/>
<style:header-first style:display="false"/>
<style:footer>
<text:p>Page <text:page-number>1</text:page-number></text:p>
</style:footer>
<style:footer-left style:display="false"/>
<style:footer-first style:display="false"/>
</style:master-page>
<style:master-page style:name="Report" style:page-layout-name="pm2">
<style:header>
<style:region-left>
<text:p><text:sheet-name>???</text:sheet-name><text:s/>(<text:title>???</text:title>)</text:p>
</style:region-left>
<style:region-right>
<text:p><text:date style:data-style-name="N2" text:date-value="2024-09-18">00.00.0000</text:date>, <text:time style:data-style-name="N2" text:time-value="20:20:55.874000000">00:00:00</text:time></text:p>
</style:region-right>
</style:header>
<style:header-left style:display="false"/>
<style:header-first style:display="false"/>
<style:footer>
<text:p>Page <text:page-number>1</text:page-number><text:s/>/ <text:page-count>99</text:page-count></text:p>
</style:footer>
<style:footer-left style:display="false"/>
<style:footer-first style:display="false"/>
</style:master-page>
<style:master-page style:name="PageStyle_5f_Vertical" style:display-name="PageStyle_Vertical" style:page-layout-name="pm3">
<style:header>
<text:p><text:span text:style-name="T1"><text:sheet-name>???</text:sheet-name></text:span></text:p>
</style:header>
<style:header-left style:display="false"/>
<style:header-first style:display="false"/>
<style:footer>
<text:p><text:span text:style-name="T1">Page </text:span><text:span text:style-name="T1"><text:page-number>1</text:page-number></text:span></text:p>
</style:footer>
<style:footer-left style:display="false"/>
<style:footer-first style:display="false"/>
</style:master-page>
</office:master-styles>
<office:body>
<office:spreadsheet>
<table:calculation-settings table:case-sensitive="false" table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true">
<table:iteration table:maximum-difference="0.0001"/>
</table:calculation-settings>
<table:table table:name="Vertical" table:style-name="ta1">
<office:forms form:automatic-focus="false" form:apply-design-mode="false"/>
<table:table-column table:style-name="co1" table:default-cell-style-name="ce6"/>
<table:table-column table:style-name="co2" table:default-cell-style-name="ce6"/>
<table:table-column table:style-name="co3" table:number-columns-repeated="6" table:default-cell-style-name="ce6"/>
<table:table-column table:style-name="co4" table:number-columns-repeated="16368" table:default-cell-style-name="ce6"/>
<table:table-column table:style-name="co5" table:number-columns-repeated="6" table:default-cell-style-name="Default"/>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce15" office:value-type="string" calcext:value-type="string">
<text:p>Name</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce21" office:value-type="string" calcext:value-type="string">
<text:p>Sales</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce2" office:value-type="string" calcext:value-type="string">
<text:p>Alice</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce8" office:value-type="float" office:value="21" calcext:value-type="float">
<text:p>21</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce2" office:value-type="string" calcext:value-type="string">
<text:p>Bärbel</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce8" office:value-type="float" office:value="23" calcext:value-type="float">
<text:p>23</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce2" office:value-type="string" calcext:value-type="string">
<text:p>Barbie</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce8" office:value-type="float" office:value="9" calcext:value-type="float">
<text:p>9</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce3" office:value-type="string" calcext:value-type="string">
<text:p>Inés</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce8" office:value-type="float" office:value="34" calcext:value-type="float">
<text:p>34</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce2" office:value-type="string" calcext:value-type="string">
<text:p>Inge</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce8" office:value-type="float" office:value="23" calcext:value-type="float">
<text:p>23</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce2" office:value-type="string" calcext:value-type="string">
<text:p>John</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce8" office:value-type="float" office:value="12" calcext:value-type="float">
<text:p>12</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce2" office:value-type="string" calcext:value-type="string">
<text:p>Judy</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce8" office:value-type="float" office:value="15" calcext:value-type="float">
<text:p>15</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce2" office:value-type="string" calcext:value-type="string">
<text:p>Mary</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce8" office:value-type="float" office:value="17" calcext:value-type="float">
<text:p>17</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce4" office:value-type="string" calcext:value-type="string">
<text:p>Tom</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce9" office:value-type="float" office:value="31" calcext:value-type="float">
<text:p>31</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:style-name="ce5"/>
<table:table-cell table:style-name="ce10" table:formula="of:=SUBTOTAL(109;[$Vertical.$B$2:.$B$10])" office:value-type="float" office:value="185" calcext:value-type="float">
<text:p>185</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="16380"/>
</table:table-row>
<table:table-row table:style-name="ro1" table:number-rows-repeated="8">
<table:table-cell table:number-columns-repeated="16382"/>
</table:table-row>
<table:table-row table:style-name="ro2" table:number-rows-repeated="1048556">
<table:table-cell table:number-columns-repeated="16382"/>
</table:table-row>
<table:table-row table:style-name="ro2">
<table:table-cell table:number-columns-repeated="16382"/>
</table:table-row>
</table:table>
<table:named-expressions/>
<table:database-ranges>
<table:database-range table:name="myData" table:target-range-address="Vertical.A1:Vertical.B11"/>
</table:database-ranges>
</office:spreadsheet>
</office:body>
</office:document>

View file

@ -0,0 +1,119 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
// core, please keep it alphabetically ordered
#include <comphelper/configuration.hxx>
#include "helper/qahelper.hxx"
#include <officecfg/Office/Common.hxx>
#include <test/unoapi_test.hxx>
#include <unotools/saveopt.hxx>
// API, please keep it alphabetically ordered
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/sheet/XDatabaseRange.hpp>
#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
using namespace css;
using namespace css::uno;
/* Implementation of Filters test, volume 5*/
class ScFiltersTest5 : public ScModelTestBase
{
public:
ScFiltersTest5()
: ScModelTestBase(u"sc/qa/unit/data"_ustr)
{
}
};
CPPUNIT_TEST_FIXTURE(ScFiltersTest5, testTdf162963)
{
//tests xlsx -> ods -> ods of property "TotalsRow"
createScDoc("xlsx/tdf162963_TableWithTotalsEnabled.xlsx");
constexpr OUString sDBName(u"myData"_ustr);
constexpr OUString sPropName(u"TotalsRow"_ustr);
// Make sure the database range "myData" has TotalsRow TRUE after import from xlsx.
{
uno::Reference<sheet::XSpreadsheetDocument> xDoc(mxComponent, UNO_QUERY_THROW);
uno::Reference<beans::XPropertySet> xDocPropSet(xDoc, UNO_QUERY_THROW);
uno::Reference<container::XNameAccess> xNameAccess(
xDocPropSet->getPropertyValue(u"DatabaseRanges"_ustr), UNO_QUERY_THROW);
uno::Reference<beans::XPropertySet> xDBRangePropSet(xNameAccess->getByName(sDBName),
UNO_QUERY_THROW);
bool bTotalsRow = false;
xDBRangePropSet->getPropertyValue(sPropName) >>= bTotalsRow;
CPPUNIT_ASSERT_MESSAGE("xlsx-import", bTotalsRow);
}
// Make sure TotalsRow is still TRUE after save to ods and reload.
// The error was, that the property "TotalsRow" was not written to ods at all.
// With fix it is written as calcext:contains-footer.
{
saveAndReload(u"calc8"_ustr);
uno::Reference<sheet::XSpreadsheetDocument> xDoc(mxComponent, UNO_QUERY_THROW);
uno::Reference<beans::XPropertySet> xDocPropSet(xDoc, UNO_QUERY_THROW);
uno::Reference<container::XNameAccess> xNameAccess(
xDocPropSet->getPropertyValue(u"DatabaseRanges"_ustr), UNO_QUERY_THROW);
uno::Reference<beans::XPropertySet> xDBRangePropSet(xNameAccess->getByName(sDBName),
UNO_QUERY_THROW);
bool bTotalsRow = true;
xDBRangePropSet->getPropertyValue(sPropName) >>= bTotalsRow;
CPPUNIT_ASSERT_MESSAGE("save ods, reload", bTotalsRow);
}
}
CPPUNIT_TEST_FIXTURE(ScFiltersTest5, testTdf162963_ODF)
{
// Verify, that calcext:contains-footer is only written in extended file format versions.
// The parameter in DefaultVersion::set need to be adapted, when attribute contains-footer
// is included in ODF strict, see issue OFFICE-4169 at OASIS.
createScDoc("fods/tdf162963_DatabaseRange.fods");
// enable TotalsRow
uno::Reference<sheet::XSpreadsheetDocument> xDoc(mxComponent, UNO_QUERY_THROW);
uno::Reference<beans::XPropertySet> xDocPropSet(xDoc, UNO_QUERY_THROW);
uno::Reference<container::XNameAccess> xNameAccess(
xDocPropSet->getPropertyValue(u"DatabaseRanges"_ustr), UNO_QUERY_THROW);
uno::Reference<beans::XPropertySet> xDBRangePropSet(xNameAccess->getByName(u"myData"_ustr),
UNO_QUERY_THROW);
xDBRangePropSet->setPropertyValue(u"TotalsRow"_ustr, uno::Any(true));
// Backup original ODF default version
const SvtSaveOptions::ODFDefaultVersion nCurrentODFVersion(GetODFDefaultVersion());
// Save to ODF 1.3 strict. Make sure attribute is not written.
// Adapt to ODF 1.4 strict, when it is available.
SetODFDefaultVersion(SvtSaveOptions::ODFDefaultVersion::ODFVER_013);
save(u"calc8"_ustr); // this saves to .ods not to .fods
xmlDocUniquePtr pXmlDoc = parseExport(u"content.xml"_ustr);
assertXPath(pXmlDoc,
"/office:document-content/office:body/office:spreadsheet/"
"table:database-ranges/table:database-range/contains-footer"_ostr,
0);
// Save to ODF_LATEST which is currently (Sep 2024) ODF 1.3 extended.
// Adapt to a concrete version when attribute contains-footer is availabe in ODF strict.
// Make sure attribute is written in calcext namespace
SetODFDefaultVersion(SvtSaveOptions::ODFDefaultVersion::ODFVER_LATEST);
save(u"calc8"_ustr);
pXmlDoc = parseExport(u"content.xml"_ustr);
assertXPath(pXmlDoc,
"/office:document-content/office:body/office:spreadsheet/"
"table:database-ranges/table:database-range[@calcext:contains-footer='true']"_ostr);
// Set back to original ODF default version.
SetODFDefaultVersion(nCurrentODFVersion);
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View file

@ -423,7 +423,7 @@ void ScDBData::GetQueryParam( ScQueryParam& rQueryParam ) const
rQueryParam.nTab = nTable;
rQueryParam.bByRow = bByRow;
rQueryParam.bHasHeader = bHasHeader;
/* TODO: add Totals to ScQueryParam? */
rQueryParam.bHasTotals = bHasTotals;
}
void ScDBData::SetQueryParam(const ScQueryParam& rQueryParam)

View file

@ -68,6 +68,7 @@ ScQueryParamBase::const_iterator ScQueryParamBase::end() const
ScQueryParamBase::ScQueryParamBase() :
eSearchType(utl::SearchParam::SearchType::Normal),
bHasHeader(true),
bHasTotals(false),
bByRow(true),
bInplace(true),
bCaseSens(false),
@ -78,9 +79,9 @@ ScQueryParamBase::ScQueryParamBase() :
}
ScQueryParamBase::ScQueryParamBase(const ScQueryParamBase& r) :
eSearchType(r.eSearchType), bHasHeader(r.bHasHeader), bByRow(r.bByRow), bInplace(r.bInplace),
bCaseSens(r.bCaseSens), bDuplicate(r.bDuplicate), mbRangeLookup(r.mbRangeLookup),
m_Entries(r.m_Entries)
eSearchType(r.eSearchType), bHasHeader(r.bHasHeader), bHasTotals(r.bHasTotals), bByRow(r.bByRow),
bInplace(r.bInplace), bCaseSens(r.bCaseSens), bDuplicate(r.bDuplicate),
mbRangeLookup(r.mbRangeLookup), m_Entries(r.m_Entries)
{
}
@ -90,6 +91,7 @@ ScQueryParamBase& ScQueryParamBase::operator=(const ScQueryParamBase& r)
{
eSearchType = r.eSearchType;
bHasHeader = r.bHasHeader;
bHasTotals = r.bHasTotals;
bByRow = r.bByRow;
bInplace = r.bInplace;
bCaseSens = r.bCaseSens;
@ -337,7 +339,7 @@ void ScQueryParam::Clear()
nRow1=nRow2 = 0;
nTab = SCTAB_MAX;
eSearchType = utl::SearchParam::SearchType::Normal;
bHasHeader = bCaseSens = false;
bHasHeader = bHasTotals = bCaseSens = false;
bInplace = bByRow = bDuplicate = true;
for (auto & itr : m_Entries)
@ -379,6 +381,7 @@ bool ScQueryParam::operator==( const ScQueryParam& rOther ) const
&& (nRow2 == rOther.nRow2)
&& (nTab == rOther.nTab)
&& (bHasHeader == rOther.bHasHeader)
&& (bHasTotals == rOther.bHasTotals)
&& (bByRow == rOther.bByRow)
&& (bInplace == rOther.bInplace)
&& (bCaseSens == rOther.bCaseSens)

View file

@ -246,6 +246,9 @@ private:
rData.GetQueryParam(aQueryParam);
if (!aQueryParam.bHasHeader)
mrExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONTAINS_HEADER, XML_FALSE);
if (mrExport.getSaneDefaultVersion() & SvtSaveOptions::ODFSVER_EXTENDED)
if (aQueryParam.bHasTotals)
mrExport.AddAttribute(XML_NAMESPACE_CALC_EXT, XML_CONTAINS_FOOTER, XML_TRUE);
ScSortParam aSortParam;
rData.GetSortParam(aSortParam);

View file

@ -104,6 +104,7 @@ ScXMLDatabaseRangeContext::ScXMLDatabaseRangeContext( ScXMLImport& rImport,
bSubTotalsAscending(true),
bFilterConditionSourceRange(false),
bHasHeader(true),
bHasFooter(false),
bByRow(true),
meRangeType(ScDBCollection::GlobalNamed)
{
@ -150,6 +151,13 @@ ScXMLDatabaseRangeContext::ScXMLDatabaseRangeContext( ScXMLImport& rImport,
mpQueryParam->bHasHeader = bHasHeader;
}
break;
case XML_ELEMENT( TABLE, XML_CONTAINS_FOOTER ):
case XML_ELEMENT( CALC_EXT, XML_CONTAINS_FOOTER ):
{
bHasFooter = IsXMLToken( aIter, XML_TRUE );
mpQueryParam->bHasTotals = bHasFooter;
}
break;
case XML_ELEMENT( TABLE, XML_DISPLAY_FILTER_BUTTONS ):
{
bAutoFilter = IsXMLToken( aIter, XML_TRUE );
@ -247,7 +255,7 @@ std::unique_ptr<ScDBData> ScXMLDatabaseRangeContext::ConvertToDBData(const OUStr
ScDocument* pDoc = GetScImport().GetDocument();
::std::unique_ptr<ScDBData> pData(
new ScDBData(rName, maRange.aStart.Tab(), maRange.aStart.Col(), maRange.aStart.Row(), maRange.aEnd.Col(), maRange.aEnd.Row(), bByRow, bHasHeader));
new ScDBData(rName, maRange.aStart.Tab(), maRange.aStart.Col(), maRange.aStart.Row(), maRange.aEnd.Col(), maRange.aEnd.Row(), bByRow, bHasHeader, bHasFooter));
pData->SetAutoFilter(bAutoFilter);
pData->SetKeepFmt(bKeepFormats);

View file

@ -81,6 +81,7 @@ class ScXMLDatabaseRangeContext : public ScXMLImportContext
bool bSubTotalsAscending;
bool bFilterConditionSourceRange;
bool bHasHeader;
bool bHasFooter; // UNO TotalsRow, ODF contains-footer
bool bByRow;
ScDBCollection::RangeType meRangeType;

View file

@ -1750,6 +1750,7 @@ void ScDatabaseRangeObj::SetQueryParam(const ScQueryParam& rQueryParam)
ScDBData aNewData( *pData );
aNewData.SetQueryParam(aParam);
aNewData.SetHeader(aParam.bHasHeader); // not in ScDBData::SetQueryParam
aNewData.SetTotals(aParam.bHasTotals); // not in ScDBData::SetQueryParam
ScDBDocFunc aFunc(*pDocShell);
aFunc.ModifyDBData(aNewData);
}

View file

@ -3970,4 +3970,13 @@ xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.
</rng:attribute>
</rng:optional>
</rng:define>
<!-- OFFICE-4169, bug tdf#162963 -->
<rng:define name="table-database-range-attlist" combine="interleave">
<rng:optional>
<rng:attribute name="calcext:contains-footer">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
</rng:grammar>

View file

@ -519,6 +519,7 @@ namespace xmloff::token {
TOKEN( "consolidation", XML_CONSOLIDATION ),
TOKEN( "constant", XML_CONSTANT ),
TOKEN( "contains-error", XML_CONTAINS_ERROR ),
TOKEN( "contains-footer", XML_CONTAINS_FOOTER ),
TOKEN( "contains-header", XML_CONTAINS_HEADER ),
TOKEN( "content", XML_CONTENT ),
TOKEN( "content-validation", XML_CONTENT_VALIDATION ),

View file

@ -424,6 +424,7 @@ consecutive-numbering
consolidation
constant
contains-error
contains-footer
contains-header
content
content-validation