1. 程式人生 > >使用Grid++report開發報表功能

使用Grid++report開發報表功能

一、Grid++report

        1.Grid++Report概述

         Grid++Report 外掛適用於開發 B/S 結構的網路報表系統,支援全部主流WEB瀏覽器,是軟體開發人員開發 WEB 報表的最佳選擇。

         支援 AASP、ASP.NET、JSP、PHP 等一切 WEB 軟體開發技術。

         可以在瀏覽器中直接列印報表(非瀏覽器列印)與匯出報表。

二、報表開發過程

        1.開發 B/S 報表

         用 Grid++Report 外掛開發 B/S 報表的過程主要包括:

         1)設計報表模板

         2)程式設計實現報表資料提供網頁

         3)編輯報表展現網頁

         4)部署報表系統到WEB伺服器

三、具體開發過程

        1.設計報表模板

         2)設計一個會員資料的報表模板

               ①開啟剛下載並安裝好的Grid++Report 報表設計器。

               ②插入報表頭:執行選單“插入-〉報表頭”,新插入的報表頭顯示在報表佈局視窗中。

               ③插入一個靜態框顯示報表標題:執行選單“插入-〉靜態框”,用滑鼠在報表頭的顯示區域拖放一個矩形區域,

                  一個新的靜態框顯示在拖放的矩形區域位置,點選新插入的靜態框,當文字插入游標顯示時,輸入“會員資料”。

               ④插入報表尾:執行選單“插入-〉報表尾”,新插入的報表尾顯示在報表佈局視窗中。

               ⑤插入明細網格:執行選單“插入-〉明細網格”,新插入的報表尾顯示在報表佈局視窗中,結果如圖一所示。

               ⑥自動生成標題行和內容行:在明細網格的工具欄上選擇“設定資料來源...”開啟定義視窗,如圖二所示,

                  點選“建立資料庫連線串”,在這裡是使用MySQL,繼續選擇“Microsoft OLE DB Provider for ODBC Drivers ”,

                  繼續“下一步”,然後選擇資料來源名稱,填寫使用者名稱和密碼,最後測試連線;

                  完成資料庫連線串配置後繼續填寫“資料庫查詢SQL”,在這裡是“select * from gy_member”。

                (注意)如果沒有安裝ODBC For Mysql,可以到MySQL官網下載安裝,

                  並且需要在“控制面板----管理工具----ODBC資料來源”中新增MySQL支援,否則無法配置資料庫連線。

               ⑦在明細網格的工具欄上選擇“根據欄位自動生成列”則可以完成自動生成標題行和內容行,結果如圖三所示。

               

               

               

        2.JSON資料格式要求

        1)通過介面提供JSON格式的資料,資料格式參考要求如下(不能巢狀多層):

{
    "Detail": [
        {"ProductID": 2,"ProductName": "牛奶","UnitPrice": 15.2,"Quantity": 20,"Amount": 304},
        {"ProductID": 16,"ProductName": "餅乾","UnitPrice": 13.9,"Quantity": 35,"Amount": 486.5},
        {"ProductID": 36,"ProductName": "魷魚","UnitPrice": 15.2,"Quantity": 25,"Amount": 380},
        {"ProductID": 59,"ProductName": "蘇澳乳酪","UnitPrice": 44,"Quantity": 30,"Amount": 1320}
    ]
}

        2)設計的介面及提供的JSON資料:

       

        3.頁面設計       

        1)頁面編寫report.jsp,需要引用Grid++report 6.0提供的外掛,三個JS,CreateControl.js、GRInstall.js和GRUtility.js

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>會員資料報表</title>
    <script type="text/javascript" src="./js/report/CreateControl.js"></script>
    <script type="text/javascript" src="./js/report/GRInstall.js"></script>
    <script type="text/javascript" src="./js/report/GRUtility.js"></script>
    <style type="text/css">
        html,body {
            margin:0;
            height:100%;
        }
    </style>
    <script language="javascript" type="text/javascript">Install_InsertReport();</script>
</head>
<body>
  <script type="text/javascript">
	var Installed = Install_Detect();
	if ( Installed )
		CreateReport("Report");
  </script>
  <script type="text/javascript">
	    var Report = "<%=request.getParameter("report")%>";//獲取傳入的report引數,值為模板放置位置
	    if (Report == "null")
		Report = "";
	    else if (Report != "")
	        Report = "data/report/" + Report;
	    var Data = "<%=request.getParameter("data")%>";//獲取JSON資料介面提供的資料
	    CreatePrintViewerEx("100%", "100%", Report, Data, true, "");
  </script> 
</body>
</html>

        2)通過列印按鈕導航到report頁面並傳遞兩個引數,分別是report和data引數,

             report引數是報表模板的存放位置,data引數是JSON介面,以下是JS程式碼:

                

         4.報表結果

        1)報表結果顯示(需要使用IE核心的瀏覽器,最好使用新版本的IE):