User: rt Date: 2008-01-29 13:45:03+0000 Modified: dba/reportdesign/source/filter/xml/xmlExport.cxx
Log: INTEGRATION: CWS reportdesign02 (1.5.36); FILE MERGED 2008/01/08 06:05:31 oj 1.5.36.5: #i77039# export numberformat of formatcondition from parent formattedfield 2007/12/20 13:15:26 oj 1.5.36.4: merge conflict resolved 2007/12/20 08:42:12 oj 1.5.36.3: #i83193# merge from reportdesign03 2007/12/20 07:48:16 oj 1.5.36.2: RESYNC: (1.5-1.6); FILE MERGED 2007/10/30 14:37:45 oj 1.5.36.1: #i80173# surround shapes only with one text-p File Changes: Directory: /dba/reportdesign/source/filter/xml/ =============================================== File [changed]: xmlExport.cxx Url: http://dba.openoffice.org/source/browse/dba/reportdesign/source/filter/xml/xmlExport.cxx?r1=1.6&r2=1.7 Delta lines: +64 -60 --------------------- --- xmlExport.cxx 2007-11-02 11:25:04+0000 1.6 +++ xmlExport.cxx 2008-01-29 13:45:00+0000 1.7 @@ -788,11 +788,11 @@ // ----------------------------------------------------------------------------- void ORptExport::exportReportComponentAutoStyles(const Reference<XSection>& _xProp) { - sal_Int32 nCount = _xProp->getCount(); + const sal_Int32 nCount = _xProp->getCount(); for (sal_Int32 i = 0 ; i< nCount ; ++i) { - Reference<XReportComponent> xReportElement(_xProp->getByIndex(i),uno::UNO_QUERY); - Reference< report::XShape > xShape(xReportElement,uno::UNO_QUERY); + const Reference<XReportComponent> xReportElement(_xProp->getByIndex(i),uno::UNO_QUERY); + const Reference< report::XShape > xShape(xReportElement,uno::UNO_QUERY); if ( xShape.is() ) { UniReference< XMLShapeExport > xShapeExport = GetShapeExport(); @@ -813,7 +813,7 @@ for (sal_Int32 j = 0; j < nFormatCount ; ++j) { uno::Reference< report::XFormatCondition > xCond(xFormattedField->getByIndex(j),uno::UNO_QUERY); - exportAutoStyle(xCond.get()); + exportAutoStyle(xCond.get(),xFormattedField); } // for (sal_Int32 j = 0; j < nCount ; ++j) } catch(uno::Exception&) @@ -1034,54 +1034,12 @@ { bPageSet = exportFormula(XML_FORMULA,xReportElement->getDataField()); if ( bPageSet ) - { - ::rtl::OUString sFieldData = xReportElement->getDataField(); - static const ::rtl::OUString s_sPageNumber(RTL_CONSTASCII_USTRINGPARAM("PageNumber()")); - static const ::rtl::OUString s_sPageCount(RTL_CONSTASCII_USTRINGPARAM("PageCount()")); - static const ::rtl::OUString s_sReportPrefix(RTL_CONSTASCII_USTRINGPARAM("rpt:")); - static const ::rtl::OUString s_sConcatOperator(RTL_CONSTASCII_USTRINGPARAM("&")); - sFieldData = sFieldData.copy(s_sReportPrefix.getLength(),sFieldData.getLength() - s_sReportPrefix.getLength()); - sal_Int32 nPageNumberIndex = sFieldData.indexOf(s_sPageNumber); - if ( nPageNumberIndex != -1 ) - { - sal_Int32 nIndex = 0; - do - { - ::rtl::OUString sToken = sFieldData.getToken( 0, '&', nIndex ); - sToken = sToken.trim(); - if ( sToken.getLength() ) - { - if ( sToken == s_sPageNumber ) - { - static const ::rtl::OUString s_sCurrent(RTL_CONSTASCII_USTRINGPARAM("current")); - AddAttribute(XML_NAMESPACE_TEXT, XML_SELECT_PAGE, s_sCurrent ); - SvXMLElementExport aPageNumber(*this,XML_NAMESPACE_TEXT, XML_PAGE_NUMBER, sal_False, sal_False); - Characters(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("1"))); - } - else if ( sToken == s_sPageCount ) - { - SvXMLElementExport aPageNumber(*this,XML_NAMESPACE_TEXT, XML_PAGE_COUNT, sal_False, sal_False); - Characters(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("1"))); - } - else - { - - if ( sToken.indexOf('"') == 0 && sToken.lastIndexOf('"') == sToken.getLength()-1 ) - sToken = sToken.copy(1,sToken.getLength()-2); - - sal_Bool bPrevCharIsSpace = sal_False; - GetTextParagraphExport()->exportText(sToken,bPrevCharIsSpace); - } - } - } - while ( nIndex >= 0 ); - } - } + eToken = XML_FIXED_CONTENT; else if ( eToken == XML_IMAGE ) AddAttribute(XML_NAMESPACE_REPORT, XML_PRESERVE_IRI, xImage->getPreserveIRI() ? XML_TRUE : XML_FALSE ); } - if ( !bPageSet ) + //if ( !bPageSet ) { // start <report:eToken> SvXMLElementExport aComponents(*this,XML_NAMESPACE_REPORT, eToken, sal_False, sal_False); @@ -1298,14 +1256,14 @@ return bGroupExported; } // ----------------------------------------------------------------------------- -void ORptExport::exportAutoStyle(XPropertySet* _xProp) +void ORptExport::exportAutoStyle(XPropertySet* _xProp,const Reference<XFormattedField>& _xParentFormattedField) { - uno::Reference<report::XReportControlFormat> xFormat(_xProp,uno::UNO_QUERY); + const uno::Reference<report::XReportControlFormat> xFormat(_xProp,uno::UNO_QUERY); if ( xFormat.is() ) { try { - awt::FontDescriptor aFont = xFormat->getFontDescriptor(); + const awt::FontDescriptor aFont = xFormat->getFontDescriptor(); OSL_ENSURE(aFont.Name.getLength(),"No Font Name !"); GetFontAutoStylePool()->Add(aFont.Name,aFont.StyleName,aFont.Family,aFont.Pitch,aFont.CharSet ); } @@ -1314,7 +1272,7 @@ // not interested in } } - uno::Reference< report::XShape> xShape(_xProp,uno::UNO_QUERY); + const uno::Reference< report::XShape> xShape(_xProp,uno::UNO_QUERY); if ( xShape.is() ) { ::std::vector< XMLPropertyState > aPropertyStates( m_xParaPropMapper->Filter(_xProp) ); @@ -1414,10 +1372,14 @@ } } } - Reference<XFormattedField> xFormattedField(_xProp,uno::UNO_QUERY); - if ( xFormattedField.is() && !aPropertyStates.empty() ) + const Reference<XFormattedField> xFormattedField(_xProp,uno::UNO_QUERY); + if ( (_xParentFormattedField.is() || xFormattedField.is()) && !aPropertyStates.empty() ) { - sal_Int32 nNumberFormat = xFormattedField->getFormatKey(); + sal_Int32 nNumberFormat = 0; + if ( _xParentFormattedField.is() ) + nNumberFormat = _xParentFormattedField->getFormatKey(); + else + nNumberFormat = xFormattedField->getFormatKey(); { sal_Int32 nStyleMapIndex = m_xCellStylesExportPropertySetMapper->getPropertySetMapper()->FindEntryIndex( CTF_RPT_NUMBERFORMAT ); addDataStyle(nNumberFormat); @@ -1663,6 +1625,50 @@ OSL_PRECOND(_xReportElement.is(),"Element is null!"); // start <text:p> SvXMLElementExport aParagraphContent(*this,XML_NAMESPACE_TEXT, XML_P, sal_False, sal_False); + if ( Reference<XFormattedField>(_xReportElement,uno::UNO_QUERY).is() ) + { + ::rtl::OUString sFieldData = _xReportElement->getDataField(); + static const ::rtl::OUString s_sPageNumber(RTL_CONSTASCII_USTRINGPARAM("PageNumber()")); + static const ::rtl::OUString s_sPageCount(RTL_CONSTASCII_USTRINGPARAM("PageCount()")); + static const ::rtl::OUString s_sReportPrefix(RTL_CONSTASCII_USTRINGPARAM("rpt:")); + static const ::rtl::OUString s_sConcatOperator(RTL_CONSTASCII_USTRINGPARAM("&")); + sFieldData = sFieldData.copy(s_sReportPrefix.getLength(),sFieldData.getLength() - s_sReportPrefix.getLength()); + sal_Int32 nPageNumberIndex = sFieldData.indexOf(s_sPageNumber); + if ( nPageNumberIndex != -1 ) + { + sal_Int32 nIndex = 0; + do + { + ::rtl::OUString sToken = sFieldData.getToken( 0, '&', nIndex ); + sToken = sToken.trim(); + if ( sToken.getLength() ) + { + if ( sToken == s_sPageNumber ) + { + static const ::rtl::OUString s_sCurrent(RTL_CONSTASCII_USTRINGPARAM("current")); + AddAttribute(XML_NAMESPACE_TEXT, XML_SELECT_PAGE, s_sCurrent ); + SvXMLElementExport aPageNumber(*this,XML_NAMESPACE_TEXT, XML_PAGE_NUMBER, sal_False, sal_False); + Characters(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("1"))); + } + else if ( sToken == s_sPageCount ) + { + SvXMLElementExport aPageNumber(*this,XML_NAMESPACE_TEXT, XML_PAGE_COUNT, sal_False, sal_False); + Characters(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("1"))); + } + else + { + + if ( sToken.indexOf('"') == 0 && sToken.lastIndexOf('"') == sToken.getLength()-1 ) + sToken = sToken.copy(1,sToken.getLength()-2); + + sal_Bool bPrevCharIsSpace = sal_False; + GetTextParagraphExport()->exportText(sToken,bPrevCharIsSpace); + } + } + } + while ( nIndex >= 0 ); + } + } Reference< XFixedText > xFT(_xReportElement,UNO_QUERY); if ( xFT.is() ) { @@ -1684,17 +1690,15 @@ xShapeExport->seekShapes(_xSection.get()); const sal_Int32 nCount = _xSection->getCount(); awt::Point aRefPoint; + ::std::auto_ptr<SvXMLElementExport> pParagraphContent; + if ( _bAddParagraph ) + pParagraphContent.reset(new SvXMLElementExport(*this,XML_NAMESPACE_TEXT, XML_P, sal_True, sal_False)); aRefPoint.X = rptui::getStyleProperty<sal_Int32>(_xSection->getReportDefinition(),PROPERTY_LEFTMARGIN); for (sal_Int32 i = 0; i < nCount; ++i) { uno::Reference< XShape > xShape(_xSection->getByIndex(i),uno::UNO_QUERY); if ( xShape.is() ) { - ::std::auto_ptr<SvXMLElementExport> pParagraphContent; - if ( _bAddParagraph ) - { - pParagraphContent.reset(new SvXMLElementExport(*this,XML_NAMESPACE_TEXT, XML_P, sal_True, sal_False)); - } AddAttribute( XML_NAMESPACE_TEXT, XML_ANCHOR_TYPE, XML_PARAGRAPH ); xShapeExport->exportShape(xShape.get(),SEF_DEFAULT|SEF_EXPORT_NO_WS,&aRefPoint); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
