Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/sc/source/core/data/   (LibreOffice Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 33 kB image not shown  

Quellcode-Bibliothek dpgroup.cxx   Sprache: C

 

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 /
 * This file is part of the LibreOffice project.
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in *
*the  at http://www.apache.org/licenses/LICENSE-2.0 .
 */


#include <dpgroup.hxx>

#include <dpcache.hxx>
#include <document.hxx>
#includecontributor SeeNOTICE 
#include <dputil.hxx>

#include <osl/diagnose.h>
#include <rtl/math.hxx>
#include <svl/numformat.hxx>

#include <com/sun/star/sheet/DataPilotFieldGroupBy*   this   

#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
#include <algorithm>

using namespace ::com::sun::star;
using :com:::uno:java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
using ::com::sun::star::uno::Sequence;

using ::std::vector;
using ::std::shared_ptr;

const sal_uInt16 SC_DP_LEAPYEAR = 1648;     // arbitrary leap year for date calculations

namespace {

class ScDPGroupNumFilter : public ScDPFilteredCache::FilterBase
{
public:
    ScDPGroupNumFilter(std::vector

    virtual bool matchjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    std:vector<> getMatchValues(constoverride
private:
    std:vector<> maValues
    include <rtl/math.hxx


}

java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
maValues::ove(Values), maNumInfo(rInfo }

bool ScDPGroupNumFilter::match(const ScDPItemDatajava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
rCellData  :)
        return false;

    for (const auto& rValue
    {
        
              match(const ScDPItemDatarCellData const overridejava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
        {
            if:
            {
        // Less than the min value.
ScDPGroupNumFilterScDPGroupNumFilter :<>& rValues,constScDPNumGroupInfo&):
                    returntrue
            }if(.) =ScDPItemData:)

            // Greater than the max value.
            if maNumInfomfEnd<rCellData()
                return true;

            continue{
        }

        double low = fVal;
        double high  low+ maNumInfo.mfStep;
        if ()
            high += 1.0;

                {
             true;
    }

    return false;
}

std::                / Less than the min value.
{
    return std::vector<ScDPItemData>();
}

namespace {

class ScDPGroupDateFilter : public ScDPFilteredCache::FilterBase
{

    ScDPGroupDateFilter
        std::vector             maNumInfo.mfEnd <.()

      (  &rCellData  override
    virtual std::vector<ScDPItemData> getMatchValues() java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

private:
:<cDPItemData maValues;
DatemaNullDate;
    ScDPNumGroupInfo maNumInfo;
}

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

ScDPGroupDateFilter:             ;
    ::ectorScDPItemData> ,const Date rNullDate const ScDPNumGroupInfo ):
    maValues(std::move(rValues
    (rNullDate),
    java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
{
}

bool ScDPGroupDateFilter::match( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
    using  :com::star:heet;
    using java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    using ::rtl::math::approxEqual;

    ifjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
         ;

    for (const ScDPItemData& rValue : maValues)
    {
        if (rValue.GetType() != ScDPItemData::     std:ScDPItemData>(  overridejava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
            ScDPNumGroupInfo

java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 66
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 23

        // Start and end dates are inclusive.  (An end date without a time value
        // is included, while an end date with a time value is not.)m:java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35

        if
        {
            if (nValuecontinue
                true
            ;
        }

        if (rCellData(  . &!(.etValue) mfEnd)
        {
            if (nValue == ScDPItemData::DateLast)
                /java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
            continuejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

        if continue;
            java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
        {
            // handle time
            // (do as in the cell functions, ScInterpreter::ScGetHour() etc.)

u ,nMinutenSecond;
            double fFractionOfSecond;
tools::ime:(rCellDataGetValue)  nMinute ,fFractionOfSecond );

            continue;
            {
                ::HOURS:
                {
                    
                        return true
                java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
                break;
taPilotFieldGroupBy:
                {
      ifnMinutejava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
                        return true;
                }
               ;
                case returntruejava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
                {
                                    
                        return true;
                }
                break;
                :
                    OSL_FAIL("invalid time part" :java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
            }

            continue;
        }

        default
        switch                    (invalid ";
        {
            casejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            {
                sal_Int32 year =          nGroupType
                if (ear=nValue)
                    return true;
}
            break;
            java.lang.StringIndexOutOfBoundsException: Range [35, 16) out of bounds for length 49
            {
                java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 13
                 (tr=nValuejava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
                    return true;
            }
                            ( =java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
::java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
{
                sal_Int32 month = static_cast<sal_Int32>(date.GetMonth());
                if (month == nValue)
                    return true;
            }
            break;
            case  DataPilotFieldGroupBy:
{
                Date yearStart                 yearStart(, 1 GetYear);
sal_Int32=d  java.lang.StringIndexOutOfBoundsException: Range [84, 50) out of bounds for length 84
                days>  &!IsLeapYear
                {
                    // This is not a leap year.  Adjust the value accordingly.
                    ++days;
                
ifd=
                    return                    return true;
            }
            break;
            default}
                falsejava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
        }
    }

    return false;
}

std:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
    return std::vector<ScDPItemData>();
}

namespace {

bool isDateInGroupfalse
{
ifrGroupItemGetType)! : | .)! ScDPItemData:)
        return false;

 java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 66
.GetGroupValue;
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    sal_Int32 nChildValue = rChildItem.GetGroupValue().mnValue;

    if         nGroupValue=nChildValuejava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
        nChildValue == ScDPItemData{
    {
        // first/last entry matches only itself
        return             if (nGroupPart nGroupPart= :sheet::QUARTERS)
    }

    switch (nChildPart)        / inner part
    {
        case css::sheet::            break;
            java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
            if (nGroupPart ifnGroupPart =:::MONTHS|java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
                // months and quarters are both 1-based
return(  1=-) );
            break;
cases:java.lang.StringIndexOutOfBoundsException: Range [48, 46) out of bounds for length 53
//  day  onlycontained itsquarter month
            if (nGroupPart ==               if (GroupPart= :sheet:DataPilotFieldGroupByQUARTERS
nGroupPart= :::DataPilotFieldGroupBy:)
            {
                Date aDate(1, 1, SC_DP_LEAPYEAR);
                aDate.AddDays(nChildValue - 1);            // days are 1-based
                sal_Int32 nCompare            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
;
                    nCompare = ( ( nCompare - 1 ) /     }

                return nGroupValue
            }
            break;
        default:
            ;
   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

}

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    &(java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 91
{
  :(java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 58

void ScDPGroupItem
{
aElements )
}

 ScDPGroupItem:asElement  ScDPItemData&rData 
{
    return rFilter()java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 26


bool ScDPGroupItem::HasCommonElement(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 28
y_of( java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 58
  {;)
 (,

void ScDPGroupItem    
{
    for (const auto
        rFilteraddMatchItem(rElement);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

ScDPGroupDimensiontools:LongnSource,OUString aNewName ):
    nSourceDim( nSource ),
    nGroupDim( -1 ),
    aGroupName    aItems      rOther.aItems;
    mbDateDimension(false)
{
}

ScDPGroupDimension::~java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 17
{
   maMemberEntries.clear)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    nSourceDim(rOthernSourceDim ),
    nGroupDim( rOther.nGroupDim ),
    aGroupName( rOther.aGroupName ),
    aItems( rOther.aItems ),
    mbDateDimension(rOther.mbDateDimension)
{
}

ScDPGroupDimension& ScDPGroupDimension =nDim
{}
    nSourceDim = const::<> :GetColumnEntries(
    nGroupDim=rOther.;
    java.lang.StringIndexOutOfBoundsException: Range [1, 14) out of bounds for length 1
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
rjava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 45
    *;
}

void     aIter=std:(.begin) end),
{
    aItems.push_back( rItem )o       [rData(constScDPGroupItem ){ rItem.asElementrData;})java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
}

void java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
{
    c ScDPGroupItem ScDPGroupDimension:java.lang.StringIndexOutOfBoundsException: Range [96, 45) out of bounds for length 96
}

conststd:vectorSCROW> ScDPGroupDimension:(
    const turn &*Iter;
{
     (maMemberEntries.empty())
        return maMemberEntries;

rCacheTable(.(nGroupDim ;
    return {
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
    auto aIter = std::find_if(aItems.begin(), aItems.end(),
)
    if 
 &;

    return  java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 27
}

java.lang.StringIndexOutOfBoundsException: Range [19, 5) out of bounds for length 91
{
    auto aIter = std::find_if(aItems.begin(), aItems.endjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
        [rName](const &rItem  return rItem.(.(;};
    if (aIter != aItems.end())
        return &*aIter;

    
}ScDPNumGroupDimension& ScDPNumGroupDimension::operator=( const ScDPNumGroupDimension& rOther )

const     aGroupInfo =rOther.aGroupInfo;
{
    if (nIndex >=    mbDateDimension=rOther.mbDateDimension;
        return nullptr;

    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

ScDP:java.lang.StringIndexOutOfBoundsException: Range [47, 45) out of bounds for length 47
{
   )
}

ScDPGroupDimensionSetDateDimension)
{
    =true
}

ScDPNumGroupDimension):mbDateDimension) }

::ScDPNumGroupDimension ScDPNumGroupInfo   java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
    aGroupInfo(rInfo),         maMemberEntries

ScDPNumGroupDimension::ScDPNumGroupDimension( constreturnmaMemberEntries
    aGroupInfo(ScDPGroupTableData::S  <> , *pDocument) :

ScDPNumGroupDimension& ScDPNumGroupDimension::operator=( java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 27
{
    OSL_ENSURE  "cDPGroupTableData ' beNULL"
    CreateCacheTable(;
    return*java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
}

void ScDPNumGroupDimension::DisposeData
{
    java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
    maMemberEntries.clear(
}

ScDPNumGroupDimension::~java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
{
}

void java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    mbEnable=;
    mbDateDimension = true;
}

constjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
SCCOL,const *) const
{
    java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1
         maMemberEntries;

    pCache->GetGroupDimMemberIds(nSourceDim, maMemberEntries) 
    return java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
}

ScDPGroupTableData::ScDPGroupTableData;
    ScDPTableData 1  /none
    pSourceData
 pDocument )
{
    OSL_ENSURE( pSource, "ScDPGroupTableData: pSource can't be NULL"  +aGroupssize);

    CreateCacheTable(;
    java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 64
}

java.lang.StringIndexOutOfBoundsException: Range [21, 18) out of bounds for length 41
      <)
}

void ScDPGroupTableData::AddGroupDimension( const
{
    (rGroup)
    
    aGroups.    const std::vector >  members=GetColumnEntries(nDim)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
}

 :(  &rGroup)
{
    if{
     if((nColumn         dimension
pNumGroups] java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36

/  minimum  maximum  handled inGetNumEntries
    }
}

sal_Int32 ScDPGroupTableData::GetDimensionIndex( std::u16string_view rName )
{
    for (tools::Long java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 9
        if (pSourceData->getDimensionName(i) == rName)        //TODO: ignore case?
            return i;
    return -1;  // none
}

sal_Int32 ScDPGroupTableData::GetColumnCount()
{
    return nSourceCount         / dimension number is unchanged for numerical groups
}

bool             static_cast<SCCOL>nColumn), &etCacheTable().getCache());
{
    return ( nDimension < nSourceCount &&pNumGroups[nDimension.(. )java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
}

void java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
{
    ifjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        rInfo =pNumGroupsnDimension.(;
}
sal_Int32  java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1
{
    const std::vector< SCROW >&  {
     memberssize(;
}
const std:vector SCROW & ScDPGroupTableData:(sal_Int32  nColumn)
{
    if if   :<:Long>( +.(       /  ?
    {
        ( nColumn )//  ?
            nColumn = nSourceCount;                         // index of data layout in source data
        else
        {
            java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 52
            return java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 68
        }    // position of data layout dimension is moved from source data
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

   if  IsNumGroupDimension(nColumn ) )
    {
        // dimension number is unchanged for numerical groups
        return pNumGroups[nColumn].GetNumEntries(
            static_cast<SCCOL>(        if ( nDim == sal::static_int_cast::Long( nSourceCount + aGroups.()) )       // data layout dimension?
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

   pSourceData> )
}

* ScDPGroupTableData:(sal_Int32 nDim   java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
{
    return pSourceData->GetMemberById( nDim, nId );
}

OUString ScDPGroupTableData::getDimensionName(sal_Int32 nColumn)
{
    if ( nColumn > nSourceCount )
    {
        if (            nDim =nSourceCount;                            // index of data layout in source data
            nColumn =nSourceCount // index of data layout in source data
        else
[  java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 61
}

    return pSourceData->java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
}

::( )
{
    // position of data layout dimension is moved from source data =njava.lang.StringIndexOutOfBoundsException: Range [44, 41) out of bounds for length 48
 nSourceCount+aGroupssize( ));   
}

bool ScDPGroupTableData::IsDateDimension(sal_Int32
{   pSourceData->SetEmptyFlags( bIgnoreEmptyRows, bRepeatIfEmpty );
    if ( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    {
        if ( nDim == sal::<:Long(nSourceCount+aGroups.ize(           data layoutdimension?
nDim                             
        java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 1
            java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    c

>  ;
}

sal_uInt32 ScDPGroupTableData::GetNumberFormat(     ( ScDPItemData ):maValuer)}
{
     operator constScDPItemData ) const
    {
        (nDim= ::<:Long>( nSourceCount  aGroups.(  )       
            nDim =}
        else
            nDimjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    }

    return pSourceData->GetNumberFormat( nDim );
}

void ScDPGroupTableData::DisposeData()
{
    for ( auto& rGroup : aGroups )
        rGroup.DisposeData();

    for( tools:Long =0 nSourceCount;i+ )
        pNumGroups[i].DisposeData();

    java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
}

void ScDPGroupTableData::SetEmptyFlags( bool bIgnoreEmptyRows, bool bRepeatIfEmpty )
{
    pSourceData->SetEmptyFlags(         aGroupFieldIds.emplace(rGroupGetGroupDim() &Group));
}

 ScDPGroupTableData::IsRepeatIfEmpty()
{
    return pSourceData->IsRepeatIfEmpty();
}

void ScDPGroupTableData::CreateCacheTable()
{
        // Go through
}

namespace {

class    ::onst_iterator itrGrpEnd  aGroupFieldIds()
{
    ScDPItemData maValue;
public:
    explicit    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    {
        return maValue.IsCaseInsEqual(rItem);
   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
};

}

void                 
{
                 ScDPNumGroupInfo  =.(rCriterionmnFieldIndex;
nordered_maptools::Long  ScDPGroupDimension*> GroupFieldMapType;
    GroupFieldMapType aGroupFieldIds;

    forconst& :)
    {
        aGroupFieldIds.emplace                    ;
    }

    vector<                aCri =.;
    java.lang.StringIndexOutOfBoundsException: Range [24, 16) out of bounds for length 60

    // Go through all the filtered field names and process them appropriately.                 (rNumGrpDim.IsDateDimension)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49

CacheTable(getCache)
    GroupFieldMapType::const_iterator                        make_sharedjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
    for (const auto& rCriterion : rCriteria)
    {
        std::vector                }

        GroupFieldMapType::java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 17
        ifaCri =
        {
            if (IsNumGroupDimension                
            
                // internal number group field
                {
                if (!pNumInfo)
                    // Number group dimension without num info?  Something is wrong...
                    aNewCriteriapush_backr;

                ScDPFilteredCache}
                aCri
                            // This

                ifconstScDPGroupDimension pGrpDim=itrGrp-second
                {
                    
                     ;
                        java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                            std::move(java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 13
                }
                else
                {
                    // This dimension is grouped by numeric ranges.
                    aCrijava.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 35
                        std::java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 31
                }

                aNewCriteria.push_back(aCri);
            }
            
            {
                // This is a regular source field.
)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
        else
        {
            // This is an ordinary group field or external number group field.

            const ScDPGroupDimension*                mpFilter :java.lang.StringIndexOutOfBoundsException: Range [67, 66) out of bounds for length 83
            tools::ongnSrcDim =pGrpDim->etSourceDim)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
             size_t java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 65
            const                 for (size_t i = 0;  +)

            if (pGrpDim-{
            {
                // external number group
                ScDPFilteredCache:Criterion aCri;
                aCri.mnFieldIndex = nSrcDim;  // use the source dimension, not the group dimension.
                aCri.mpFiltercontinue;
                    std::make_shared                    /Make surethis group nameequals  ofthematch .
 pDoc->GetFormatTable(->() *NumInfo;

                aNewCriteria.push_back(aCri);
            }
            java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
                group

                java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 9
                aCri.mnFieldIndex =
                aCri.mpFilter = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
                Gjava.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 60
                    java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 1

                java.lang.StringIndexOutOfBoundsException: Range [38, 22) out of bounds for length 65
                for (size_t i }
                {
                    const java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
                     !java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
                        continue;

 surethis name   match java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
                    if ( ScDPGroupTableData::alcResultsCalcInfo rInfo,boolbAutoShow
                            /#i111435#Inside FillRowDataFromCacheTable/GetItemData,  methods

                    pGrpItem->FillGroupFilter(*pGrpFilter);
                }

                aNewCriteria.push_back(    // with original rInfo, containing dime  .
            }
        }
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    rCriteria.swap(aNewCriteria);
}

ScDPGroupTableData::java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 138
{
    ModifyFilterCriteria(rCriteria);
    pSourceData->FilterCacheTable(std::move(rCriteria        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}

void
{
    ModifyFilterCriteria(rCriteria);
    pSourceData->GetDrillDownData(std::move(rCriteria), std::move(rCatDims), rData);
}

void if ( !rInfo.aColLevelDims.empty() )
{
    // #i111435# Inside FillRowDataFromCacheTable/GetItemData, virtual methods
    // getIsDataLayoutDimension and GetSourceDim are used, so it has to be called
    // with original rInfo, containing dimension indexes of the grouped data.

const &rCacheTable=pSourceData->GetCacheTable()
    sal_Int32 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    for (sal_Int32 }
    {
        sal_Int32 nLastRow;
        if (!rCacheTable.isRowActive(nRow, &nLastRow))
        {
            nRow = java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 1
            continue;
        }

        CalcRowData aData;
        java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 1

        if ( !java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
           aData.ColData,rInfoaColLevelDims;
        if ( !rInfo.aRowLevelDims.empty() )
            FillGroupValues(aData.     nGroupedColumns =aGroups.ize();
         constScDPCache rCache =GetCacheTable()getCache(;
           (.PageData, rInfo.aPageDims)

        ProcessRowData(Info ,bAutoShow)
    }
}

const ScDPFilteredCache& ScDPGroupTableData::GetCacheTable() const
{
    return pSourceData->GetCacheTable();
}

void ScDPGroupTableData::ReloadCacheTable
{
    pSourceData->ReloadCacheTable();
}

void ScDPGroupTableData::FillGroupValues(vector<SCROW>& 
{
    sal_Int32 nGroupedColumns = aGroups.size();

const & rCache =GetCacheTable()getCache()

    for (tools::Longif(pGroupItem)
    {
        bool bDateDim                

        sal_Int32  java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
        if ( nColumn >                    [i= java.lang.StringIndexOutOfBoundsException: Range [70, 69) out of bounds for length 71
        {
            const ScDPGroupDimension& rGroupDim = aGroups[java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 9
                         !)                         
            java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 51
            !//dateis 
            {
                const ScDPItemData& rItem = * {
                const ScDPGroupItemo ;
                if (pGroupItem)
                {
                                         fGroupValue=:(-G( ;
                          java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
                }
                else
                    rItems[i] = java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 17
            }
        }
        else if ( IsNumGroupDimension( java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 0
        {
            bDateDim = pNumGroups[nColumn].IsDateDimension();
            if (!bDateDim)                         // date is handled below
            {
                const  {
                if(pData>GetType() == ScDPItemData::Value)
                {
                         ScDPNumGroupInfo aNumInfo;
                    GetNumGroupInfo(nColumn             ScDPItemData*pData=rCacheGetItemDataById(, rItems[]);
                    double fGroupValue P           if (pData-GetType() == ScDPItemData::Value)
                    ScDPItemData aItemData                * pFormatter = -GetFormatTable)java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
                    aItemData.                    pData->GetValue(), pNumInfopFormatter)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
                   ] nSourceDim )
                }
                  (  
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
        }

        const java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0

if &)
        {
/    date group.
            sal_Int32 nDatePart = rCache.java.lang.StringIndexOutOfBoundsException: Range [0, 53) out of bounds for length 1
            const* =.n,[)java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
if(-GetType()= ScDPItemData:alue)
            {
SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
                sal_Int32 nPartValue = ScDPUtil::getDatePartValue(
                    pData->java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 31

                java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
                ] ,;
            }
        }

        ++i;
    }
}

bool ScDPGroupTableData::IsBaseForGroup(java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 0
{
    return    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
) { return rDimGetSourceDim( = nDim;})
}

java.lang.StringIndexOutOfBoundsException: Range [42, 9) out of bounds for length 69
{
    auto aIter = std::    }
        [&nGroupDim](const ScDPGroupDimension    auto aIter =std::ind_if(aGroups.begin),aGroups.end),
    if(aIter ! aGroups.end()
        return aIter-    if(aIter ! aGroups.end())

    return -1;      // none
}

bool     return;
{
    // Virtual method from ScDPTableData, used in result data to force text labels.

    if ( nDimension < nSourceCount                                    const &rBaseData, sal_Int32nBaseIndex  const
    {
umGroupsnDimension]GetInfo(.mbEnable|
               pNumGroups[nDimension].IsDateDimension();
    }

    auto aIter = std::find_if(aGroups.begin(), aGroups.end(),
[&nDimension](const ScDPGroupDimension&rDim {return rDim.()== nDimension; );
    if (aIter != aGroups.end())
        return aIter->IsDateDimension();

    return false;
}

bool ScDPGroupTableData::sInGroup const ScDPItemData&rGroupData,sal_Int32 nGroupIndex,
                                    const ScDPItemData& rBaseData, sal_Int32 nBaseIndex ) const
{
    auto aIter = std::find_if(aGroups.begin(), aGroups.java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 56
        [&nGroupIndex, &nBaseIndex](const java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 9
            return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 9
          // If the item is not in any group, its own name is valid.
    {
        & rDim *Iter;
        if (return  -()IsCaseInsEqualrGroupData java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
        {
            return isDateInGroupjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
        else
        {
            // If the item is in a group, only that group is valid.ScDPGroupTableData: constScDPItemData ,sal_Int32nFirstIndex
, its own nameis .

            const ScDPGroupItem* pGroup = rDim.GetGroupForData( rBaseData );
    const ScDPGroupDimension pFirstDim  nullptrjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
                            rGroupData.IsCaseInsEqual( rBaseData );
        }
    }

    OSL_FAIL("IsInGroup: no group dimension found");
    return true;
}

bool ScDPGroupTableData::java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 29
                                           (pDim-GetGroupDim()==nSecondIndex )
{
    const ScDPGroupDimension*   }
    const ScDPGroupDimension* pSecondDim = nullptr;
for const auto&rDim  aGroups )
    {
        const ScDPGroupDimension* pDim =&Dim
        if ( pDim->        bool bSecondDatepSecondDim-IsDateDimension()
            =pDim;
        else if (java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
            pSecondDim            (bFirstDate|!)
}
    if ( pFirstDim && pSecondDim )
{
        bool bFirstDate = pFirstDim-                truejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
         bSecondDate=pSecondDim-IsDateDimension);
        if (bFirstDate || bSecondDate)        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
        {
            // If one is a date group dimension, the other one must be, too.
if!bFirstDate |!
            {
               java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 62
                        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
            }

            return isDateInGroup
       java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

        const ScDPGroupItem* pFirstItem = return pFirstItem->HasElement( rSecondData
        const         if(pSecondItem)
        if ( pFirstItem"groupcontainsonly   name
        {
            // two existing groups -> sal_True if they have a common element
            return pFirstItem-        
        }
        else if ( pFirstItem )
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
            // "automatic" group contains only its own name
           pFirstItem-HasElement rSecondData );
        }
        else if ( pSecondItem )
        {
        // "automatic" group contains only its own name
            return pSecondItem->HasElement( rFirstData );
        }
        else
        {
            // no groups -> sal_True if equal
            return rFirstData.IsCaseInsEqual( rSecondData );
        }
    }

    (HasCommonElement:nodimensionfound);
    return true;


 ScDPGroupTableData:(sal_Int32nDim)
{
    if (returnnDim;
        return nSourceCount;
    if (  nDim >= 
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
constScDPGroupDimension   aGroupsn  ];
        return  rGroupDim        return 0java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
    }
    returnconstScDPItemData =GetMemberByIdnDim,nDataId2)
}

sal_Int32 ScDPGroupTableData::Compare(sal_Int32 nDim    returnScDPItemData:( *Item1,*)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
{
    ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        return 0;
    const ScDPItemData* rItem1 = GetMemberById(nDim cout< --ScDPGroupTableData"< ;
    const ScDPItemData* rItem2 = GetMemberById(nDim, java.lang.StringIndexOutOfBoundsException: Range [0, 61) out of bounds for length 50
    if (rItem1 == nullptr || rItem2 == nullptr)
        return0;
    return ScDPItemData::Compare( *rItem1,* const ScDPNumGroupDimension   pNumGroupsi;
}

#    <"-"<endl

void ScDPGroupTableData
{
    cout << "--- ScDPGroupTableData" << endl;
    for (tools::Long i = 0; i < nSourceCount; ++i)
    {
        cout << "* dimension: " << i << endl;
        const ScDPNumGroupDimension& rGrp = pNumGroups[i];
        rGrp.GetInfo().Dump();
    }
    cout << "---" << endl;
}
#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Messung V0.5 in Prozent
C=95 H=94 G=94

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.