1

WebiレポートをExcel形式でエクスポートして、ユーザーに表示する必要があります。現在の環境はBOXIR3です。

ReportQuery:

Select * from CI_INFOOBJECTS where SI_NAME ='xxxx' and si_kind ='Webi' and SI_PARENTID=xxxx

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

infostore.queryで例外をスローします。

java.lang.NoClassFoundException:com.crystaldecisions.celib.trace.h

注:h.classはBOXIR3celib.jarには存在しません

4

1 に答える 1

1

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からあなたが具体的に考えているものへのキャストは通常​​は機能しないことに気づきました。特定の子クラスは、実際の外部で使用可能なクラスとしてよりも、ライブラリの内部で使用されているようです。

于 2011-10-28T14:54:32.880 に答える