Grid++Report实现Web报表
生活随笔
收集整理的這篇文章主要介紹了
Grid++Report实现Web报表
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ?最早接觸報(bào)表是在機(jī)房收費(fèi)系統(tǒng)中,那時(shí)候還是在C/S模式下,所以可以直接在窗體上添加報(bào)表。而現(xiàn)在,已經(jīng)轉(zhuǎn)戰(zhàn)B/S模式下。本篇博客將介紹如何實(shí)現(xiàn)Web報(bào)表。
? ? 【需求說(shuō)明】
? ? 在我們的生活中,表格也是無(wú)處不在,清晰而有條理。在這次的項(xiàng)目中,也需要在瀏覽器中直接打印報(bào)表(非IE打印)與導(dǎo)出報(bào)表,讓用戶使用更安全。 ? ? 【開(kāi)發(fā)環(huán)境】 ? ? 整個(gè)項(xiàng)目是B/S模式下的,前臺(tái)采用的MVC模式。開(kāi)發(fā)中的軟件:VS2012,Grid++Report5.0
? ? 【實(shí)現(xiàn)步驟】
? ? 1.首先,我們可以先在報(bào)表軟件下制作好自己需要的模板。在此,就不再寫下詳細(xì)步驟。參考博客推薦:制作報(bào)表詳細(xì)教程。
? ? 2.導(dǎo)入Grid++Report官方提供三個(gè)文件,分別是:ReportData.cs、MssqlReportData.cs、CreateControl.js ? ? 3.導(dǎo)入制作好的報(bào)表模板文件
? ? 4.在Controller下添加控制器,VS2012會(huì)自動(dòng)幫我們生成一些代碼。 ? ? 5.在生成的代碼中,選中ActionResult,直接選擇添加視圖。
? ? 6.因?yàn)槲覀冎苯訛g覽的網(wǎng)頁(yè),要使報(bào)表在網(wǎng)頁(yè)下顯示,還需要添加一個(gè)aspx視圖頁(yè)。在aspx頁(yè)面加載的時(shí)候,就從數(shù)據(jù)庫(kù)中插敘,獲取報(bào)表所需要顯示的內(nèi)容,數(shù)據(jù)格式規(guī)定為XML數(shù)據(jù)。 【具體代碼】 Controller: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace LFBidSystem.Controllers {public class RaterSignController : Controller{//// GET: /Test/public ActionResult RaterSign(){return View();}} }View: @{ViewBag.Title = "RaterSign"; } <script src="../../Scripts/CreateControl.js" type="text/javascript"></script> <script type="text/javascript">CreateDisplayViewerEx("100%", "100%", "../../Content/grf/LFCGPW.grf", "", true, ""); </script> aspx: <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <%@ Page Language="C#" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) {string QuerySQL = string.Format("select * from T_SpecialistInfo");SqlXMLReportData.GenDetailData(this, QuerySQL); }</script> ? ? ? ?【實(shí)現(xiàn)效果】
【問(wèn)題解決】 ? ? 常見(jiàn)問(wèn)題1:網(wǎng)頁(yè)上不顯示報(bào)表。 ? ? 這個(gè)問(wèn)題與Grid++report軟件、瀏覽器有著直接關(guān)系。之前用的6.0的Report,后來(lái)問(wèn)了問(wèn)負(fù)責(zé)維護(hù)人事系統(tǒng)的,他們用的都是5.0的Report。所以,我又重新安裝了。另外,這個(gè)軟件需要安裝插件,我安裝的是5.8的插件。
? ? 常見(jiàn)問(wèn)題2:報(bào)表模板不能正常訪問(wèn)。
? ? 具體頁(yè)面如下: 這是因?yàn)镮IS7必須定義文件擴(kuò)展名對(duì)應(yīng)的 MIMIE 類型才能下載這種類型的文件。具體解決方案參考博客:MVC模式下報(bào)表問(wèn)題解決。 ? ?常見(jiàn)問(wèn)題3:頁(yè)面報(bào)表顯示不完整。
? ? 這主要是網(wǎng)頁(yè)布局問(wèn)題,可以在網(wǎng)頁(yè)布局代碼上添加如下代碼,報(bào)表就可以完整顯示了。 <style type="text/css"> html,body {margin:0;height:100%; } </style> ? ? 【學(xué)習(xí)心得】
? ? 在這一實(shí)現(xiàn)過(guò)程,還是遇到了一系列的問(wèn)題。之前都是在網(wǎng)上直接搜博客,博客也大都是提高班師哥師姐寫的,后來(lái)遇到了其他問(wèn)題,連官方提供的三個(gè)文件里封裝好的代碼,我都翻來(lái)翻去看了好幾遍,也沒(méi)有得到解決方案。 ? ? 就在我不知所措的時(shí)候,我看到了電腦桌面Grid++Report軟件的幫助文檔。才發(fā)現(xiàn),原來(lái)我遇到的這些問(wèn)題,幫助文檔中都有說(shuō)明。 ?? ? ? 所以說(shuō),這不禁讓我想到了米老師語(yǔ)錄中的那句話:多看幫助,少走彎路。有了這一次走投無(wú)路的情況下,才想起來(lái)的“幫助”,以后不管再遇見(jiàn)什么東西,都不會(huì)再忘記有“幫助”這一好東西。? ? ? ?
? ? 在我們的生活中,表格也是無(wú)處不在,清晰而有條理。在這次的項(xiàng)目中,也需要在瀏覽器中直接打印報(bào)表(非IE打印)與導(dǎo)出報(bào)表,讓用戶使用更安全。 ? ? 【開(kāi)發(fā)環(huán)境】 ? ? 整個(gè)項(xiàng)目是B/S模式下的,前臺(tái)采用的MVC模式。開(kāi)發(fā)中的軟件:VS2012,Grid++Report5.0
? ? 【實(shí)現(xiàn)步驟】
? ? 1.首先,我們可以先在報(bào)表軟件下制作好自己需要的模板。在此,就不再寫下詳細(xì)步驟。參考博客推薦:制作報(bào)表詳細(xì)教程。
? ? 2.導(dǎo)入Grid++Report官方提供三個(gè)文件,分別是:ReportData.cs、MssqlReportData.cs、CreateControl.js ? ? 3.導(dǎo)入制作好的報(bào)表模板文件
? ? 4.在Controller下添加控制器,VS2012會(huì)自動(dòng)幫我們生成一些代碼。 ? ? 5.在生成的代碼中,選中ActionResult,直接選擇添加視圖。
? ? 6.因?yàn)槲覀冎苯訛g覽的網(wǎng)頁(yè),要使報(bào)表在網(wǎng)頁(yè)下顯示,還需要添加一個(gè)aspx視圖頁(yè)。在aspx頁(yè)面加載的時(shí)候,就從數(shù)據(jù)庫(kù)中插敘,獲取報(bào)表所需要顯示的內(nèi)容,數(shù)據(jù)格式規(guī)定為XML數(shù)據(jù)。 【具體代碼】 Controller: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace LFBidSystem.Controllers {public class RaterSignController : Controller{//// GET: /Test/public ActionResult RaterSign(){return View();}} }View: @{ViewBag.Title = "RaterSign"; } <script src="../../Scripts/CreateControl.js" type="text/javascript"></script> <script type="text/javascript">CreateDisplayViewerEx("100%", "100%", "../../Content/grf/LFCGPW.grf", "", true, ""); </script> aspx: <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <%@ Page Language="C#" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) {string QuerySQL = string.Format("select * from T_SpecialistInfo");SqlXMLReportData.GenDetailData(this, QuerySQL); }</script> ? ? ? ?【實(shí)現(xiàn)效果】
【問(wèn)題解決】 ? ? 常見(jiàn)問(wèn)題1:網(wǎng)頁(yè)上不顯示報(bào)表。 ? ? 這個(gè)問(wèn)題與Grid++report軟件、瀏覽器有著直接關(guān)系。之前用的6.0的Report,后來(lái)問(wèn)了問(wèn)負(fù)責(zé)維護(hù)人事系統(tǒng)的,他們用的都是5.0的Report。所以,我又重新安裝了。另外,這個(gè)軟件需要安裝插件,我安裝的是5.8的插件。
? ? 常見(jiàn)問(wèn)題2:報(bào)表模板不能正常訪問(wèn)。
? ? 具體頁(yè)面如下: 這是因?yàn)镮IS7必須定義文件擴(kuò)展名對(duì)應(yīng)的 MIMIE 類型才能下載這種類型的文件。具體解決方案參考博客:MVC模式下報(bào)表問(wèn)題解決。 ? ?常見(jiàn)問(wèn)題3:頁(yè)面報(bào)表顯示不完整。
? ? 這主要是網(wǎng)頁(yè)布局問(wèn)題,可以在網(wǎng)頁(yè)布局代碼上添加如下代碼,報(bào)表就可以完整顯示了。 <style type="text/css"> html,body {margin:0;height:100%; } </style> ? ? 【學(xué)習(xí)心得】
? ? 在這一實(shí)現(xiàn)過(guò)程,還是遇到了一系列的問(wèn)題。之前都是在網(wǎng)上直接搜博客,博客也大都是提高班師哥師姐寫的,后來(lái)遇到了其他問(wèn)題,連官方提供的三個(gè)文件里封裝好的代碼,我都翻來(lái)翻去看了好幾遍,也沒(méi)有得到解決方案。 ? ? 就在我不知所措的時(shí)候,我看到了電腦桌面Grid++Report軟件的幫助文檔。才發(fā)現(xiàn),原來(lái)我遇到的這些問(wèn)題,幫助文檔中都有說(shuō)明。 ?? ? ? 所以說(shuō),這不禁讓我想到了米老師語(yǔ)錄中的那句話:多看幫助,少走彎路。有了這一次走投無(wú)路的情況下,才想起來(lái)的“幫助”,以后不管再遇見(jiàn)什么東西,都不會(huì)再忘記有“幫助”這一好東西。? ? ? ?
總結(jié)
以上是生活随笔為你收集整理的Grid++Report实现Web报表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一键重装系统工具哪个好哪个更好用——好系
- 下一篇: 一款满足企业级数据需求的web报表工具