java报表,Java报表系统

本文目录一览:

支持Java的报表工具都有哪些?

支持Java的报表工具 :

我们所说的”支持”Java的报表工具.其实就是非Java的报表工具,但是可以在Java程序中调用. 这样的产品很多,总的讲一大类是采用独立报表服务器的,如Bo/Crystal Report,Brio,Cognos等等,另一大类是在前端有控件的,如数巨报表等。

关于Java的报表工具 我们可以到思迈特软件Smartbi了解一下,广州思迈特软件Smartbi有限公司(思迈特软件Smartbi)成立于2011年,致力于为企业客户提供一站式商业智能解决方案,以提升和挖掘企业客户的数据价值。

“思迈特软件Smartbi”是企业级商业智能和大数据分析品牌,经过多年持续自主研发,凝聚大量商业智能最佳实践经验,整合了各行业的数据分析和决策支持的功能需求。

报表工具靠不靠谱,来试试Smartbi,思迈特软件Smartbi经过多年持续自主研发,凝聚大量商业智能最佳实践经验,整合了各行业的数据分析和决策支持的功能需求。满足最终用户在企业级报表、数据可视化分析、自助探索分析、数据挖掘建模、AI智能分析等大数据分析需求。

思迈特软件Smartbi个人用户全功能模块长期免费试用

马上免费体验:Smartbi一站式大数据分析平台

请教:什么是报表工具或java报表 网上很多 都干嘛的

报表是数据呈现的载体,功能也就是来展现数据的。

一般就是包括表格及统计图这些类型,表格又分简单的及复杂的报表格式,国外的表格一般较为简单,从国外的报表产品也能看出来,但是国内的表格完全不同,也被称为中国式复杂报表。 另外表格也具体数据录入功能,在前端可以增删改数据,提交入库或者其他数据文件。并且可以嵌入到工作流中替代原产品中功能相对较弱的表单部分。

报表工具就是来快速开发上面提高的报表的,开发用于系统集成用于web端呈现。

目前国内报表厂商的功能基本都差不多了,比如老牌润乾、Fr等,报表软件本身没什么技术门槛可言,顺手就行。 考虑价格的就对比性价比喽。

java怎么做报表功能?

使用 JFreeChart 生成各种样式的图表

限于篇幅的问题我们在这里只实现两种常用的图表,其他类型图表读者可以触类旁通。我们先给出柱状图的实现,饼图的实现再来跟柱状图进行比较。

1 柱状图

package lius.chart.demo;

import java.io.*;

import org.jfree.data.*;

import org.jfree.chart.*;

import org.jfree.chart.plot.*;

/**

* 该类用于演示最简单的柱状图生成

* @author Winter Lau

*/

public class BarChartDemo {

public static void main(String[] args) throws IOException{

CategoryDataset dataset = getDataSet2();

JFreeChart chart = ChartFactory.createBarChart3D(

“水果产量图”, // 图表标题

“水果”, // 目录轴的显示标签

“产量”, // 数值轴的显示标签

dataset, // 数据集

PlotOrientation.VERTICAL, // 图表方向:水平、垂直

true, // 是否显示图例(对于简单的柱状图必须是 false)

false, // 是否生成工具

false // 是否生成 URL 链接

);

FileOutputStream fos_jpg = null;

try {

fos_jpg = new FileOutputStream(“D:\\fruit.jpg”);

ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);

} finally {

try {

fos_jpg.close();

} catch (Exception e) {}

}

}

/**

* 获取一个演示用的简单数据集对象

* @return

*/

private static CategoryDataset getDataSet() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, null, “苹果”);

dataset.addValue(200, null, “梨子”);

dataset.addValue(300, null, “葡萄”);

dataset.addValue(400, null, “香蕉”);

dataset.addValue(500, null, “荔枝”);

return dataset;

}

/**

* 获取一个演示用的组合数据集对象

* @return

*/

private static CategoryDataset getDataSet2() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, “北京”, “苹果”);

dataset.addValue(100, “上海”, “苹果”);

dataset.addValue(100, “广州”, “苹果”);

dataset.addValue(200, “北京”, “梨子”);

dataset.addValue(200, “上海”, “梨子”);

dataset.addValue(200, “广州”, “梨子”);

dataset.addValue(300, “北京”, “葡萄”);

dataset.addValue(300, “上海”, “葡萄”);

dataset.addValue(300, “广州”, “葡萄”);

dataset.addValue(400, “北京”, “香蕉”);

dataset.addValue(400, “上海”, “香蕉”);

dataset.addValue(400, “广州”, “香蕉”);

dataset.addValue(500, “北京”, “荔枝”);

dataset.addValue(500, “上海”, “荔枝”);

dataset.addValue(500, “广州”, “荔枝”);

return dataset;

}

}

2 饼图

package lius.chart.demo;

import java.io.*;

