summaryrefslogtreecommitdiff
path: root/sc/source/core/data/dptabres.cxx
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2016-06-06 19:29:18 +0200
committerEike Rathke <erack@redhat.com>2016-06-06 20:22:12 +0000
commitf88f6bcfce233c336c9025d466c5c2fb0b671de3 (patch)
tree4985b09359bd5474ba95d2d9962af894ea2d5ed5 /sc/source/core/data/dptabres.cxx
parent82f93bff42c0ce3b138ca61040c964f42632d000 (diff)
Resolves: tdf#35247 introduce a locale independent numeric field filter
... that tries to match a locale independent query string. Going via string queries is likely only necessary for the ugly alternative "fieldname[member]" syntax, if it is actually unnecessary for the field1,item1,... syntax needs to be evaluated and if so a distinct GetPivotData() function evaluating numeric contraints as well could be introduced. Change-Id: I2c1fc81c1022b0bba5eef8d86c0c815bb6e31f2d Reviewed-on: https://gerrit.libreoffice.org/25975 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc/source/core/data/dptabres.cxx')
-rw-r--r--sc/source/core/data/dptabres.cxx18
1 files changed, 9 insertions, 9 deletions
diff --git a/sc/source/core/data/dptabres.cxx b/sc/source/core/data/dptabres.cxx
index 136a5b69779c..af5ad122efd8 100644
--- a/sc/source/core/data/dptabres.cxx
+++ b/sc/source/core/data/dptabres.cxx
@@ -110,9 +110,10 @@ public:
mrFilters.push_back(ScDPResultFilter(rName, bDataLayout));
}
- void pushDimValue(const OUString& rValue)
+ void pushDimValue(const OUString& rValueName, const OUString& rValue)
{
ScDPResultFilter& rFilter = mrFilters.back();
+ rFilter.maValueName = rValueName;
rFilter.maValue = rValue;
rFilter.mbHasValue = true;
}
@@ -953,12 +954,12 @@ OUString ScDPResultMember::GetName() const
{
const ScDPMember* pMemberDesc = GetDPMember();
if (pMemberDesc)
- return pMemberDesc->GetNameStr();
+ return pMemberDesc->GetNameStr( false );
else
return ScGlobal::GetRscString(STR_PIVOT_TOTAL); // root member
}
-OUString ScDPResultMember::GetDisplayName() const
+OUString ScDPResultMember::GetDisplayName( bool bLocaleIndependent ) const
{
const ScDPMember* pDPMember = GetDPMember();
if (!pDPMember)
@@ -969,7 +970,7 @@ OUString ScDPResultMember::GetDisplayName() const
if (aParentDimData.mpParentDim)
{
long nDim = aParentDimData.mpParentDim->GetDimension();
- return pResultData->GetSource().GetData()->GetFormattedString(nDim, aItem);
+ return pResultData->GetSource().GetData()->GetFormattedString(nDim, aItem, bLocaleIndependent);
}
return aItem.GetString();
@@ -1324,7 +1325,7 @@ void ScDPResultMember::FillMemberResults(
if (aParentDimData.mpParentDim)
{
long nDim = aParentDimData.mpParentDim->GetDimension();
- aName = pResultData->GetSource().GetData()->GetFormattedString(nDim, aItemData);
+ aName = pResultData->GetSource().GetData()->GetFormattedString(nDim, aItemData, false);
}
else
{
@@ -1332,7 +1333,7 @@ void ScDPResultMember::FillMemberResults(
const ScDPMember* pMem = GetDPMember();
if (pMem)
nDim = pMem->GetDim();
- aName = pResultData->GetSource().GetData()->GetFormattedString(nDim, aItemData);
+ aName = pResultData->GetSource().GetData()->GetFormattedString(nDim, aItemData, false);
}
ScDPItemData::Type eType = aItemData.GetType();
@@ -1511,9 +1512,8 @@ void ScDPResultMember::FillDataResults(
if (pDPMember)
{
// Root result has no corresponding DP member. Only take the non-root results.
- OUString aMemStr = GetDisplayName();
pFilterStack.reset(new FilterStack(rFilterCxt.maFilters));
- pFilterStack->pushDimValue(aMemStr);
+ pFilterStack->pushDimValue( GetDisplayName( false), GetDisplayName( true));
}
// IsVisible() test is in ScDPResultDimension::FillDataResults
@@ -2017,7 +2017,7 @@ void ScDPDataMember::FillDataRow(
// since its immediate parent result member is linked to the same
// dimension member.
pFilterStack.reset(new FilterStack(rFilterCxt.maFilters));
- pFilterStack->pushDimValue(pResultMember->GetDisplayName());
+ pFilterStack->pushDimValue( pResultMember->GetDisplayName( false), pResultMember->GetDisplayName( true));
}
OSL_ENSURE( pRefMember == pResultMember || !pResultMember, "bla" );