`
greatghoul
  • 浏览: 147147 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

FineReport应用 - 程序网络报表Hello,World | #报表

阅读更多

什么是程序网络报表

  FineReport设计器基本可以零编码地设计出绝大多数报表,然而这种方式建立的报圾需要依赖于设计器及报表模板,在一些有特殊需求的场合并不适用,这时候就需要通过编程的方式来设计报表并在J2EE服务器上预览。

 

Reportlet接口

  FineReport API提供了丰富的接口使用户可以灵活得设计报表,其中Reportlet接口对程序网络报表提供了支持。

 

package com.fr.web;

import com.fr.report.ReportTemplate;

public abstract interface Reportlet {
    public abstract ReportTemplate createReport(
            ReportletRequest paramReportletRequest) throws ReportletException;
}

 

  createReport()方法返回一个报表模板对象供报表服务器渲染,实现Reportlet接口并实现此方法,即可以建立一个程序网络报表。

 

Hello,World!

  我们将通过编程的方法,制作一张在A1单元格显示红色Hello,World!文本的报表,并在服务器上预览。

 

  一、建立一个实现Reportlet接口的类。

 

  建立一个名为HelloReport的类,使之实现Reportlet接口,并实现createReport方法。Reportlet接口中只有一个方法,该方法会返回一个ReportTemplate实例。

 

package fr.report;

import com.fr.report.ReportTemplate;
import com.fr.web.Reportlet;
import com.fr.web.ReportletException;
import com.fr.web.ReportletRequest;

public class HelloReportlet implements Reportlet {

    @Override
    public ReportTemplate createReport(ReportletRequest arg0)
            throws ReportletException {
        // TODO Auto-generated method stub
        return null;
    }

}

 

  二、为createReport方法创建ReportTemplate实例并返回。

 

  1. 建立WorkSheet并返回。

 

  com.fr.report.ReportTemplate是一个接口,它定义了报表模板的通用行为,本例中我们使用它的实现类 com.fr.report.WorkSheet。WorkSheet即工作表,用于对报表进行布局和美化,由具有不同功能的单元格组成。

 

@Override
public ReportTemplate createReport(ReportletRequest arg0)
        throws ReportletException {
    WorkSheet worksheet = new WorkSheet();
    
    return worksheet;
}

 

  2. 在A1建立文本型单元格并添加到报表中。


  com.fr.report.CellElement规定的单元格元素应该具有的基本行为,这里我们使用它的实现类 com.fr.report.DefaultCellElement来建立一个文本类型的单元格。

 

  通过构造器DefaultCellElement(int column, int row, java.lang.Object value)可以构造一个指定坐标和值的单元格,根据参数value类型的不同来为单元格提供不同的形态和行为,如果传如String型参数,会构造一个文本单元格。

 

CellElement cellElem = new DefaultCellElement(0, 0, "Hello, World!");
worksheet.addCellElement(cellElem);

 

  还可以传入Formula、DSColumn等类型构造公式、数据列型的单元格。

  3. 为单元格设置样式。

  样式的设置比较繁琐,需要使用到com.fr.base.Style类及com.fr.base.FRFont,官方文档中的方法是这样的。

 

// 创建样式
Style style = Style.getInstance();
// 创建字体
FRFont frFont = FRFont.getInstance("Tahoma", Font.BOLD | Font.ITALIC, 20);
// 设置字体为红色
frFont = frFont.applyForeground(Color.RED);
// 应用字体到样式
style = style.deriveFRFont(frFont);
// 应用样式到单元格
cellElem.setStyle(style);

 

  其中applyForground()方法和deriveFRFont()方法与一般习惯不同,它并对对象进行修改,而是返回一个应用了前景色(或字体) 的新对象。所以需要重新给引用赋值 a = a.doXXX() 以保证更新。其实我们可以用一些便捷的方法。

 

// 创建并应用样式
Style style = Style.getInstance(FRFont.getInstance("Tahoma", 
        Font.BOLD | Font.ITALIC, 20, Color.RED));
// 应用样式到单元格
cellElem.setStyle(style);

 

  3. 设置行高和列宽。


  因为行高和列宽会影响到整行或整列,所以它们是工作表的行为,而非单元格。

 

// 设置行高和列宽
worksheet.setRowHeight(0, 30);
worksheet.setColumnWidth(0, 200);

 

   完整代码:

 

package fr.report;

import java.awt.Color;
import java.awt.Font;

import com.fr.base.FRFont;
import com.fr.base.Style;
import com.fr.report.CellElement;
import com.fr.report.DefaultCellElement;
import com.fr.report.ReportTemplate;
import com.fr.report.WorkSheet;
import com.fr.web.Reportlet;
import com.fr.web.ReportletException;
import com.fr.web.ReportletRequest;

/**   
 * 程序网络报表 - Hello, World!
 * http://localhost:9527/FineReport/ReportServer?reportlet=fr.report.HelloReportlet
 * 
 * @author GreatGhoul 
 */ 
public class HelloReportlet implements Reportlet {

    @Override
    public ReportTemplate createReport(ReportletRequest arg0)
            throws ReportletException {
        // 建立报表
        WorkSheet worksheet = new WorkSheet();
        
        // 在A1建立单元格
        CellElement cellElem = new DefaultCellElement(0, 0, "Hello, World!");
        
        // 创建并应用样式
        Style style = Style.getInstance(FRFont.getInstance("Tahoma", 
                Font.BOLD | Font.ITALIC, 20, Color.RED));
        // 应用样式到单元格
        cellElem.setStyle(style);
        
        // 设置行高和列宽
        worksheet.setRowHeight(0, 30);
        worksheet.setColumnWidth(0, 200);
        
        // 将单元格加入到报表中
        worksheet.addCellElement(cellElem);
        
        return worksheet;
    }

}

 

预览程序网络报表

  要预览报表,只需要将编译后的.class文件放在报表服务器classes文件夹下,然后就可以通过如下形式的地址访问报表了。

 

  http://<报表服务器地址>/ReportServer?reportlet=<实现了Reportlet的类的全限定名& gt;


  本例中,Reportlet的全限定名为fr.report.HelloReportlet

 

  http://localhost:9527/FineReport/ReportServer?reportlet=fr.report.HelloReportlet

 

  效果如下图:

  

  • 大小: 24 KB
分享到:
评论

相关推荐

    windows_x64_FineReport-CN_2021-05-26.rar

    jar包是Java应用程序的集合,这个特定版本的jar包包含了2021年5月26日更新的功能和优化,确保了用户可以利用最新的功能进行报表设计和数据分析。 在Windows x64环境下,FineReport能够充分利用64位系统的资源,提供...

    FineReport帮助文档---制作经验分享

    综上所述,FineReport不仅提供了便捷的报表设计工具,还具备强大的服务器端处理能力,能够满足企业级应用的需求。无论是初学者还是专业开发者,都能够通过使用FineReport轻松实现复杂报表的设计与发布。

    报表工具FineReport中如何把报表放到网页中显示

    ### 报表工具FineReport中如何把报表放到网页中显示 #### 一、背景与需求分析 随着互联网技术的发展,企业对于数据展示的需求越来越倾向于基于Web的解决方案。这些Web应用通常采用BS架构(Browser/Server架构),...

    报表开发工具FineReport中如何把报表放到网页中显示

    ### 报表开发工具FineReport中如何把报表放到网页中显示 #### 一、背景介绍 随着信息技术的发展,越来越多的企业倾向于使用基于浏览器/服务器(Browser/Server,简称BS架构)的系统来处理业务流程。这类系统通常...

    web报表开发工具FineReport常用函数的用法总结(文本函数

    ### Web报表开发工具FineReport常用文本函数的用法总结 #### 一、概述 在Web报表开发工具FineReport中,文本函数是处理数据时经常需要用到的一类函数,它们能够帮助开发者更加灵活地处理文本信息,实现多样化的报表...

    windows-x64-FineReport-CN.7z

    windows-x64-FineReport-CN.zip

    FineReport制作超链接-悬浮窗报表

    资源内包含帆软cpt模板文件,有需要的小伙伴可以自行下载使用,如需查看视频讲解可以访问西瓜视频:https://www.ixigua.com/home/2506516376848260/video/?preActiveKey=pseries&list_entrance=userdetail ...

    FineReport常见的数据集报错错误代码和解释

    在日常工作中使用FineReport进行报表开发时,难免会遇到各种各样的错误提示。理解这些错误代码及其含义对于快速定位问题、解决问题至关重要。下面,我们将详细介绍一系列常见的错误代码及解决方法。 #### 1. **压缩...

    FineReport-制作填报报表

    本资源内容是员工信息填报报表,资源内包含帆软cpt模板文件

    windows_x64_FineReport-CN.exe

    智能报表软件

    FineReport报表二次开发详述

    #### 九、创建程序网络模版 在网络应用中,FineReport支持创建基于网络的报表模板,便于在分布式环境中管理和共享报表资源。 #### 十、读取模板报表 除了本地模板文件,FineReport同样支持读取存储在网络中的模板...

    FineReport报表软件技术指南.pdf"

    ### FineReport报表软件技术知识点详解 #### 一、概述 FineReport是一款由南京帆软软件有限公司开发的专业报表设计工具,其核心优势在于提供了一个高效、直观的报表设计平台。通过结合Excel式的操作习惯与强大的...

    帆软Finereport制作多源分片报表模板 + SQL脚本

    帆软Finereport是一款强大的报表工具,尤其擅长处理复杂的中国式报表。在这个特定的案例中,我们聚焦于“多源分片报表”的制作,这是一种能够整合来自多个数据源的数据,并进行灵活布局的报表类型。 首先,让我们...

    报表工具FineReport参数控件和报表内容自动居中设置方法

    FineReport是企业级的报表工具,广泛应用于数据可视化和报表设计,特别是对于需要大量报表输出的企业来说,FineReport的易用性和灵活性非常受欢迎。在设计报表时,确保内容的准确显示和美观布局是非常重要的。而自动...

    报表开发工具FineReport搭建大庆金桥报表解决方案

    ### 报表开发工具FineReport搭建大庆金桥报表解决方案 #### 一、FineReport简介与特点 FineReport是一款由帆软软件有限公司自主研发的企业级报表工具,具有强大的数据处理能力和丰富的图表展示功能。它支持多种...

    SPRINGBOOT-finereport代码-需要修改文件后缀名

    在本项目中,我们主要探讨的是如何在SpringBoot框架下集成Finereport报表工具,并针对文件后缀名的修改进行详细讲解。SpringBoot以其简洁、快速的开发特性,深受开发者喜爱,而Finereport作为一款强大的报表设计工具...

    FineReport报表工具功能清单

    【FineReport报表工具功能清单】 FineReport是一款由帆软...在实际工作中,结合提供的"FineReport报表工具功能清单.xls"文件,可以更详细地了解每个功能的具体应用场景和操作步骤,进一步提升报表设计和使用的熟练度。

    FineReport报表制作流程

    FineReport是一款专业的报表工具,广泛应用于企业数据可视化和分析领域。本文将详细介绍FineReport报表的制作流程,包括数据准备、报表设计、报表预览、报表集成以及报表的使用与二次开发。 1. FineReport简介 ...

Global site tag (gtag.js) - Google Analytics