import org.jfree.data.*;

import org.jfree.chart.*;

/**

* 用于演示饼图的生成

* @author Winter Lau

*/

public class PieChartDemo {

public static void main(String[] args) throws IOException{

DefaultPieDataset data = getDataSet();

JFreeChart chart = ChartFactory.createPie3DChart(“水果产量图”, // 图表标题

data,

true, // 是否显示图例

false,

false

);

// 写图表对象到文件,参照柱状图生成源码

}

/**

* 获取一个演示用的简单数据集对象

* @return

*/

private static DefaultPieDataset getDataSet() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue(“苹果”,100);

dataset.setValue(“梨子”,200);

dataset.setValue(“葡萄”,300);

dataset.setValue(“香蕉”,400);

dataset.setValue(“荔枝”,500);

return dataset;

}

}

3将生成的图表移到浏览器上

package lius.chart.demo;

import java.io.IOException;

import javax.servlet.*;

import javax.servlet.http.HttpServlet;

import org.jfree.data.*;

import org.jfree.chart.*;

/**

* 演示通过 servlet 直接输出图表

* @author Winter Lau

*/

public class ChartDemoServlet extends HttpServlet {

public void service(ServletRequest req, ServletResponse res)

throws ServletException, IOException

{

res.setContentType(“image/jpeg”);

DefaultPieDataset data = getDataSet();

JFreeChart chart = ChartFactory.createPie3DChart(“水果产量图”,

data,

true,

false,

false

);

ChartUtilities.writeChartAsJPEG(res.getOutputStream(),

100,chart,400,300,null);

}

/**

* 获取一个演示用的简单数据集对象

* @return

*/

private static DefaultPieDataset getDataSet() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue(“苹果”,100);

dataset.setValue(“梨子”,200);

dataset.setValue(“葡萄”,300);

dataset.setValue(“香蕉”,400);

dataset.setValue(“荔枝”,500);

return dataset;

}

}

4高级主题

很多情况我们不仅仅要求可以在浏览器上显示一个图表,我们更需要客户可以直接在图表上做一下交互的操作,例如获取信息提示,点击图表某个部分进行更详细信息的展示等等。例如前面生成的简单柱状图,用户需要在看到柱状图后点击某种水果例如是苹果即可看到各个地区苹果产量的情况。为此就要求该图形具有交互操作的功能。在 HTML 中为了让一个图像具有可交互的功能就必须给该图像定义一个 Map 对象。下表节选一段具有该功能的 HTML 代码:

MAP NAME=”chartMap”

AREA SHAPE=”RECT” COORDS=”81,15,126,254″ href=”?series=0category=100″

title=”100 = 7,048″

onclick=”javascript:clickChart(‘100’);return false;”

AREA SHAPE=”RECT” COORDS=”143,27,188,255″ href=”?series=0category=200″

title=”200 = 6,721″

onclick=”javascript: clickChart (‘200’);return false;”

AREA SHAPE=”RECT” COORDS=”205,54,250,255″ href=”?series=0category=300″

title=”300 = 5,929″

onclick=”javascript: clickChart (‘300’);return false;”

AREA SHAPE=”RECT” COORDS=”267,85,312,255″ href=”?series=0category=400″

title=”400 = 5,005″

onclick=”javascript: clickChart (‘400’);return false;”

AREA SHAPE=”RECT” COORDS=”329,17,374,255″ href=”?series=0category=Diet”

title=”Diet = 7,017″ onclick=”javascript:

clickChart (‘Diet’);return false;”

/MAP

由此就产生了一个问题:如果根据一个图像来生成对应的 MAP 对象。我们回头看看刚才的代码,在创建一个图表对象时候有两个参数,我们举柱状图的例子来讲这两个参数就是 ChartFactory. createBarChart3D 方法中的最后两个参数,这两个参数的类型都是布尔值。这两个参数意思分别是:是否创建工具提示 (tooltip) 以及是否生成 URL。这两个参数分别对应着 MAP 中一个 AREA 的 title 属性以及 href 属性。

可是我想知道的是怎么来产生这个 MAP 啊!哈哈,不要着急,JFreeChart 已经帮我们做好生成 MAP 对象的功能。为了生成 MAP 对象就要引入另外一个对象:ChartRenderingInfo。因为 JFreeChart 没有直接的方法利用一个图表对象直接生成 MAP 数据,它需要一个中间对象来过渡,这个对象就是 ChartRenderingInfo。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/245575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:10
下一篇 2024-12-12 13:10

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • 如何在树莓派上安装Windows 7系统?

    随着树莓派的普及,许多用户想在树莓派上安装Windows 7操作系统。 一、准备工作 在开始之前,需要准备以下材料: 1.树莓派4B一台; 2.一张8GB以上的SD卡; 3.下载并…

    编程 2025-04-29

发表回复

登录后才能评论