Работа с контейнером панели измерений (пример 2)

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

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

Описание

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

Исходный код

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

// Создаёт контроллер панели измерений
-(MADimensionsPanelTableViewController *) createDimensionsPanelTableViewController {
    // Получаем контроллер для работы с экспресс-отчётом
    MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController *)m_controller;
    // Получаем делегат для работы с экспресс-отчётом
    EAReportDelegateImpl *delegate = [contr delegate];
    
    // Получаем объект, представляющий собой основу для построения таблиц с данными
    SPPLPivot pivot = PPLPivot::pivot([delegate olapReport]);
    
    // Создаём делегат панели измерений
    MADimensionsPanelTableViewDelegate *panelDelegate = [[MADimensionsPanelTableViewDelegate alloc] initWithPivot: pivot];
    
    // Создаём источник данных панели измерений
    MADimensionsPanelTableViewDataSource *panelDataSource = [[MADimensionsPanelTableViewDataSource alloc] initWithPivot: [panelDelegate pivot]];
    
    // Создаём контроллер для работы с панелью измерений
    MADimensionsPanelTableViewController *tableViewCtrl = [MADimensionsPanelTableViewController new];
    [tableViewCtrl setPanelDataSource: panelDataSource];
    [tableViewCtrl setPanelDelegate: panelDelegate];
    return tableViewCtrl;
}
-(void)executeExample {
    // Создаём контроллер для работы с контейнером панели измерений
    PanelViewController *panelViewCtrl = [PanelViewController new];
    // Создаём контейнер панели измерений
    PanelView *panelView = (PanelView *)[panelViewCtrl view];
    // Создаём контроллер для работы с панелью измерений
    MADimensionsPanelTableViewController *tableViewCtrl = [self createDimensionsPanelTableViewController];
    // Устанавливаем панель измерений
    [panelView setContentView: [tableViewCtrl view]];
    
    // Получаем разделитель двух представлений данных
    MASeparatorView *separatorView = [[MASeparatorView alloc] initWithFrame:CGRectZero];
    [separatorView setPanelVisible: YES];
    // Отображаем верхнюю стрелку на разделителе
    [separatorView setUpArrowVisible: YES];
    // Отображаем нижнюю стрелку на разделителе
    [separatorView setDownArrowVisible: YES];
    // Устанавливаем разделитель двух представлений данных для контейнера
    [panelView setSeparatorView: separatorView];
    
    // Создаём заголовок для контейнера панели измерений
    MATopView *topView = [[MATopView alloc] initWithFrame: CGRectZero];
    // Устанавливаем текст заголовка
    [[topView titleLabel] setText: @"Prognoz"];
    // Устанавливаем заголовок
    [panelView setTopView: topView];
    
    // Загружаем дочерние представления данных у контейнера панели измерений
    [panelView layoutSubviews];
    // Отображаем контейнер панели измерений
    [self showViewControllerInNavigationController: panelViewCtrl];
    
    // Создаём контейнер панели измерений
    UIView *envView = [UIView new];
    // Устанавливаем его
    [panelView setEnvironmentView: envView];
    
    // Устанавливаем цвет заливки контейнера панели измерений
    [panelViewCtrl setEnvironmentColor: [UIColor colorWithRed:0 green:1 blue:1 alpha:0.15]];
    [envView setBackgroundColor: [panelViewCtrl environmentColor]];
}

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

См. также:

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