Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализована работа с ресурсами отчета. После запуска примера выполняются следующие операции:
в консоль среды разработки выводится информация о ресурсах отчета и количество настроек ресурсов;
создается контейнер ресурсов, который заполняется новыми ресурсами, идентификаторы которых выводятся в консоль;
создается новый отчет и его копия, значение количества настроек которого выводится в консоль, после чего объекты отчетов уничтожаются.
Для выполнения примера необходимо разместить в теле метода executeExample класса ViewController (см. раздел «Отображение экспресс-отчёта») следующий код:
// Получаем экспресс-отчет
SPPLOlapReport olapReport = m_olapReport;
// Получаем контейнер ресурсов отчета
SPPLReportResources resources = olapReport->resources();
// Получаем ресурсы отчета
SPPLReportResource res1 = resources->items()[0]->qClass<PPLReportResource>();
// Выводим информацию о ресурсах отчета
printf("%s %s\n", "Расширение ресурсов:", res1->ext()->UTF8String());
printf("%s %s\n", "Путь до ресурсов:", res1->path()->UTF8String());
if (res1->fullPath() != NULL) {
printf("%s %s\n", "Полный путь до ресурсов:", res1->fullPath()->UTF8String());
} else {
printf("Полный путь до ресурсов не определён\n");
}
printf("%s %s\n", "Идентификатор ресурсов:", res1->id()->UTF8String());
printf("%s %s\n", "MIME-тип ресурсов:", res1->mimeType()->UTF8String());
// Выводим количество настроек ресурсов
printf("%s %d\n", "Количество настроек ресурсов отчета:", res1->generatePlist()->qClass<NMutableDictionary>()->count());
// Создаем новые ресурсы отчета
SNString newId = NString::stringWithNSString(@"NewResource1");
SPPLReportResource newRes1 = PPLReportResource::resource(newId, res1->path(), res1->ext(), res1->mimeType(), olapReport);
// Создаем новые ресурсы отчета на основе справочника с настройками
SNMutableDictionary pList = res1->generatePlist()->qClass<NMutableDictionary>();
SPPLReportResource newRes2 = PPLReportResource::resource(pList, olapReport);
// Создаем и заполняем массив ресурсов
SNMutableArray arr = new NMutableArray();
arr->addObject(newRes1);
arr->addObject(newRes2);
// Создаем новый контейнер ресурсов отчета
SPPLReportResources newResources = new PPLReportResources(arr);
// Выводим идентификаторы созданных ресурсов отчета
for (int i = 0; i < newResources->items()->count(); i++) {
printf("%s %s\n", "Идентификатор добавленных ресурсов:", newResources->items()->objectAtIndex<PPLReportResource>(i)->id()->UTF8String());
}
// Создаем новый отчет с помощью описания объекта репозитория, на основе которого был создан исходный отчет, и его копию
SPPLReport newReport1 = PPLReport::report(olapReport->descriptor());
if (newReport1 != NULL) {
SPPLReport newReport2 = newReport1->copy()->qClass<PPLReport>();
// Получаем справочник настроек созданного отчета
SNMutableDictionary newReportPList = newReport2->generatePlist()->qClass<NMutableDictionary>();
// Выводим количество настроек отчета
printf("%s %d\n", "Количество настроек отчета:", newReportPList->count());
// Уничтожаем объекты отчетов
newReport1->~PPLReport();
newReport2->~PPLReport();
}
В результате выполнения примера в консоль среды разработки будут выведены значения настроек отчета:
Расширение ресурсов: svg
Путь до ресурсов: 24gsty4k
Полный путь до ресурсов: /Users/gam/Library/Application Support/iPhone Simulator/7.0.3/Applications/BC361FA1-CE06-4160-A2BA-1CE978341EB8/Documents/repositories/B2130311EBF84A38299E03DEB2196EFF/OLAP_MOB/24gsty4k.svg
Идентификатор ресурсов: 24gsty4k
MIME-тип ресурсов: image/svg+xml
Количество настроек ресурсов отчета: 4
Идентификатор добавленных ресурсов: NewResource1
Идентификатор добавленных ресурсов: 24gsty4k
Количество настроек отчета: 2
См. также: