Работа с настройками итогов таблицы данных

Требования к операционной системе: iOS 5.0 и выше.

Мобильное устройство: iPad.

Описание

В данном примере реализована работа с настройками итогов таблицы данных и их типами. После запуска примера выполняются следующие операции:

Исходный код

Для выполнения примера необходимо разместить в теле метода executeExample класса ViewController (см. раздел «Анализ данных») следующий код:

// Получаем таблицу данных
SPPLPivotTable pivotTable = m_gridPivotTable;
// Получаем настройки итогов
SPPLPivotTableTotalsSettings totalsSettings = pivotTable->totalsSettings();
// Выводим значения настроек итогов
printf("%s %d \n","Признак учета данных родителей:", totalsSettings->isIncludeParents());
printf("%s %d \n","Признак интерпретации пустых ячеек, как нулевых:", totalsSettings->isTreatEmptyAsZero());
printf("%s %d \n","Признак учета иерархии:", totalsSettings->isUseHierarchy());
printf("%s %d \n","Признак учета уровней вложенности:", totalsSettings->isUseLevels());
// Создаем новые настройки итогов
SPPLPivotTableTotalsSettings newSettings = new PPLPivotTableTotalsSettings();
// Создаем копию настроек итогов
SPPLPivotTableTotalsSettings copySettings = newSettings->copy()->qClass<PPLPivotTableTotalsSettings>();
// Устанавливаем настройки итогов
if(copySettings->isEmpty()){
    copySettings->setIncludeParents(true);
    copySettings->setTreatEmptyAsZero(true);
    copySettings->setUseHierarchy(true);
    copySettings->setUseLevels(true);
}
printf("Значения копии настроек итогов: \n");
// Выводим значения настроек итогов
printf("%s %d \n","Признак учета данных родителей:", copySettings->isIncludeParents());
printf("%s %d \n","Признак интерпретации пустых ячеек, как нулевых:", copySettings->isTreatEmptyAsZero());
printf("%s %d \n","Признак учета иерархии:", copySettings->isUseHierarchy());
printf("%s %d \n","Признак учета уровней вложенности:", copySettings->isUseLevels());
// Получаем типы итогов для строк и столбцов таблицы данных
SPPLPivotTableTotalsTypes rowTypes = totalsSettings->rowTypes();
SPPLPivotTableTotalsTypes columnTypes = totalsSettings->columnTypes();
// Если типы итогов строк пусты, создаем новый объект и устанавливаем состояния итогов
if(rowTypes->isEmpty()){
    rowTypes = new PPLPivotTableTotalsTypes();
    rowTypes->setCalculateMax(true);
    rowTypes->setCalculateAvg(false);
    rowTypes->setCalculateMin(false);
    rowTypes->setCalculateNotNullCount(false);
    rowTypes->setCalculateNullCount(false);
    rowTypes->setCalculateSum(false);
}
if(columnTypes->isEmpty()){
    // Копируем типы итогов строк таблицы данных
    columnTypes = rowTypes->copy()->qClass<PPLPivotTableTotalsTypes>();
    // Очищаем типы
    columnTypes->clear();
    // Устанавливаем расчет итогов по минимуму
    columnTypes->setCalculateMin(true);
}
// Выводим настройки типов итогов строк и столбцов таблицы данных
printf("Признаки использования итогов строк:\n");
printf("%s %d \n","Расчет итогов по среднему:", rowTypes->isCalculateAvg());
printf("%s %d \n","Расчет итогов по максимуму:", rowTypes->isCalculateMax());
printf("%s %d \n","Расчет итогов по минимуму:", rowTypes->isCalculateMin());
printf("%s %d \n","Расчет количества не пустых ячеек:", rowTypes->isCalculateNotNullCount());
printf("%s %d \n","Расчет количества пустых ячеек:", rowTypes->isCalculateNullCount());
printf("%s %d \n","Расчет итогов по сумме:", rowTypes->isCalculateSum());
printf("Признаки использования итогов столбцов:\n");
printf("%s %d \n","Расчет итогов по среднему:", columnTypes->isCalculateAvg());
printf("%s %d \n","Расчет итогов по максимуму:", columnTypes->isCalculateMax());
printf("%s %d \n","Расчет итогов по минимуму:", columnTypes->isCalculateMin());
printf("%s %d \n","Расчет количества не пустых ячеек:", columnTypes->isCalculateNotNullCount());
printf("%s %d \n","Расчет количества пустых ячеек:", columnTypes->isCalculateNullCount());
printf("%s %d \n","Расчет итогов по сумме:", columnTypes->isCalculateSum());
// Выводим количество выбранных типов итогов
if(rowTypes->selectedTypes()!=NULL){
    printf("%s %d\n", "Количество выбранных типов итогов строк:", rowTypes->selectedTypes()->count());
}
if(rowTypes->selectedTypes()!=NULL){
    printf("%s %d\n", "Количество выбранных типов итогов столбцов:", columnTypes->selectedTypes()->count());
}

В результате в консоль среды разработки будут выведены значения настроек итогов и их типов.

Признак учета данных родителей: 1

Признак интерпретации пустых ячеек, как нулевых: 0

Признак учета иерархии: 1

Признак учета уровней вложенности: 1

Значения копии настроек итогов:

Признак учета данных родителей: 1

Признак интерпретации пустых ячеек, как нулевых: 1

Признак учета иерархии: 1

Признак учета уровней вложенности: 1

Признаки использования итогов строк:

Расчет итогов по среднему: 0

Расчет итогов по максимуму: 1

Расчет итогов по минимуму: 0

Расчет количества не пустых ячеек: 0

Расчет количества пустых ячеек: 0

Расчет итогов по сумме: 0

Признаки использования итогов столбцов:

Расчет итогов по среднему: 0

Расчет итогов по максимуму: 0

Расчет итогов по минимуму: 1

Расчет количества не пустых ячеек: 0

Расчет количества пустых ячеек: 0

Расчет итогов по сумме: 0

Количество выбранных типов итогов строк: 1

Количество выбранных типов итогов столбцов: 1

См. также:

Примеры использования библиотеки pplib++