图表生成器Stimulsoft Reports.Java示例:运行 Java 网页设计器

发布时间 : 2021-08-31 10:08:41.140|阅读 202 次

概述:本教程展示了在 Java 报告工具中运行 Web 设计器的基础知识。例如,打开以编辑主从报告模板。

Stimulsoft Ultimate是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。

Stimulsoft Reports不仅拥有强大的报表导出系统,而且还支持多种报表导出格式,拥有简单且强大的报表引擎。Stimulsoft Reports基本原则是,用简单常规的方法创建报表,将不同的技术应用于应用程序。Stimulsoft Reports.Java是一个专为在Java应用程序中的报表进行交互和处理的报表工具。

点击下载Stimulsoft Reports.Java v2021.3.1最新版

本教程展示了在 Java 报告工具中运行 Web 设计器的基础知识。例如,打开以编辑主从报告模板。

首先,我们需要创建动态 Web 项目。

图表生成器Stimulsoft Reports.Java示例:运行 Java 网页设计器

然后将 Stimulsoft Java Libs 添加到项目中。

图表生成器Stimulsoft Reports.Java示例:运行 Java 网页设计器

也可以转换为 Maven 项目并配置pom.xml文件以使用来自Maven 的库:

<project xmlns="http://maven.apache.org/POM/4.0.0"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>webdesigner</groupId>
	<artifactId>webdesigner</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<build>
		<sourceDirectory>src</sourceDirectory>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.5.1</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>com.stimulsoft</groupId>
			<artifactId>stimulsoft-reports-libs</artifactId>
			<version>2017.1.1</version>
		</dependency>
	</dependencies>
</project>

