一、帆軟報表簡介 報表工具中,帆軟報表相比Crystal Report(水晶報表)、SQL Server Report Service(SSRS)等報表工具來說算是佼佼者,此外帆軟報表在統計圖表、數據填報方面應用也不錯,此處僅針對帆軟的基本報表功能的應用說事兒。 http://www.fanruan ...
一、帆軟報表簡介
報表工具中,帆軟報表相比Crystal Report(水晶報表)、SQL Server Report Service(SSRS)等報表工具來說算是佼佼者,此外帆軟報表在統計圖表、數據填報方面應用也不錯,此處僅針對帆軟的基本報表功能的應用說事兒。
http://www.fanruan.com/
二、伺服器端集成
帆軟報表使用Java實現,可部署在Tomcat上,客戶端查看報表時可直接在瀏覽器上呈現。
對於企業應用中報告文檔的生成,可通過模擬Web請求獲取到報表/報告的Word、Pdf輸出文檔;如果需要對生成的文檔做二次加工,例如與其他文檔合併等,可接著使用Word操作組件、服務(例如DocX、MS Word DCOM等)或PDF操作組件(iTextSharp等)操作文檔,最終生成一份完整報告。
例如帆軟報表服務路徑為http://localhost:8075/WebReport/ReportServer,傳遞參數reportlets可指定要訪問的報表路徑,傳遞給該報表的參數可繼續通過paramname=paramvalue的格式追加到url上,使用HTTP Get請求該URL,則可訪問到報表。
參數format指定輸出文件格式,可指定為pdf、doc、xls,輸出PDF、Word、Excel文件;需要註意的是,輸出的Word文件實質是RTF文件,如果需要用DocX等Office Open XML操作時,首先需要轉換格式,最好的方式莫過於使用微軟Word DCOM;同樣,Excel也是97-2003格式;報表輸出這方面來說,帆軟做的不夠好。
請求報表:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "GET"; HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); } catch (Exception ex) { } if (response.ContentType != "application/pdf" && response.ContentType != "application/msword" && response.ContentType != "application/x-excel") { response.Close(); } Stream stream = response.GetResponseStream();
寫到文件:
int bufferSize = 2048; byte[] bytes = new byte[bufferSize]; string fileSaveFolder; fileName = Guid.NewGuid().ToString(); string fileSaveName = fileName + extName; string fileSavePath = fileSaveFolder + fileSaveName; FileStream fs = new FileStream(fileSavePath, FileMode.Create); int length = stream.Read(bytes, 0, bufferSize); while (length > 0) { fs.Write(bytes, 0, length); length = stream.Read(bytes, 0, bufferSize); } stream.Close(); fs.Close();