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]

Reply via email to