Asp.Net+Grid Report實現Web報表,gridreport
在做VB版機房收費系統時,周結賬單中的水晶報表想必大家都印象深刻。操作流程為:表單載入時,在表單中顯示資料表中的全部資料;選中查詢條件,點擊查詢按鈕,將對顯示的資料進行篩選;如果使用者想列印報表,直接點擊控制項上的列印按鈕即可進行列印。
可這些操作是在C/S的結構中完成的,最近廊坊人事局的客戶要求我們開發小組完成B/S的報表列印,經過一天的苦苦思索,我終於完成了一個成功的Demo。在此把成果和大家分享下,希望能協助大家進步。
解決方案目錄如下:
操作步驟如下:
1.匯入Grid Report官方提供的ReportData.cs、MssqlReportData.cs、CreateControl.js,推薦:http://pan.baidu.com/s/1qWoGe9A;
2.用Grid++Report 報表設計師製作水晶報表aaa.grf,製作過程參考部落格:用VB做報表;
3.當完成頁面載入時,需要在showAll.aspx設定顯示資料的SQL語句
<%@ Page Language="C#" %><script runat="server"> protected void Page_Load(object sender, EventArgs e) { SqlXMLReportData.GenDetailData(this, "select * from aaa"); }</script> 4.點擊查詢按鈕後,需要在showPart.aspx中設定篩選資料的SQL語句
<%@ Page Language="C#" %><script runat="server"> protected void Page_Load(object sender, EventArgs e) { string QuerySQL = string.Format("select *from aaa where account='{0}'" ,Request.QueryString["account"]); SqlXMLReportData.GenDetailData(this, QuerySQL); }</script> 5.在顯示頁面DisplayViewReport.htm中設定每次訪問的aspx檔案
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Web報表(B/S報表)示範 - 查詢顯示控制項展現報表</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="js/CreateControl.js" type="text/javascript"></script> <style type="text/css"> html, body { margin: 20; height: 100%; } </style> <script type="text/javascript"> function btnSearch_onclick() { ReportViewer.Stop(); var account = document.getElementById("account").value; var DataURL = encodeURI("showPart.aspx?account=" + account); ReportViewer.DataURL = DataURL; ReportViewer.Start(); } </script></head><body style="margin: 0"> 帳號:<input type="text" name="account" id="account" /> <input type="button" value="查詢" onclick="return btnSearch_onclick()"/> <p> </p> <script type="text/javascript"> //用查詢顯示控制項展現報表,從URL“../grf/1a.grf”擷取報表膜板定義,從URL“../data/xmlCustomer.aspx”擷取XML形式的報表資料, CreateDisplayViewerEx("100%", "100%", "grf/aaa.grf", "showAll.aspx", true, ""); </script></body></html> 通過代碼我們可以發現,當html頁面載入時,頁面會載入grf檔案夾下的aaa.grf檔案,同時向showAll.aspx請求aaa.grf資料顯示需要執行的SQL語句。
當點擊查詢按鈕後,html頁面通過ReportViewer.DataURL向showPart.aspx提交查詢參數,showPart.aspx通過 Request.QueryString["account"])方式接收html提交的查詢參數,然後通過SqlXMLReportData.GenDetailData()方法執行帶有查詢參數的SQL語句。
到此,準備工作已經完成,咱們看看代碼運行效果:
頁面載入時:
點擊查詢後:
怎麼樣,和C/S版的很像吧!如果你喜歡就點個贊吧,謝謝。
Grid++Report 報表設計師 怎使用
下載安裝之後看例子,安裝目錄下有大量例子。
協助的“產品介紹->快速入門指導”部分。根據快速入門指導中的說明,先把例子程式運行。
Grid++的例子分兩部分:
1、報表範本例子,主要是說明各種格式報表的設計,預設安裝,在C:\Grid++Report 5.0\Samples\Reports目錄下。
2、各種程式設計語言中應用報表的例子,每種程式設計語言都提供了相應例子。預設安裝,C/S報表在C:\Grid++Report 5.0\Samples目錄的對應子目錄下,B/S報表在C:\Grid++Report 5.0\WebSamples目錄的對應子目錄下。
c#下用Grid++Report怎調用設計好的報表?
C:\Grid++Report 5.0\Samples\CSharp
先學習這個目錄下的例子,應該就是幾行代碼的事情。