接下来,我们需要在“WebContent/WEB-INF”文件夹中创建“web.xml”文件。这里我们配置了StimulsoftResourceservlet 来检索诸如 *.js 和图像文件等内容,以及StiWebDesignerActionServlet与 java web 设计器一起操作的servlet :

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns="http://java.sun.com/xml/ns/javaee"
		xmlns:web="http://java.sun.com/xml/ns/javaee/webapp_2_5.xsd"
		xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
		id="WebApp_ID" version="2.5">
	<display-name>stimulsoft_webdesigner</display-name>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>StimulsoftResource</servlet-name>
		<servlet-class>com.stimulsoft.web.servlet.StiWebResourceServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>StimulsoftResource</servlet-name>
		<url-pattern>/stimulsoft_web_resource/*</url-pattern>
	</servlet-mapping>
	<servlet>
		<servlet-name>StimulsoftDesignerAction</servlet-name>
		<servlet-class>com.stimulsoft.webdesigner.servlet.StiWebDesignerActionServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>StimulsoftDesignerAction</servlet-name>
		<url-pattern>/stimulsoft_webdesigner_action</url-pattern>
	</servlet-mapping>
</web-app>

在下一步中,我们需要在“WebContent”文件夹中创建“index.jsp”页面。这里我们加载“Master-Detail.mrt”报告模板文件并定义报告的数据路径:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@page import=";java.io.FileOutputStream"%>
<%@page import=";java.io.FileInputStream"%>
<%@page import=";com.stimulsoft.report.utils.data.StiDataColumnsUtil"%>
<%@page import=";com.stimulsoft.report.dictionary.StiDataColumnsCollection"%>
<%@page import=";com.stimulsoft.report.dictionary.StiDataColumn"%>
<%@page import=";com.stimulsoft.report.utils.data.StiSqlField"%>
<%@page import=";com.stimulsoft.report.dictionary.dataSources.StiDataTableSource"%>
<%@page import=";com.stimulsoft.report.utils.data.StiXmlTable"%>
<%@page import=";com.stimulsoft.report.utils.data.StiXmlTableFildsRequest"%>
<%@page import=";com.stimulsoft.webdesigner.StiWebDesigerHandler"%>
<%@page import=";com.stimulsoft.webdesigner.StiWebDesignerOptions"%>
<%@page import="com.stimulsoft.report.dictionary.databases.StiXmlDatabase"%>
<%@page import=";java.io.File"%>
<%@page import=";com.stimulsoft.report.StiSerializeManager"%>
<%@page import=";com.stimulsoft.report.StiReport"%>
<%@page language=";java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<%@taglib uri=";http://stimulsoft.com/webdesigner" prefix="stiwebdesigner"%>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Stimulsoft Webdesigner for Java</title>
	<style type="text/css">
	</style>
</head>
<body>
	<%
		final String reportPath = request.getSession().getServletContext().getRealPath("/reports/Master-Detail.mrt");
		final String xmlPath = request.getSession().getServletContext().getRealPath("/data/Demo.xml");
		final String xsdPath = request.getSession().getServletContext().getRealPath("/data/Demo.xsd");
		final String savePath = request.getSession().getServletContext().getRealPath("/save/");

...

接下来我们需要实现StiWebDesigerHandler用于填充报告数据并保存/加载报告模板:

...

		StiWebDesignerOptions options = new StiWebDesignerOptions();
		//options.setLocalization(request.getSession().getServletContext().getRealPath("/localization/de.xml"));

...

我们也可以指定网页设计器选项,例如设置必要的本地化:

...

		StiWebDesigerHandler handler = new StiWebDesigerHandler() {
			// Occurred on loading webdesinger. Must return edited StiReport
			public StiReport getEditedReport(HttpServletRequest request) {
				try {
					StiReport report = StiSerializeManager.deserializeReport(new File(reportPath));
					report.getDictionary().getDatabases().add(new StiXmlDatabase("Demo", xsdPath, xmlPath));
					return report;
				} catch (Exception e) {
					e.printStackTrace();
				}
				return null;
			}
			
			// Occurred on opening StiReport. Method intended for populate report data.
			public void onOpenReportTemplate(StiReport report, HttpServletRequest request) {
				report.getDictionary().getDatabases().add(new StiXmlDatabase("Demo", xsdPath, xmlPath));
			}
			
			// Occurred on new StiReport. Method intended for populate report data.
			public void onNewReportTemplate(StiReport report, HttpServletRequest request) {
				report.getDictionary().getDatabases().add(new StiXmlDatabase("Demo", xsdPath, xmlPath));
				try {
					StiXmlTableFildsRequest tables = StiDataColumnsUtil.parceXSDSchema(new FileInputStream(xsdPath));
					for (StiXmlTable table : tables.getTables()) {
						StiDataTableSource tableSource = new StiDataTableSource(
							"Demo." + table.getName(), table.getName(), table.getName());
						tableSource.setColumns(new StiDataColumnsCollection());
						for (StiSqlField field : table.getColumns()) {
							StiDataColumn column = new StiDataColumn(
								field.getName(), field.getName(), field.getSystemType());
							tableSource.getColumns().add(column);
						}
						tableSource.setDictionary(report.getDictionary());
						report.getDictionary().getDataSources().add(tableSource);
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			
			// Occurred on save StiReport. Method must implement saving StiReport
			public void onSaveReportTemplate(StiReport report, StiRequestParams requestParams, HttpServletRequest request) {
				try {
					FileOutputStream fos = new FileOutputStream(savePath + requestParams.designer.fileName);
					if (requestParams.designer.password != null) {
						StiSerializeManager.serializeReport(report, fos, requestParams.designer.password);
					} else {
						StiSerializeManager.serializeReport(report, fos, true);
					}
					fos.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		};
		
		pageContext.setAttribute("handler", handler);
		pageContext.setAttribute("options", options);
	%>

...

最后,将网页设计器标签放到jsp页面中:

...

	<stiwebdesigner:webdesigner handler="${handler}" options="${options}" />
</body>
</html>

现在您可以将项目部署到 Tomcat 并运行它。

图表生成器Stimulsoft Reports.Java示例:运行 Java 网页设计器

在下面的屏幕截图中,可以看到示例代码的结果:

图表生成器Stimulsoft Reports.Java示例:运行 Java 网页设计器

Aspose、E-iceblue、FastReport、Stimulsoft等文档/报表图表类开发工具享超低折扣,如有需要可直接联系在线客服


在线
客服
微信
QQ 电话
023-68661681
返回
顶部