diff options
Diffstat (limited to 'sc/source/core/data/dpobject.cxx')
-rw-r--r-- | sc/source/core/data/dpobject.cxx | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx index 3d9f5af641fb..f9344aae4561 100644 --- a/sc/source/core/data/dpobject.cxx +++ b/sc/source/core/data/dpobject.cxx @@ -1321,24 +1321,24 @@ namespace { class FindByName : std::unary_function<const ScDPSaveDimension*, bool> { - OUString maName; + OUString maName; // must be all uppercase. public: FindByName(const OUString& rName) : maName(rName) {} bool operator() (const ScDPSaveDimension* pDim) const { // Layout name takes precedence. const OUString* pLayoutName = pDim->GetLayoutName(); - if (pLayoutName && *pLayoutName == maName) + if (pLayoutName && ScGlobal::pCharClass->uppercase(*pLayoutName) == maName) return true; sheet::GeneralFunction eGenFunc = static_cast<sheet::GeneralFunction>(pDim->GetFunction()); ScSubTotalFunc eFunc = ScDPUtil::toSubTotalFunc(eGenFunc); OUString aSrcName = ScDPUtil::getSourceDimensionName(pDim->GetName()); OUString aFuncName = ScDPUtil::getDisplayedMeasureName(aSrcName, eFunc); - if (maName == aFuncName) + if (maName == ScGlobal::pCharClass->uppercase(aFuncName)) return true; - return maName == aSrcName; + return maName == ScGlobal::pCharClass->uppercase(aSrcName); } }; @@ -1382,7 +1382,9 @@ double ScDPObject::GetPivotData(const OUString& rDataFieldName, std::vector<shee return fRet; std::vector<const ScDPSaveDimension*>::iterator it = std::find_if( - aDataDims.begin(), aDataDims.end(), FindByName(rDataFieldName)); + aDataDims.begin(), aDataDims.end(), + FindByName(ScGlobal::pCharClass->uppercase(rDataFieldName))); + if (it == aDataDims.end()) return fRet; |