User: hr Date: 2007-11-02 11:25:07+0000 Modified: dba/reportdesign/source/filter/xml/xmlExport.cxx
Log: INTEGRATION: CWS dba231a_SRC680 (1.5.28); FILE MERGED 2007/09/26 12:01:16 oj 1.5.28.1: #i79167# export images correctly 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.5&r2=1.6 Delta lines: +33 -16 --------------------- --- xmlExport.cxx 2007-08-06 10:47:23+0000 1.5 +++ xmlExport.cxx 2007-11-02 11:25:04+0000 1.6 @@ -994,6 +994,7 @@ { Reference<XReportControlModel> xReportElement(xElement,uno::UNO_QUERY); Reference<XReportDefinition> xReportDefinition(xElement,uno::UNO_QUERY); + Reference< XImageControl > xImage(xElement,uno::UNO_QUERY); Reference<XSection> xSection(xElement,uno::UNO_QUERY); XMLTokenEnum eToken = XML_SECTION; @@ -1010,15 +1011,14 @@ else if ( xElement->supportsService(SERVICE_IMAGECONTROL) ) { eToken = XML_IMAGE; - Reference< XImageControl > xProp(xElement,uno::UNO_QUERY); - ::rtl::OUString sTargetLocation = xProp->getImageURL(); + ::rtl::OUString sTargetLocation = xImage->getImageURL(); if ( sTargetLocation.getLength() ) { sTargetLocation = GetRelativeReference(sTargetLocation); AddAttribute(XML_NAMESPACE_FORM, XML_IMAGE_DATA,sTargetLocation); } bExportData = sal_True; - if ( xProp->getScaleImage() ) + if ( xImage->getScaleImage() ) AddAttribute(XML_NAMESPACE_REPORT, XML_SCALE, XML_TRUE ); } else if ( xReportDefinition.is() ) @@ -1078,7 +1078,7 @@ } } else if ( eToken == XML_IMAGE ) - AddAttribute(XML_NAMESPACE_REPORT, XML_PRESERVE_IRI, XML_TRUE ); + AddAttribute(XML_NAMESPACE_REPORT, XML_PRESERVE_IRI, xImage->getPreserveIRI() ? XML_TRUE : XML_FALSE ); } if ( !bPageSet ) @@ -1095,6 +1095,12 @@ else if ( eToken == XML_SUB_DOCUMENT ) { exportMasterDetailFields(xReportDefinition); + SvXMLElementExport aOfficeElement( *this, XML_NAMESPACE_OFFICE, XML_BODY,sal_True, sal_True ); + SvXMLElementExport aElem( *this, sal_True, + XML_NAMESPACE_OFFICE, XML_REPORT, + sal_True, sal_True ); + + exportReportAttributes(xReportDefinition); exportReport(xReportDefinition); } else if ( xSection.is() ) @@ -1160,6 +1166,8 @@ ::rtl::OUString ORptExport::convertFormula(const ::rtl::OUString& _sFormula) { ::rtl::OUString sFormula = _sFormula; + if ( _sFormula.equalsAsciiL("rpt:",4) ) + sFormula = ::rtl::OUString(); //sal_Int32 nLength = _sFormula.getLength(); //if ( nLength ) //{ @@ -1180,7 +1188,7 @@ // ----------------------------------------------------------------------------- bool ORptExport::exportFormula(enum ::xmloff::token::XMLTokenEnum eName,const ::rtl::OUString& _sFormula) { - ::rtl::OUString sFieldData = convertFormula(_sFormula); + const ::rtl::OUString sFieldData = convertFormula(_sFormula); static const ::rtl::OUString s_sPageNumber(RTL_CONSTASCII_USTRINGPARAM("PageNumber()")); static const ::rtl::OUString s_sPageCount(RTL_CONSTASCII_USTRINGPARAM("PageCount()")); sal_Int32 nPageNumberIndex = sFieldData.indexOf(s_sPageNumber); @@ -1434,30 +1442,38 @@ void ORptExport::SetBodyAttributes() { Reference<XReportDefinition> xProp(getReportDefinition()); - if ( xProp.is() ) + exportReportAttributes(xProp); +} +// ----------------------------------------------------------------------------- +void ORptExport::exportReportAttributes(const Reference<XReportDefinition>& _xReport) +{ + if ( _xReport.is() ) { ::rtl::OUStringBuffer sValue; const SvXMLEnumMapEntry* aXML_CommnadTypeEnumMap = OXMLHelper::GetCommandTypeOptions(); - if ( SvXMLUnitConverter::convertEnum( sValue, static_cast<sal_uInt16>(xProp->getCommandType()),aXML_CommnadTypeEnumMap ) ) + if ( SvXMLUnitConverter::convertEnum( sValue, static_cast<sal_uInt16>(_xReport->getCommandType()),aXML_CommnadTypeEnumMap ) ) AddAttribute(XML_NAMESPACE_REPORT, XML_COMMAND_TYPE,sValue.makeStringAndClear()); - ::rtl::OUString sComamnd = xProp->getCommand(); + ::rtl::OUString sComamnd = _xReport->getCommand(); if ( sComamnd.getLength() ) AddAttribute(XML_NAMESPACE_REPORT, XML_COMMAND, sComamnd); - ::rtl::OUString sFilter( xProp->getFilter() ); + ::rtl::OUString sFilter( _xReport->getFilter() ); if ( sFilter.getLength() ) AddAttribute( XML_NAMESPACE_REPORT, XML_FILTER, sFilter ); - AddAttribute(XML_NAMESPACE_OFFICE, XML_MIMETYPE,xProp->getMimeType()); + AddAttribute(XML_NAMESPACE_OFFICE, XML_MIMETYPE,_xReport->getMimeType()); - sal_Bool bEscapeProcessing( xProp->getEscapeProcessing() ); + sal_Bool bEscapeProcessing( _xReport->getEscapeProcessing() ); if ( !bEscapeProcessing ) AddAttribute( XML_NAMESPACE_REPORT, XML_ESCAPE_PROCESSING, ::xmloff::token::GetXMLToken( XML_FALSE ) ); - ::rtl::OUString sName = xProp->getCaption(); + ::rtl::OUString sName = _xReport->getCaption(); if ( sName.getLength() ) AddAttribute(XML_NAMESPACE_OFFICE, XML_CAPTION,sName); + sName = _xReport->getName(); + if ( sName.getLength() ) + AddAttribute(XML_NAMESPACE_DRAW, XML_NAME,sName); } } // ----------------------------------------------------------------------------- @@ -1665,6 +1681,7 @@ void ORptExport::exportShapes(const Reference< XSection>& _xSection,bool _bAddParagraph) { UniReference< XMLShapeExport > xShapeExport = GetShapeExport(); + xShapeExport->seekShapes(_xSection.get()); const sal_Int32 nCount = _xSection->getCount(); awt::Point aRefPoint; aRefPoint.X = rptui::getStyleProperty<sal_Int32>(_xSection->getReportDefinition(),PROPERTY_LEFTMARGIN); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
