Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере описываются некоторые приемы работы с представлением данных в виде плоского дерева. После запуска примера выполняются следующие операции:
создается контроллер представления данных в виде плоского дерева;
скрываются легенды цвета и размера плоского дерева;
определяется путь к папке с экспресс-отчётом, на основе данных которого создаётся плоское дерево.
В базовый пример «Отображение экспресс-отчёта» необходимо добавить следующий файл:
MADimensionRoleAcceptorProtocolImpl.h/.m. Делегат для установки типа измерения.
Для выполнения примера необходимо в теле метода executeExample класса ViewController (см. раздел «Отображение экспресс-отчёта») разместить следующий код:
// Получаем контроллер для работы с экспресс-отчётом
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController *)m_controller;
// Получаем делегат для работы с экспресс-отчётом
EAReportDelegateImpl *delegate = [contr delegate];
// Получаем источник данных плоского дерева
TreeMapDataViewDataSource *treeMapDataSource = (TreeMapDataViewDataSource *)delegate.treeMapDatasource;
// Создаём контроллер для работы с плоским деревом
MATreeMapDataViewController *treeMapController = [[MATreeMapDataViewController alloc] initWithDataSource: treeMapDataSource];
[treeMapController setDelegate: contr];
[treeMapController setIsDataViewTitleVisible: YES];
SNString plistPath = PPLFileManager::getReportPlistPath(m_olapReport->descriptor());
NSString* correctPath = plistPath?plistPath->nsString():NULL;
if (correctPath) {
correctPath = [correctPath stringByDeletingLastPathComponent];
[treeMapController setPathToDirReport:correctPath];
NSLog(@"Путь к папке с отчётом: %@", correctPath);
}
// Получаем настройки отчёта
SNDictionary sett = m_olapReport->settings();
SNDictionary treeMapSett = NULL; // Настройки плоского дерева
SNDictionary selectDict = m_olapReport->selectionDictionary();
if (sett) {
SNID treeMap = sett->objectForKey(NStr("treemap"));
// Получаем настройки плоского дерева
treeMapSett = (treeMap?treeMap->qClass<NDictionary>():NULL);
if (treeMapSett) {
// Загружаем и применяем настройки плоского дерева
[treeMapDataSource loadSettings:treeMapSett withSelection:selectDict];
[treeMapController setXmlNameSettingFromDic:(NSDictionary *)treeMapSett->nsObject()];
} else {
// Устанавливаем настройки дерева
[treeMapController setXmlNameSetting];
}
}
// Обновляем данные дерева
[delegate controllerViewDidLoaded];
// Скрываем легенду размера
[treeMapController setIsSizeIndicator: NO];
// Скрываем легенду цвета
[treeMapController setIsSetColorIndicator: NO];
// Отображаем плоское дерево
[self showViewControllerInFullScreen: treeMapController];
В результате выполнения примера было отображено представление данных в виде плоского дерева. Легенды цвета и размера были скрыты:

В консоли среды разработки был выведен путь к папке с экспресс-отчётом, на основе данных которого было создано плоское дерево:
Путь к папке с отчётом: /Users/sea/Library/Application Support/iPhone Simulator/7.1/Applications/AC4804D8-C173-4008-B14D-4A2401B0B49D/Documents/repositories/910419CE79EA52E95F2F8FE76E7C24DE/OBJ21110
См. также: