Получение данных экспресс-отчета

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

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

Описание

В данном примере происходит отображение пузырьковой диаграммы, устанавливается заголовок панели измерений, после чего панель скрывается. В консоль среды разработки выводятся следующие данные экспресс-отчета:

Исходный код

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

// Получаем контроллер представления отчета
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController*)m_controller;
// Определяем тип отображаемого представления
MADataViewType viewType = kViewModeBubble;
if([[contr delegate] isBubbleEnabled]){
    if([[contr delegate] mode] != viewType){
        // Отображаем пузырьковую диаграмму
        [contr setDataViewMode:viewType];
        // Извещаем делегат о том, что контроллер сменил представление
        [[contr delegate] willSwitchToViewMode:viewType];
        // Извещаем делегат о том, что контроллер отобразил представление
        [[contr delegate] controllerViewDidLoaded];
        // Обновляем основу для построения таблиц с данными
        [[contr delegate] refreshPivot];
    }
    // Выводим информацию об источнике данных, настройках и состоянии пузырьковой диаграммы
    BubbleDataViewDatasource *dataSource = (BubbleDataViewDatasource*)[[contr delegate] bubbleDatasource];
    NSDictionary *settings = [[contr delegate] bubbleSettings];
    NSData *state = [[contr delegate] bubbleState];
    NSLog(@"Имя ряда пузырьковой диаграммы: %@", [dataSource seriesTitleWithID:[dataSource seriesIDs][0]]);
    NSLog(@"Формат чисел пузырьковой диаграммы: %@", [[settings valueForKey:@"visualSettings"] valueForKey:@"NumberFormat"]);
    if(state != nil)
        NSLog(@"Размер данных, описывающих состояние пузырьковой диаграммы: %i", [state length]);
}
// Выводим информацию об источнике данных и настройках пузырькового дерева
if([[contr delegate] isBubbleTreeEnabled]){
    DataViewDatasource *dataSource = [[contr delegate] bubbleTreeDatasource];
    NSDictionary *settings = [[contr delegate] bubbleTreeSettings];
    NSLog(@"Описание выборки данных пузырькового дерева: %@", [dataSource dataSelectionTitle]);
    NSLog(@"Количество настроек пузырькового дерева: %i", [[settings allKeys] count]);
}
// Выводим информацию об источнике данных, настройках и состоянии диаграммы
if([[contr delegate] isChartEnabled]){
    ChartDataViewDatasource *dataSource = (ChartDataViewDatasource*)[[contr delegate] chartDatasource];
    NSDictionary *settings = [[contr delegate] chartSettings];
    NSData *state = [[contr delegate] chartState];
    NSLog(@"Ключ ряда диаграммы: %@", [dataSource seriesKeys][0]);
    NSLog(@"Признак отображения легенды диаграммы: %@", [settings valueForKey:@"legendVisible"]);
    if(state != nil)
        NSLog(@"Размер данных, описывающих состояние диаграммы: %i", [state length]);
}
// Выводим информацию об источнике данных, настройках и состоянии таблицы
if([[contr delegate] isGridEnabled]){
    GridDataViewDatasource *dataSource = (GridDataViewDatasource*)[[contr delegate] gridDatasource];
    NSDictionary *settings = [[contr delegate] gridSettings];
    NSData *state = [[contr delegate] gridState];
    NSLog(@"Описание выборки данных таблицы: %@", [dataSource dataSelectionTitle]);
    NSLog(@"Признак использования фильтра таблицы: %@", [[settings valueForKey:@"gridFilter"] valueForKey:@"enabled"]);
    if(state != nil)
        NSLog(@"Размер данных, описывающих состояние таблицы: %i", [state length]);
}
// Выводим информацию об источнике данных, настройках и состоянии карты
if([[contr delegate] isMapEnabled]){
    MapDataViewDatasource *dataSource = (MapDataViewDatasource*)[[contr delegate] mapDatasource];
    NSDictionary *settings = [[contr delegate] mapSettings];
    NSData *state = [[contr delegate] mapState];
    NSLog(@"Название метрики, используемой для определения цвета элементов карты: %@", [dataSource colorMetricName]);
    NSLog(@"Цвет при отсутствии данных: %@", [[settings valueForKey:@"scale"] valueForKey:@"noDataColor"]);
    // Выводим информацию о карте и типе карты
    NSData *topo = [[contr delegate] mapTopobase];
    NSData *bubbleTopo = [[contr delegate] mapBubbleTopobase];
    EAMapType mapType = [[contr delegate] mapType];
    if(state != nil)
        NSLog(@"Размер данных, описывающих состояние таблицы: %i", [state length]);
    if(topo != nil)
        NSLog(@"Размер данных карты: %i", [topo length]);
    if(bubbleTopo != nil)
        NSLog(@"Размер данных карты Apple: %i", [bubbleTopo length]);
    switch (mapType) {
        case EAMapSVG:
            NSLog(@"Карта представлена в SVG-формате");
            break;
        case EAMapOpenGL:
            NSLog(@"Карта представлена в виде триангулированной карты");
            break;
        case EAMapBubble:
            NSLog(@"Карта представлена в виде карты Apple");
            break;
        default:
            break;
    }
}
// Выводим информацию об источнике данных, настройках и состоянии плоского дерева
if([[contr delegate] isTreeMapEnabled]){
    DataViewDatasource *dataSource = [[contr delegate] treeMapDatasource];
    NSDictionary *settings = [[contr delegate] treeMapSettings];
    NSLog(@"Описание выборки данных плоского дерева: %@", [dataSource dataSelectionTitle]);
    NSLog(@"Количество настроек плоского дерева: %i", [[settings allKeys] count]);
}
// Выводим заголовок отчета
NSLog(@"Заголовок отчета: %@", [[contr delegate] olapTitle]);
// Выводим количество измерений
NSLog(@"Количество измерений панели: %i", [[[contr delegate] dimensionsPanel] dimensionsCount]);
// Выводим индекс текущего представления
NSLog(@"Индекс текущего представления: %i", [[[contr delegate] expressReportController] selectedDataViewControllerIndex]);
// Скроем панель измерений
[[contr splitViewController] setFirstViewVisible:NO];
// Установим заголовок панели измерений
[[contr panelViewController] setPanelTitle:@"Панель измерений"];

В результате выполнения примера была отображена пузырьковая диаграмма и установлен заголовок панели измерений, после чего панель была скрыта. В консоли среды разработки выведены данные экспресс-отчета:

Имя ряда пузырьковой диаграммы: ЮАР

Формат чисел пузырьковой диаграммы: #,##0.00

Ключ ряда диаграммы: 0

Признак отображения легенды диаграммы: true

Описание выборки данных таблицы: GDP per capita, PPP (constant 2005 international $)

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

Название метрики, используемой для определения цвета элементов карты: GDP per capita, PPP (constant 2005 international $)

Цвет при отсутствии данных: #BFBFBF

Размер данных карты: 1883755

Размер данных карты Apple: 92408

Карта представлена в виде триангулированной карты

Заголовок отчета: OLAP

Количество измерений панели: 3

Индекс текущего представления: 3

См. также:

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