1. 程式人生 > >Grid++Report6 B/S報表列印之Java,使用jsp列印報表實現

Grid++Report6 B/S報表列印之Java,使用jsp列印報表實現

1,在官網下載需要的外掛與編輯器:

2、需要注意的是:

銳浪Grid++Report報表外掛不能執行在64位瀏覽器中,相關報表與列印功能將無法正常運新,請改用32位瀏覽器(官網給出的說明)

3、根據官網給出的demo設計以下呼叫的流程:

1、需要使用的頁面拼接需具體列印資訊的url(包括模板名稱,標題,請求具體資料url的地址)

2、具體列印頁面接收對應的引數資料,然後顯示對應的列印頁面

4、具體程式碼

頁面呼叫js:

比如(http://localhost:8080/test/PrintReport.jsp?title=%E6%89%93%E5%8D%B0%E8%8D%89%E5%8D%95

&report=TsCD8.grf&data=http%3a%2f%2flocalhost%3a8080%2ftest%2fservlet%2fGetData%3fid%3d100)

/*
 *將需要列印資料地址拼接,並跳轉到對應列印頁面
 *Title:列印頁面標題
 *ReportURL:報表模板名稱
 *DataURL:ajax返回具體資料地址
 */
var printFunction = function (Title, ReportURL, DataURL) {
	//具體需要跳轉的地址
	var printURL = "http://localhost:8080/test/"
		+ "PrintReport.jsp?title=" + encodeURIComponent(Title)
		+ "&report=" + encodeURIComponent(ReportURL)
		+ "&data=" + encodeURIComponent(DataURL);
	//再新視窗開啟這個列印頁面
	window.open(printURL, '_blank');			
}

列印頁面:PrintReport.jsp

<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.net.URLDecoder"%>
<html>
<head>
	<title>報表列印 - <%=URLDecoder.decode(request.getParameter("title"), "UTF-8")%></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:0;
            height:100%;
        }
    </style>
</head>
<body style="margin:0">
	<script type="text/javascript">
	    var Report = "<%=request.getParameter("report")%>";
	    if (Report == "null")
			Report = "";
	    else if (Report != "")
	        Report = "grf/" + Report;//具體放置模板檔案的地址
	        
	    var Data = "<%=request.getParameter("data")%>";
	    if (Data == "null")
			Data = "";
	    else if (Data != "")
	        Data = Data;
	    //生成列印頁面    
	    CreatePrintViewerEx("100%", "100%", Report, Data, true, "");
	</script>
</body>
</html>

ajax返回資料格式:

5、列印頁面結果:

6、總結:

1、因為使用了列印頁面是跳轉的新頁面的形式,列印前打判斷可以在呼叫js跳轉方法前實現。

2、具體列印頁面也可以不使用jsp來實現,可以使用html頁面來實現,然後使用js來獲取對應傳過來的url引數也是可行的

3、具體返回打ajax格式需要根據模板設計的不同來格式會有所改變

4、具體的模板繪製方法請參考官方教程

相關推薦

Grid++Report6 B/S報表列印Java使用jsp列印報表實現

1,在官網下載需要的外掛與編輯器: 2、需要注意的是: 銳浪Grid++Report報表外掛不能執行在64位瀏覽器中,相關報表與列印功能將無法正常運新,請改用32位瀏覽器(官網給出的說明) 3、

Python tkinter 實現簡單登陸註冊 基於B/S三層體系結構實現用戶身份驗證

cte cursor 實現簡單 結果 pass 分享圖片 not null for 技術 Python tkinter 實現簡單登陸註冊 最終效果 開始界面 ? 註冊 登陸 ? 源碼 login.py # encoding=utf-8 f

編程開發--Java集合類繼承與實現必備知識

編程開發 next() int end long dha cos dHash IV 1、LinkedHashSet有序鏈式集合 舉例: long startTime=System.currentTimeMillis(); LinkedHashSet oprTypeSe

HiveJava操作jdbc以及指令碼實現

原部落格地址:http://blog.csdn.net/evankaka     摘要:本文主要講了如何通過java來連線Hive,以及如何執行hive指令碼 一、Hive連線 1.1、通過shell 1、Hive 命令列模式,直接輸入#/hive

Android多執行緒Java 8中ThreadLocal內部實現機制詳解

前言:ThreadLocal是執行緒內部的儲存類,通過它可以實現在每個執行緒中儲存自己的私有資料。即資料儲存以後,只能在指定的執行緒中獲取這個儲存的物件,而其它執行緒則不能獲取到當前執行緒儲存的這個物件。ThreadLocal有一個典型的應用場景,即我們在前文中

過濾流FilterInputStream實現BufferedInputStream物件流ObjectOutputStream 實現資料持久化

使用過濾流(高階流)BufferedInputStream、BufferedInputStream優化檔案拷貝功能 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.i

列印流printStream:列印流可以列印任意資料而且列印資料之前會先把資料轉換成字串再進行列印

package printStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; /* 列印流:(printSt

黑白Python監控伺服器實現郵件、微信報警!

  本文中筆者暫時實現的只有cpu和記憶體的監控,python可以監控許多的主機資訊,網路,硬碟,機器狀態等,以下是程式碼的實現,程式碼可以實現windows和linux的監控             &nb

JAVAJSPServlet獲取當前工程路徑-絕對路徑

在jsp和class檔案中呼叫的相對路徑不同。 在jsp裡,根目錄是WebRoot 在class檔案中,根目錄是WebRoot/WEB-INF/classes 當然你也可以用System.getProperty("user.dir")獲取你工程的絕對路徑。另:在Jsp,Servlet,Java中詳細獲得路徑的

水晶報表公式化欄位自定義報表

{ 3 4             5            String cnstr =""; 6            //保持欄位的字串  7            String fldstr =""; 8            //保持欄位名稱的陣列  9            String[] fl

Java學習筆記:C/SB/S 區別!

C/S 是Client/Server 的縮寫,是客戶機與伺服器結構的應用程式;B/S是Brower/Server 的縮寫,是瀏覽器和伺服器結構的應用程式,即Web 應用程式。C/S 與B/S 區別如下: 1)硬體環境不同: C/S 一般建立在專用的網路上, 小範圍裡的網路環境, 區域網

java web學習3c/s b/s

軟體開發架構模式: c/s架構--------客戶端—+伺服器端 b/s架構--------瀏覽器——+伺服器端 C/S 架構的概念 C/S是Client/Server,即客戶端/伺服器端架構,一種典型的兩層架構。 客戶端包含一個或多個在使用者的電腦上執行的程式

B/S開發框架Web安全問題及防範規範掛馬和WebShell

信息 處理程序 自動運行 code 被攻擊 保存 完全 進程模型 catch Web站點為什麽會遭受攻擊?是為了惡作劇?損害企業名譽?免費瀏覽收費內容?盜竊用戶隱私信息?獲取用戶賬號謀取私利?總之攻擊方式層出不窮,作為B/S開發框架來說,幫助開發者做好解決安

#Java學習筆記:C/SB/S 區別!

C/S 是Client/Server 的縮寫,是客戶機與伺服器結構的應用程式;B/S是Brower/Server 的縮寫,是瀏覽器和伺服器結構的應用程式,即Web 應用程式。C/S 與B/S 區別如下: 如果有想要學習java的小夥伴,可來我們的java學習扣裙

海康威視 java B/S 開發 流程

最近專案用到了一個呼叫海康威視攝像頭實現外網網頁預覽的需求,由於第一次接觸這類需求,不免有些焦頭爛額,現終於將需求實現,故,作一筆記用於記憶,並希望幫到要用的人。廢話不多說,直接開始: 注:本文中所有的使用的程式碼和工具以及安裝包的下載地址如下:       傳送門:

ERP軟體系統架構- C/SB/S區別與簡介TEL:13083567937

一、什麼是C/S和B/S 要想對“C/S”和“B/S”技術發展變化有所瞭解,首先必須搞清楚三個問題。 第一、什麼是C/S結構。 C/S(Client/Server)結構,即大家熟知的客戶機和伺服器結構。它是軟體系統 體系結構,通過它可以充分利用兩端硬體環境的優勢

基於springMVC、Java web、Mysql的B/S人口資訊管理系統(二)

    經過不斷努力,環境基本搭建好了,由於接近1年多時間沒有碰Eclipse好多都忘記了,進度可能會有點慢。以及第一次接觸SpringMVC好多東西都不清楚,不過應該問題不大。鑑於網路的問題,現在還在下載MySQL,大致講一下環境已經已經做了的工作 。     JDK1.

劍指offer從尾到頭列印連結串列(Java實現

從尾到頭列印連結串列 NowCoder 題目描述: 輸入一個連結串列,按連結串列值從尾到頭的順序返回一個ArrayList。 ###解題思路: 解法一:利用遞迴 import java.util.ArrayList; public class Solution {

JAVA B/S系統實現客戶端螢幕截圖,Java版的QQ截圖

簡介:本方法首先需要抓到螢幕的整個圖象,將圖象顯示在一個JFrame中,再將JFrame全屏顯示,這樣就模擬出了一個桌面,Java也就可以獲得滑鼠的作用區域從而實現桌面中的小範圍截圖。Java實現QQ螢幕截圖功能(跨平臺螢幕截圖功能,支援windows,OSX,Linux...) 程式目錄結構如下:

玩轉Webservlet(三)---一張圖看懂B/S架構

學WEB, 首先 要明白B/S架構,本文將簡單說一下小編的愚見,若有不當,歡迎大家指正。 首先,什麼是B/S架構?B/S是Broweser/Server的縮寫,即瀏覽器/伺服器模式,簡單說就是客戶端使用瀏覽器,服務端使用Web伺服器,客戶端與服務端之間使用http協議進行通