2011-10-28 64 views
0

我必須導出excel格式的Webi報表並將其顯示給用戶。目前的環境是BOXI R3。在Excel中導出Webi報表(Business Objects/java)

// reportQuery: 「從CI_INFOOBJECTS選擇*,其中SI_NAME = 'XXXX' 和si_kind = 'Webi' 和SI_PARENTID = XXXX」

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

得到以下(代碼行:查詢infostore)例外:java.lang.NoClassFoundException:com.crystaldecisions.celib.trace.h

注:h.class沒有出現在BOXI R3 celib。罐子

回答

0

要打開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投射到你認爲它專門是通知,通常不會工作。特定的兒童課程似乎在圖書館內部使用,而不是實際的外部可用課程。