一、帆軟報表簡介
報表工具中,帆軟報表相比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();
復制代碼(編輯:雷林鵬 來源:網絡)