You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by li...@apache.org on 2012/09/25 07:51:12 UTC
svn commit: r1389716 - in /incubator/ooo/trunk/main/sc/source/filter:
excel/xipivot.cxx excel/xlpivot.cxx inc/xipivot.hxx inc/xlpivot.hxx
Author: lijiany
Date: Tue Sep 25 05:51:12 2012
New Revision: 1389716
URL: http://svn.apache.org/viewvc?rev=1389716&view=rev
Log:
#121071#: [Regression]Item lists are incorrectly imported into AOO in DataPilot table
Reported by: Terry Yang
Reviewed by: sunying
patched by: Jianyuan Li
Modified:
incubator/ooo/trunk/main/sc/source/filter/excel/xipivot.cxx
incubator/ooo/trunk/main/sc/source/filter/excel/xlpivot.cxx
incubator/ooo/trunk/main/sc/source/filter/inc/xipivot.hxx
incubator/ooo/trunk/main/sc/source/filter/inc/xlpivot.hxx
Modified: incubator/ooo/trunk/main/sc/source/filter/excel/xipivot.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/filter/excel/xipivot.cxx?rev=1389716&r1=1389715&r2=1389716&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/filter/excel/xipivot.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/filter/excel/xipivot.cxx Tue Sep 25 05:51:12 2012
@@ -853,17 +853,20 @@ bool XclImpPivotCache::IsRefreshOnLoad()
// Pivot table
// ============================================================================
-XclImpPTItem::XclImpPTItem( const XclImpPCField* pCacheField ) :
- mpCacheField( pCacheField )
+XclImpPTItem::XclImpPTItem( const XclImpPTField& rPTField ) :
+ mrPTField( rPTField )
{
}
const String* XclImpPTItem::GetItemName() const
{
- if( mpCacheField )
+ if( const XclImpPCField * mpCacheField = mrPTField.GetCacheField() )
+ {
if( const XclImpPCItem* pCacheItem = mpCacheField->GetItem( maItemInfo.mnCacheIdx ) )
- //! TODO: use XclImpPCItem::ConvertToText(), if all conversions are available
- return pCacheItem->IsEmpty() ? &String::EmptyString() : pCacheItem->GetText();
+ {
+ return pCacheItem->GetItemName();
+ }
+ }
return 0;
}
@@ -948,7 +951,7 @@ void XclImpPTField::ReadSxvdex( XclImpSt
void XclImpPTField::ReadSxvi( XclImpStream& rStrm )
{
- XclImpPTItemRef xItem( new XclImpPTItem( GetCacheField() ) );
+ XclImpPTItemRef xItem( new XclImpPTItem( *this ) );
maItems.push_back( xItem );
xItem->ReadSxvi( rStrm );
}
Modified: incubator/ooo/trunk/main/sc/source/filter/excel/xlpivot.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/filter/excel/xlpivot.cxx?rev=1389716&r1=1389715&r2=1389716&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/filter/excel/xlpivot.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/filter/excel/xlpivot.cxx Tue Sep 25 05:51:12 2012
@@ -158,6 +158,37 @@ const bool* XclPCItem::GetBool() const
return (meType == EXC_PCITEM_BOOL) ? &mbValue : 0;
}
+const String* XclPCItem::GetItemName() const
+{
+ //! TODO: use XclImpPCItem::ConvertToText(), if all conversions are available
+ if( EXC_PCITEM_BOOL == this->GetType() )
+ {
+ static String szBool[] = { String::CreateFromAscii("FALSE"), String::CreateFromAscii("TRUE") };
+
+ if( const bool* pBool = this->GetBool() )
+ {
+ return &(!!*pBool)[szBool];
+ }
+ else
+ {
+ return &0[szBool];
+ }
+ }
+ else
+ {
+ if( this->IsEmpty())
+ {
+ static String aEmptyString( String::EmptyString() );
+ return &aEmptyString;
+ }
+ else
+ return this->GetText();
+ }
+
+ return NULL;
+}
+
+
// Field settings =============================================================
XclPCFieldInfo::XclPCFieldInfo() :
Modified: incubator/ooo/trunk/main/sc/source/filter/inc/xipivot.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/filter/inc/xipivot.hxx?rev=1389716&r1=1389715&r2=1389716&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/filter/inc/xipivot.hxx (original)
+++ incubator/ooo/trunk/main/sc/source/filter/inc/xipivot.hxx Tue Sep 25 05:51:12 2012
@@ -199,13 +199,14 @@ typedef ScfRef< XclImpPivotCache > XclIm
// ============================================================================
class XclImpPivotTable;
+class XclImpPTField;
// ============================================================================
class XclImpPTItem
{
public:
- explicit XclImpPTItem( const XclImpPCField* pCacheField );
+ explicit XclImpPTItem( const XclImpPTField & );
/** Returns the internal name of the item or 0, if no name could be found. */
const String* GetItemName() const;
@@ -220,7 +221,8 @@ public:
private:
XclPTItemInfo maItemInfo; /// General data for this item.
- const XclImpPCField* mpCacheField; /// Corresponding pivot cache field.
+ //const XclImpPCField* mpCacheField; /// Corresponding pivot cache field.
+ const XclImpPTField & mrPTField;
};
typedef ScfRef< XclImpPTItem > XclImpPTItemRef;
Modified: incubator/ooo/trunk/main/sc/source/filter/inc/xlpivot.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/filter/inc/xlpivot.hxx?rev=1389716&r1=1389715&r2=1389716&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/filter/inc/xlpivot.hxx (original)
+++ incubator/ooo/trunk/main/sc/source/filter/inc/xlpivot.hxx Tue Sep 25 05:51:12 2012
@@ -447,6 +447,7 @@ public:
const sal_uInt16* GetError() const;
/** Returns pointer to Boolean value, if the item type is 'boolean', otherwise 0. */
const bool* GetBool() const;
+ const String * GetItemName() const;
private:
XclPCItemType meType; /// Type of the item.