Asp.Net+Grid Report实现Web报表
? ? 在做VB版機房收費系統(tǒng)時,周結(jié)賬單中的水晶報表想必大家都印象深刻。操作流程為:窗體加載時,在窗體中顯示數(shù)據(jù)表中的全部數(shù)據(jù);選中查詢條件,點擊查詢按鈕,將對顯示的數(shù)據(jù)進行篩選;如果用戶想打印報表,直接點擊控件上的打印按鈕即可進行打印。
? 可這些操作是在C/S的結(jié)構(gòu)中完成的,最近廊坊人事局的客戶要求我們開發(fā)小組完成B/S的報表打印,經(jīng)過一天的苦苦思索,我終于完成了一個成功的Demo。在此把成果和大家分享下,希望能幫助大家進步。
? ?解決方案目錄如下:
? ?
? 操作步驟如下:
? 1.導(dǎo)入Grid Report官方提供的ReportData.cs、MssqlReportData.cs、CreateControl.js,推薦下載地址:http://pan.baidu.com/s/1qWoGe9A;
? 2.用Grid++Report 報表設(shè)計器制作水晶報表aaa.grf,制作過程參考博客:用VB做報表;
? 3.當完成頁面加載時,需要在showAll.aspx設(shè)置顯示數(shù)據(jù)的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中設(shè)置篩選數(shù)據(jù)的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中設(shè)置每次訪問的aspx文件
<html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Web報表(B/S報表)演示 - 查詢顯示控件展現(xiàn)報表</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">//用查詢顯示控件展現(xiàn)報表,從URL“../grf/1a.grf”獲取報表膜板定義,從URL“../data/xmlCustomer.aspx”獲取XML形式的報表數(shù)據(jù),CreateDisplayViewerEx("100%", "100%", "grf/aaa.grf", "showAll.aspx", true, "");</script> </body> </html> ? ? ? ? ? 通過代碼我們可以發(fā)現(xiàn),當html頁面加載時,頁面會加載grf文件夾下的aaa.grf文件,同時向showAll.aspx請求aaa.grf數(shù)據(jù)顯示需要執(zhí)行的SQL語句。
? 當點擊查詢按鈕后,html頁面通過ReportViewer.DataURL向showPart.aspx提交查詢參數(shù),showPart.aspx通過 Request.QueryString["account"])方式接收html提交的查詢參數(shù),然后通過SqlXMLReportData.GenDetailData()方法執(zhí)行帶有查詢參數(shù)的SQL語句。
? 到此,準備工作已經(jīng)完成,咱們看看代碼運行效果:
? 頁面加載時:
? ? ? ? ??
? 點擊查詢后:
? ? ? ? ?
? 怎么樣,和C/S版的很像吧!如果你喜歡就點個贊吧,謝謝。
總結(jié)
以上是生活随笔為你收集整理的Asp.Net+Grid Report实现Web报表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年中国水文发展概况及未来水文事业
- 下一篇: 这两款好用的配音软件,自媒体小白也能轻松