Asp.Net+Grid Report实现Web报表
? ? 在做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="查詢" οnclick="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版的很像吧!如果你喜歡就點個贊吧,謝謝。
總結
以上是生活随笔為你收集整理的Asp.Net+Grid Report实现Web报表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年中国水文发展概况及未来水文事业
- 下一篇: asp.net ajax控件工具集 Au