Экспорт веб-отчета в Excel (Business Objects / Java) - PullRequest
0 голосов
/ 28 октября 2011

Я должен экспортировать отчет Webi в формате Excel и показать его пользователю. Присутствует среда BOXI R3.

// reportQuery: "Выбрать * из CI_INFOOBJECTS, где SI_NAME = 'xxxx' и si_kind = 'Webi' и SI_PARENTID = xxxx"

IInfoObjects webiDocs = infostore.query (reportQuery.toString); IWebi webiDoc = IWebi webiDocs.get (o);

Получение следующего исключения (Строка кода: запрос в информационном магазине): java.lang.NoClassFoundException: com.crystaldecisions.celib.trace.h

Примечание: h.class отсутствует в BOXI R3 celib.jar

1 Ответ

0 голосов
/ 28 октября 2011

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

// get your list of IInfoObjects
IInfoObjects webiDocs = infostore.query(reportQuery.toString);

// get a report engine to open the document
ReportEngines engines = (ReportEngines)enterpriseSession.getService("ReportEngines");
ReportEngine reportEngine = engines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);

//Get the actual Doc instance
DocumentInstance docInstance = reportEngine.openDocument(webiDocs.get(0).getID());

// get the Raw data stream
BinaryView bv = (BinaryView)documentInstance.getView(OutputFormatType.CSV);
OutputStream outputStream; // defined else where to meet your needs
bv.getContent(outputStream);

Я заметил, что приведение объекта IInfoObject к тому, что, по вашему мнению, оно есть, обычно не работает. Определенные дочерние классы, по-видимому, используются внутри библиотек больше, чем фактические внешне используемые классы.

...