Работа с таблицей данных

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

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

Описание

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

Исходный код

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

-(void)executeExample {
    // Получаем таблицу объекта, представляющего собой основу для построения таблиц с данными
    SPPLPivotTable pivotTable = m_gridPivotTable;
    // Снимаем запрет на обновление таблицы
    pivotTable->unlock();
    // Начинаем выделение строк и столбцов таблицы
    pivotTable->beginChangingSelection();
    // Выводим количество строк и столбцов в таблице
    printf("Количество столбцов в таблице: %d\n", pivotTable->columnCount());
    printf("Количество строк в таблице: %d\n", pivotTable->rowCount());
    // Выводим информацию о вычисляемых рядах таблицы
    printSettingsInfo(pivotTable);
    // Получаем и выводим данные из ячейки
    NSNumber *data = (NSNumber *)pivotTable->getData(3, 3)->nsObject();
    NSLog(@"%@: %f", @"Значение данных ячейки", [data doubleValue]);
    // Выделяем строки и столбцы таблицы данных
    for(int i = 1; i<=5; i++) {
        pivotTable->selectColumn(i);
        pivotTable->selectRow(i);
    }
    // Выводим информацию о выделенных строках и столбцах
    printf("Количество выделенных строк: %d; столбцов: %d\n", pivotTable->selectedColumnIndices()->count(), pivotTable->selectedRowIndices()->count());
    // Снимаем выделение со строки и столбца с указанными индексами
    pivotTable->deselectColumn(3);
    pivotTable->deselectRow(3);
    printf("Снятие выделения со строки и столбца\n");
    // Выводим информацию о выделенных строках и столбцах
    printf("Количество выделенных строк: %d; столбцов: %d\n", pivotTable->selectedColumnIndices()->count(), pivotTable->selectedRowIndices()->count());
    // Снимаем выделение со всех столбцов
    pivotTable->deselectAllColumns();
    printf("Снятие выделения всех столбцов\n");
    // Выводим информацию о выделенных строках и столбцах
    printf("Количество выделенных строк: %d; столбцов: %d\n", pivotTable->selectedColumnIndices()->count(), pivotTable->selectedRowIndices()->count());
    // Снимаем выделение со всех строк
    pivotTable->deselectAllRows();
    printf("Снятие выделения всех строк\n");
    // Выводим информацию о выделенных строках и столбцах
    printf("Количество выделенных строк: %d; столбцов: %d\n", pivotTable->selectedColumnIndices()->count(), pivotTable->selectedRowIndices()->count());
    // Создаем новый объект таблицы данных
    SPPLPivotTable newPivotTable = PPLPivotTable::pivotTable(pivotTable->relatedPivot());
    // Выгружаем параметры таблицы
    SNID plist = pivotTable->generatePlist();
    // Конфигурируем новую таблицу на основе параметров
    newPivotTable->setupFromPlist(plist);
    // Снимаем выделение всех строк и столбцов
    if(newPivotTable->selectedColumnIndices()->count() != 0 || newPivotTable->selectedRowIndices()->count() != 0)
    {
        newPivotTable->deselectAll();
    }
    // Завершаем выделение строк и столбцов таблицы
    pivotTable->endChangingSelection();
    // Устанавливаем запрет на обновление таблицы
    pivotTable->lock();
    // Уничтожаем объект таблицы
    pivotTable->~PPLPivotTable();
}
// Выводит информацию о вычисляемых рядах таблицы
void printSettingsInfo(SPPLPivotTable pivotTable) {
    // Получаем настройки вычисляемых рядов
    SPPLPivotTableCalculatorSettings calculatorSettings = pivotTable->calculatorSettings();
    printf("Количество настроек вычисляемых рядов: %d\n", calculatorSettings->settingsCount());
}

В результате выполнения примера в консоль среды разработки будет выведена информация о таблице данных:

Количество столбцов в таблице: 11

Количество строк в таблице: 172
Количество настроек вычисляемых рядов: 0

Значение данных ячейки: 1880.266107

Количество выделенных строк: 5; столбцов: 5

Снятие выделения со строки и столбца

Количество выделенных строк: 4; столбцов: 4

Снятие выделения всех столбцов

Количество выделенных строк: 0; столбцов: 4

Снятие выделения всех строк

Количество выделенных строк: 0; столбцов: 0

См. также:

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