summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@suse.com>2012-02-27 23:41:11 -0500
committerKohei Yoshida <kohei.yoshida@suse.com>2012-02-27 23:47:00 -0500
commitde6b91f57b0c5621791bea7b7f24de5b7b40e666 (patch)
treeb531721df44346639c4e9cca609b6cc0bfa07e0c /sc
parent5c699635cecc9877632de5f3dc07d1942c5b6416 (diff)
Correctly import ref type (aka display type) of data fields.
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/excel/xipivot.cxx60
1 files changed, 30 insertions, 30 deletions
diff --git a/sc/source/filter/excel/xipivot.cxx b/sc/source/filter/excel/xipivot.cxx
index 7284ba14edd0..0aff093aae79 100644
--- a/sc/source/filter/excel/xipivot.cxx
+++ b/sc/source/filter/excel/xipivot.cxx
@@ -1037,23 +1037,23 @@ void XclImpPTField::ConvertDataField( ScDPSaveData& rSaveData ) const
{
OSL_ENSURE( maFieldInfo.mnAxes & EXC_SXVD_AXIS_DATA, "XclImpPTField::ConvertDataField - no data field" );
OSL_ENSURE( !maDataInfoList.empty(), "XclImpPTField::ConvertDataField - no data field info" );
- if( !maDataInfoList.empty() )
- {
- const String& rFieldName = GetFieldName();
- if( rFieldName.Len() > 0 )
- {
- XclPTDataFieldInfoList::const_iterator aIt = maDataInfoList.begin(), aEnd = maDataInfoList.end();
+ if (maDataInfoList.empty())
+ return;
+
+ rtl::OUString aFieldName = GetFieldName();
+ if (aFieldName.isEmpty())
+ return;
- ScDPSaveDimension& rSaveDim = *rSaveData.GetNewDimensionByName( rFieldName );
- ConvertDataField( rSaveDim, *aIt );
+ XclPTDataFieldInfoList::const_iterator aIt = maDataInfoList.begin(), aEnd = maDataInfoList.end();
- // multiple data fields -> clone dimension
- for( ++aIt; aIt != aEnd; ++aIt )
- {
- ScDPSaveDimension& rDupDim = rSaveData.DuplicateDimension( rSaveDim );
- ConvertDataFieldInfo( rDupDim, *aIt );
- }
- }
+ ScDPSaveDimension& rSaveDim = *rSaveData.GetNewDimensionByName(aFieldName);
+ ConvertDataField( rSaveDim, *aIt );
+
+ // multiple data fields -> clone dimension
+ for( ++aIt; aIt != aEnd; ++aIt )
+ {
+ ScDPSaveDimension& rDupDim = rSaveData.DuplicateDimension( rSaveDim );
+ ConvertDataFieldInfo( rDupDim, *aIt );
}
}
@@ -1163,31 +1163,31 @@ void XclImpPTField::ConvertDataField( ScDPSaveDimension& rSaveDim, const XclPTDa
void XclImpPTField::ConvertDataFieldInfo( ScDPSaveDimension& rSaveDim, const XclPTDataFieldInfo& rDataInfo ) const
{
// visible name
- if (const rtl::OUString* pVisName = rDataInfo.GetVisName())
- if (!pVisName->isEmpty())
- rSaveDim.SetLayoutName( *pVisName );
+ const rtl::OUString* pVisName = rDataInfo.GetVisName();
+ if (pVisName && !pVisName->isEmpty())
+ rSaveDim.SetLayoutName(*pVisName);
// aggregation function
rSaveDim.SetFunction( static_cast< sal_uInt16 >( rDataInfo.GetApiAggFunc() ) );
// result field reference
sal_Int32 nRefType = rDataInfo.GetApiRefType();
- if( nRefType != ::com::sun::star::sheet::DataPilotFieldReferenceType::NONE )
+ DataPilotFieldReference aFieldRef;
+ aFieldRef.ReferenceType = nRefType;
+ const XclImpPTField* pRefField = mrPTable.GetField(rDataInfo.mnRefField);
+ if (pRefField)
{
- DataPilotFieldReference aFieldRef;
- aFieldRef.ReferenceType = nRefType;
-
- if( const XclImpPTField* pRefField = mrPTable.GetField( rDataInfo.mnRefField ) )
+ aFieldRef.ReferenceField = pRefField->GetFieldName();
+ aFieldRef.ReferenceItemType = rDataInfo.GetApiRefItemType();
+ if (aFieldRef.ReferenceItemType == sheet::DataPilotFieldReferenceItemType::NAMED)
{
- aFieldRef.ReferenceField = pRefField->GetFieldName();
- aFieldRef.ReferenceItemType = rDataInfo.GetApiRefItemType();
- if( aFieldRef.ReferenceItemType == ::com::sun::star::sheet::DataPilotFieldReferenceItemType::NAMED )
- if (const rtl::OUString* pRefItemName = pRefField->GetItemName(rDataInfo.mnRefItem))
- aFieldRef.ReferenceItemName = *pRefItemName;
+ const rtl::OUString* pRefItemName = pRefField->GetItemName(rDataInfo.mnRefItem);
+ if (pRefItemName)
+ aFieldRef.ReferenceItemName = *pRefItemName;
}
-
- rSaveDim.SetReferenceValue( &aFieldRef );
}
+
+ rSaveDim.SetReferenceValue(&aFieldRef);
}
void XclImpPTField::ConvertItems( ScDPSaveDimension& rSaveDim ) const