Требования к операционной системе: 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
См. также: