Pentaho 快速指南



Pentaho - 概述

什么是 Pentaho Reporting?

Pentaho Reporting 是一套用于创建关系和分析报表的工具集合。使用 Pentaho,我们可以将复杂的数据转换为有意义的报表,并从中提取信息。Pentaho 支持创建各种格式的报表,例如 HTML、Excel、PDF、文本、CSV 和 XML。

Pentaho 可以接受来自不同数据源的数据,包括 SQL 数据库、OLAP 数据源,甚至是 Pentaho Data Integration ETL 工具。

Pentaho 的特点

Pentaho Reporting 主要包括报表引擎、报表设计器和商业智能 (BI) 服务器。它具有以下特点:

  • 报表设计器 - 用于创建像素完美的报表。

  • 元数据编辑器 - 允许向数据源添加用户友好的元数据域。

  • 报表设计器和设计工作室 - 用于微调报表和即席报表。

  • Pentaho 用户控制台 Web 界面 - 用于轻松管理报表和分析视图。

  • 即席报表界面 - 提供一个逐步向导,用于设计简单的报表。输出格式包括 PDF、RTF、HTML 和 XLS。

  • 复杂的调度子系统 - 允许用户以给定的时间间隔执行报表。

  • 邮件发送 - 用户可以将已发布的报表通过电子邮件发送给其他用户。

  • 连接性 - 报表工具和 BI 服务器之间的连接性,允许将内容直接发布到 BI 服务器。

Pentaho - 安装

现在让我们学习如何安装和配置 Pentaho Reporting Designer。

先决条件

Pentaho Reporting 引擎需要 Java 环境。因此,在安装 Pentaho Reporting 之前,请确保您的系统中已安装 Java。根据您正在使用的平台,使用下表中的命令验证您的 Java 安装。

操作系统 命令 输出
Windows

打开命令提示符

>java -version

java version "1.7.0_60"

Java(TM) SE Runtime Environment (build 1.7.0_60b19)

Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

Linux

打开终端

$ java –version

java version "1.7.0_60"

OpenJDK Runtime Environment (rhel-2.3.10.4.el6_4x86_64) OpenJDK 64-Bit Server VM (build 60.7-b01, mixed mode)

Mac OS

打开终端

$ java –version

java version "1.7.0_60"

Java(TM) SE Runtime Environment (build 1.7.0_60b19)

Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

如果您的系统上未安装 Java,请使用以下链接下载并安装:下载并安装 Java

下载 Pentaho Reporting

使用以下链接下载最新版本的 Pentaho Reporting Designer。在本教程中,我们使用的是 3.7.0 版本。

安装 Pentaho Reporting

下载文件后,您将找到一个名为 prd-ce-3.7.0-stable 的 Pentaho Reporting Designer 压缩文件。应按以下表格说明解压缩该压缩文件。

操作系统 安装说明
Windows
  • 使用解压缩工具解压缩下载的文件 prd-ce-3.7.0-stable.zip。

  • 将解压缩的文件夹 (prd-ce-3.7.0-stable) 复制到 c:\ 目录。

  • 打开 c:\prd-ce-3.7.0-stable\report-designer 目录。

  • 双击 reportdesigner.bat 文件启动 Pentaho Reporting Designer。

Linux
  • 使用以下命令解压缩下载的文件 prd-ce-3.7.0-stable.tar.gz

$ tar –zxvf prd-ce-3.7.0-stable.tar.gz 
  • 使用以下命令将解压缩的文件夹 (prd-ce-3.7.0-stable) 复制到“/usr/local/”目录。

# mv prd-ce-3.7.0-stable /usr/local/ 
  • 打开“/usr/local/prd-ce-3.7.0-stable/report-designer”目录,并使用以下命令启动 Pentaho Reporting Designer。

$ cd /usr/local/prd-ce-3.7.0-stable/report-designer
$ report-designer.sh 
Mac
  • 解压缩下载的文件 prd-ce-370-stable.tar.gz。
  • 您将在 Finder 中找到该文件夹。
  • 将 Pentaho Report Designer 从 Finder 复制并粘贴到 /Application 文件夹。
  • 使用以下命令启动 Pentaho Report Designer。
$ report-designer.sh

安装数据库驱动程序

Pentaho Reporting Designer 需要数据库连接才能生成关系报表,因此您需要一个 JDBC 驱动程序来与数据库通信。默认情况下,Pentaho 提供了一些不同厂商的 JDBC 驱动程序来支持不同的数据库,例如 MySQL、H2、HypersonicSQL、Hive 等。

所有默认的数据库驱动程序都位于 Pentaho Reporting Designer 的 /lib/ 目录中。如果您想使用任何其他数据库,请下载相应的 JDBC 驱动程序并将其复制到 Pentaho Reporting Designer 的 /lib/ 目录中。否则,您可以通过 JDK 附带的 JDBC-ODBC 桥接驱动程序使用 ODBC 驱动程序,此桥接驱动程序 (JDBC-ODBC) 适用于所有数据库服务器。

在本教程中,我们使用 MySQL 数据库服务器,其相应的驱动程序已随 Pentaho lib(Pentaho Reporting Designer 的 /lib/ 目录)文件一起下载。

安装附加字体

Pentaho Reporting 使用不同的字体在报表中显示文本。生成 PDF 文件时,Pentaho Reporting Engine 需要访问物理字体文件。报表引擎搜索系统相关的字体路径以找到所有可用的字体。除了这些字体外,您的 Java 运行时环境可能会提供其他字体,具体取决于您的 Java 和操作系统版本。

如果您计划创建包含嵌入字体的 PDF 文档,请确保您只使用报表引擎可以实际访问的字体。

无论您的操作系统如何,位于 JRE/lib/fonts/ 中的所有字体文件始终可用于所有导出。

Pentaho - 导航

本章将简要介绍 Pentaho 中可用的用户界面以及如何在其中导航。

欢迎屏幕

欢迎屏幕提供两种创建不同类型报表的方法。这两个选项是 报表向导新建报表

  • 报表向导 - 它提供了一个易于使用的四个步骤流程,指导您创建新的报表。

  • 新建报表 - 如果选择此选项,则可以根据您的需求创建自定义报表。

Pentaho 有一组示例报表,可帮助您了解如何使用某些报表设计器。以下屏幕截图显示了 Pentaho 的欢迎页面。

Welcome Page

主工具栏

主工具栏位于窗口顶部。请查看以下屏幕截图 - 放大的框是主工具栏。它包含用于执行以下操作的按钮:新建文件、打开文件、保存文件、发布报表、添加数据源、运行报表、选择对象、撤消、重做、剪切元素、复制元素、粘贴元素、删除选定元素和切换字段选择器调色板。

Main Toolbar

报表工作区

工作区是主要工作区域,我们可以在其中设计报表。请查看以下屏幕截图 - 中间的白色区域是工作区。它分为五个区域:页眉、报表页眉、详细信息、报表页脚和页脚。

  • 页眉 - 您可以在此处使用任何适合打印在每个报表页面顶部的任何类型的数据。它不允许任何动态值或分页符。

  • 报表页眉 - 从顶部算起的第二个区域是报表页眉。它包含报表元素。它在每个报表中只出现一次,即报表的首页。

  • 详细信息 - 详细信息区域是页面中最大的部分,因为大部分报表数据都在此区域显示。

  • 报表页脚 - 与报表页眉一样,报表页脚在每个报表中只出现一次,即报表的最后一页。

  • 页脚 - 最后一个区域是页脚,它出现在报表中每一页的底部。

您还可以为各种报表元素创建组。每个组在其工作区中都有自己的页眉和页脚区域。

Pentaho Workspace

结构窗格

结构选项卡与报表设计器右上角的数据选项卡共享一个窗格。请查看以下屏幕截图;它显示了报表工作区中包含的每个元素的确切层次结构。

Structure Pane

数据窗格

数据窗格使您可以添加数据源并在每个报表中查看各个查询、函数和参数。窗格顶部的三个按钮分别用于添加新的数据源、函数和参数。

  • 数据源 - 您为当前报表定义的所有数据源和查询都将在此列出。如果要添加新的数据源,请右键单击最左边的按钮(黄色圆柱体),然后单击添加。

  • 函数 - 您添加到报表中的所有函数(数学和条件)元素都将列在此类别中。您可以通过单击 (fx) 按钮添加函数。

  • 参数 - 您可以向报表添加参数,这将使报表阅读器能够自定义输出内容。

请查看以下屏幕截图。

Data Pane

样式窗格

样式窗格显示结构窗格中任何给定项目的视觉和位置样式选项。单击任何结构元素,样式窗格的组成将进行调整,以显示按组列出的所有可用样式属性。请查看以下屏幕截图。

Style Pane

属性窗格

属性窗格显示结构窗格中任何给定项目的所有低级属性以及输入和输出选项。

Attribute Pane

调色板

调色板包含您可以用来构建报表的全部元素。要添加元素,请单击布局区域以将其选中,然后将调色板中的元素拖放到选定的区域。我们在下表中解释了每个报表元素的作用。

元素图标 元素名称 描述
Label 标签 静态文本字符串。它不能动态更改。
Text-Field 文本字段 文本报表元素,根据查询动态更改。
Number Field 数字字段 显示来自查询的动态数值数据。
Date Field 日期字段 处理来自查询的日期信息。
Message 消息 一个组合多个静态和动态报表元素的元素。
Resource label 资源标签 映射到资源包的静态文本字符串
Resource-Field 资源字段 映射到资源包的动态文本字符串,允许您本地化任何数据库字段。
Resource Message 资源 - 消息 动态文本字符串,它连接来自多种类型的数据,并动态映射到资源包。
Image Field 图像字段 对存储在数据库中的图像的引用。
Image 图像 嵌入到报表中的静态图像。
Ellipse 椭圆 椭圆形状的矢量图形元素。
Rectangle 矩形 矩形形状的矢量图形元素。
Horizontal Line 水平线 水平绘制的矢量图形线。
Vertical Line 垂直线 垂直绘制的矢量图形线。
Survey Scale 测量比例尺 一个简单的滑动刻度图表元素。
Chart 图表 以图形方式显示查询结果的图表。
Simple Barcodes 简单条形码 一个条形码图表元素。
Bar Sparkline 条形迷你图 一个条形迷你图图表元素。
Line-Sparkline 线形迷你图 一个线形迷你图图表元素。
Pie Sparkline 饼图迷你图 一个饼图迷你图图表元素。
Band 分组 一种分组元素的方法。
Sub Report 子报表 引用另一个报表的元素。
Table Of Content 目录 一个目录报表元素。
Index 索引 一个索引报表元素。

请看下面的截图;左侧高亮的框是报表元素的调色板。

Pentaho Palette

Pentaho - 数据源和查询

在本节中,我们将通过一个示例学习如何使用Pentaho Reporting Designer。我们将创建一个关于员工数据库的报表,以快速概述每个员工。我们将通过添加数据源并将查询传递给Pentaho Designer来创建我们的第一个报表。

在使用Pentaho Report Designer之前,创建一个名为employeedb的数据库,并在该数据库中使用以下查询创建一个名为employee的表。

CREATE TABLE 'employee' (
   'id' integer NOT NULL,
   'name' varchar(20),
   'designation' varchar(20),
   'department' varchar(20),
   'age' integer,
   PRIMARY KEY ('id')
)

将以下记录插入表中。

ID 姓名 职位 部门 年龄
1201 ’satish’ ’writer’ ’Tuto_Write’ 24
1202 ’krishna’ ’writer’ ’Tuto_Write’ 26
1203 ’prasanth’ ’php developer’ ’Tuto_develop’ 28
1204 ’khaleel’ ’php developer’ ’Tuto_develop’ 29
1205 ’raju’ ’HTML developer’ ’Tuto_develop’ 24
1206 ’javed’ ’HTML developer’ ’Tuto_develop’ 22
1207 ’kiran’ ’Proof Reader’ ’Tuto_Reader’ 28
1208 ’pravenya’ ’Proof Reader’ ’Tuto_Reader’ 30
1209 ’mukesh’ ’Proof Reader’ ’Tuto_Reader’ 28
1210 ’sai’ ’writer’ ’Tuto_writer’ 25
1211 ’sathish’ ’graphics designer’ ’Tuto_designer’ 26
1212 ’viswani’ ’graphics designer’ ’Tuto_designer’ 24
1213 ’gopal’ ’manager’ ’Tuto_develop’ 29
1214 ’omer’ ’manager’ ’Tuto_writer’ 32
1215 ’shirjeel’ ’manager’ ’Tuto_Reader’ 32

如果您想操作表中包含的数据,最好的选择是使用SQL。但是,如果您想根据数据创建报表,Pentaho Reporting 是最佳选择。我们的任务是将SQL查询传递给Pentaho Reporting Designer工具,选择报表中呈现的相应字段,并在报表的详细信息表中显示。

在继续之前,请确保您熟悉Pentaho中所有可用的导航选项(在前一节中已解释)。现在我们有了数据源,让我们继续并尝试了解如何使用Pentaho生成专业报表。

使用Pentaho生成报表的步骤

请按照以下步骤从头开始创建报表,无需使用报表设计向导。

步骤1:创建新报表

您可以通过点击欢迎面板上的“新建报表”或转到“文件→新建”来创建一个新的报表定义文件。

Pentaho Workspace

步骤2:添加数据源

右侧的结构面板提供了报表可视元素的视图。“数据”选项卡上将定义数据源;它允许定义报表数据来自何处以及如何在报表处理期间处理这些数据。

报表通常以表格形式显示数据源提供的数据,而报表定义则定义如何格式化或打印报表。如下图所示,从结构面板中选择“数据”选项卡。

ADD Data Source

在“数据”选项卡中,右键单击数据集并选择JDBC以添加数据源。通常,在选项列表中,您可以根据需要选择任何其他选项。这意味着,如果您的数据源是XML文件,则从列表中选择XML选项。请看下面的截图。在这里,我们选择JDBC选项将数据库添加为数据源。

JDBC Option

选择JDBC选项作为数据源后,您将看到一个如下图所示的对话框。

我们已经选择了MySQL数据库作为数据源,因此我们必须在对话框的左侧面板中选择“SampleData (MySQL)”选项(在给定的截图中标记为指针“1”)。指针“2”用于编辑连接语句和URL以与数据库进行交互。

Dialog box

下图显示了一个对话框,您可以在其中定义数据库的连接语句和URL。我们需要在此屏幕上执行四个操作(用指针突出显示)。

  • 在连接类型列表中,选择**MySQL** - 我们已经选择了MySQL作为数据库(数据源)。

  • 在访问列表中,选择**本地 (JDBC)** - 通过JDBC连接,我们可以访问数据库。

  • 在设置部分,我们必须提及主机名(localhost)、数据库名(employeedb)、端口号(3306)、用户名(root)和密码(根据您的系统)。

  • 点击“测试”按钮测试连接语句。

最后,点击“确定”按钮确认数据库连接。

Add Datasource

步骤3:添加查询

请看下面的截图。该对话框显示了通过数据库连接可用的已保存查询。

  • 对话框右侧的“可用查询”块显示所有可用查询的列表。

  • “查询名称”块显示在上面可用查询列表中选择的查询名称。

  • “查询”块显示查询语句。如果没有可用的查询,或者您想创建一个新查询,请单击“+”按钮,该按钮在下图中标记为指针“1”。

Add a Query

单击“+”按钮时,您可以通过在“查询名称”块中编辑名称为“select_all_records”并使用以下查询语句在“查询”块中创建一个查询。

SELECT
   employee.id,  
   employee.name, 
   employee.designation,
   employee.department,
   employee.age 
FROM
   employee 
LIMIT
   15 

添加查询后,您应该会看到以下对话框。单击预览按钮。

Adding a Query

单击预览按钮后,您将在单独的对话框中找到所有employee表记录,如下图所示。单击“关闭”按钮。

Employee Table

然后,单击“确定”按钮提交查询。提交查询后,您将在右侧结构面板上查询名称下找到所有表字段名称及其数据类型,如下图所示。此处,最大化的框是位于屏幕右侧的结构面板。

Employee Table

到目前为止,我们已经向Pentaho Reporting Designer添加了一个数据源和一个查询。现在,我们必须向工作区添加元素以创建报表。相同的示例将扩展到下一章“报表元素”。

Pentaho - 报表元素

大多数报表元素可以通过将它们从数据面板拖放到工作区上的任何一个区域(主要是详细信息区域)来轻松添加。

让我们继续使用上一节中相同的示例。在那里,我们向Reporting Designer添加了一个数据源和一个查询。在这里,我们将根据查询生成的输出设计报表。

生成的查询字段是报表元素,在下图中突出显示。它们是 - **id**、**name**、**designation**、**department** 和 **age**。

添加报表元素

将查询添加到Reporting Designer后,生成的字段将显示在数据面板中,如下图所示。

Employee Table

现在,将所需的字段(要在报表中显示的字段)从结构面板拖放到主工作区中心的详细信息区域。

请看下面的截图。它显示了从结构面板拖动年龄字段的方向。

Report Fields

在详细信息区域排列所有字段后,您可以通过单击查看按钮(在上图中标记为“1”)来查看报表视图。

单击查看按钮后,结果报表将如下图所示。在工作区中,您将找到所有字段的值(这些字段在详细信息选项卡中指定)。

Result report

现在,如果您想返回设计模式,请单击设计符号,该符号在下图中标记为“1”。

Back to Edit

Pentaho - 页脚字段

报表的每一页包含两个特殊区域。在每一页的顶部,您会找到页眉区域。在页面的底部,您会找到页脚区域。其余页面可用于实际的报表内容。

在Pentaho中添加页脚字段

页脚选项卡用于显示某些属性和功能。例如,您可以使用页脚选项卡来**在页面的底部打印年龄字段的最大值**。报表引擎允许通过使用报表功能来实现这些功能。

请看下面的截图。此处,结构面板中的“数据”选项卡包含一个符号 *fx*(标记为“1”)。它是添加函数按钮。单击此按钮可将不同的函数添加到报表中。

Page Footer

然后,您将找到一个对话框,其中不同的函数被分成不同的组。要在页脚打印员工的最大年龄,我们应该在“汇总”组中选择“最大值”函数,该函数在下图中标记为“1”。选择它并单击“确定”。

Functions

单击“确定”按钮后,该函数将添加到位于屏幕右侧的结构面板中的“函数”标签中。

选择添加的函数(即最大值)后,您将在结构面板下方找到另一个面板,其中包含该函数的属性。

请看下面的屏幕。最大化的框包含两个指针(指针1和指针2)。

  • **指针1** - 在结构面板的“数据”选项卡中选择该函数。

  • **指针2** - 通过从下拉列表中选择年龄字段来编辑属性部分中的字段名称。这是因为我们必须打印员工的最大年龄。

Customized Properties

现在,该函数已准备好自定义属性。现在,您可以将该函数用作报表中的页脚属性。

请看下面的截图。它再次包含两个指针(指针1和指针2)。

  • **指针1** - 将“最大值”函数从结构面板拖放到工作区中的页脚区域,如下图所示。现在您的报表设计已准备就绪。

  • **指针2** - 选择屏幕左侧的“预览”按钮。

Preview of the Report

请看下面的屏幕。它显示报表的预览。员工的最大年龄已标记并在最大化的框中显示。

Maximized Box

Pentaho - 分组

Pentaho 提供各种功能和特性,可以将原始数据转换为有意义的信息。在这里,我们将学习如何使用其中一个特性**分组**。您可以使用此特性将原始行集数据分组,以便用户更容易理解报表。

  • 分组是将长数据列表沿有意义的分隔符划分的一种好方法。

  • 使用分组,您可以将相似的项目放在一起,并将其与其他项目组视觉上分开。

  • 您还需要分组才能对数据执行各种聚合操作,例如打印组中项目的数量或计算总和或平均值。

在 Pentaho 中添加分组

我们已经有一个基于员工数据的报表。这里的问题是根据“部门”对所有员工记录进行分组。请按照以下步骤完成给定的要求。

首先,您可以通过单击“结构”窗格上的**添加分组**按钮开始此过程。**添加分组**按钮在下面的屏幕截图中标记为“1”。

Add Group

单击“添加分组”按钮后,您将获得一个选项列表。然后,从列表中单击**添加分组**选项。

单击“添加分组”后,您将找到一个对话框,您可以使用它从给定的可用字段中添加分组字段。

请查看下面的屏幕截图。我们在对话框中突出显示了三个活动,我们将其标记为 1、2 和 3。

  • **指针 1** - 为此组输入用户定义的名称。

  • **指针 2** - 从可用字段列表中选择**部门**字段。

  • **指针 3** - 单击箭头 (**→**) 按钮,以便所选字段被复制到所选字段列表中。

在所选字段列表中选择该部门字段,然后单击“确定”进行确认。

Group Header

添加分组后,您将在“结构”窗格的“结构”选项卡中找到它。您还将在工作区中找到**分组页眉**和**分组页脚**区域。

请查看下面的屏幕截图。通过将左侧报表设计器调色板上的标签图标拖动到分组页眉中,向报表添加静态标签(在屏幕截图中,此活动已标记为“**1**”)。

双击标签,您可以编辑它并将名称更改为**部门**。您可以使用格式工具栏或格式调色板(分别标记为“3”和“4”)更改标签的格式。

Data Tab

现在让我们继续。将“结构”窗格切换到“数据”选项卡。从“结构”窗格中选择并拖动部门字段到分组页眉(此活动在下面的屏幕截图中标记为“**1**”)。要查看报表的预览,请单击屏幕左侧的预览按钮,该按钮在下面的屏幕截图中突出显示并标记为“**2**”。

Result Report

单击预览按钮后,您将找到如下所示的结果报表。您会发现记录现在已根据部门分组。

Records

此时报表看起来不太吸引人。您可以添加一些颜色并使用格式工具栏或格式调色板使标题更有效。

您现在可以使用 Pentaho 生成不同类型的报表。只需按照迄今为止讨论的步骤操作,并尝试使用 Pentaho 中可用的所有功能和选项。

Pentaho - 图表报表

**图表**,也称为**图形**,是数据的图形表示。Pentaho Reporting Designer 提供各种图表类型。您可以使用 Pentaho Reporting Designer 调色板中提供的“图表元素”选项设计图表。

创建图表有三个要求:

  • 一个**数据收集器**,用于从数据源提取图表数据。

  • 一个**图表表达式**,用于根据收集到的数据生成图表。

  • 一个**报表元素**,用于显示生成的图表对象。

现在让我们举个例子,并尝试了解在 Pentaho 中创建图表的过程。

下表包含有关三个汽车品牌特征的数据。我们将使用条形图来描述这些数据。

汽车 速度 用户评价 里程 安全性
菲亚特 1 3 5 5
奥迪 5 6 10 4
福特 4 2 3 6

首先,根据给定的表数据创建一个名为**car**的表。我们使用 MySQL 数据库作为数据源。将其(数据源)添加到 Pentaho Reporting Designer。我们已经在“Pentaho – 数据源和查询”一章中讨论了如何将数据源和查询添加到 Pentaho Reporting Designer。

在 Pentaho 中创建图表的步骤

现在,按照以下步骤根据给定的场景创建图表。

步骤 1 - 添加查询

该查询将检索表**car**中的所有记录。因此,查询应如下所示:

Select
   car.id,
   car.name,
   car.speed, 
   car.user_rating, 
   car.millage, 
   car.safety 
From
   car 
LIMIT 
   3

下面的屏幕截图显示了如何将给定的查询添加到数据源。

Add the Given Query

步骤 2 - 向页眉添加图像

这是一个可选步骤,但是它很重要,因为图像在改进报表的审美方面起着重要作用。

请查看下面的屏幕截图。我们在这里突出显示了以下五个活动:

  • 添加查询后,您将在“结构”窗格上找到查询字段。从“结构”窗格中,选择相应的字段,然后将其拖放到报表工作区的**详细信息**选项卡中。

  • 详细信息选项卡仅显示字段值。通过从**调色板**中选择标签字段,将相应的标题标签添加到**报表页眉**选项卡。

  • 添加从调色板中获取的图像,并将其放置在**页眉**选项卡上。在**页眉**中添加另一个报表标题标签,并使用合适的标题(例如**CAR – CHART**)进行有效的演示。双击图像元素 - 您将找到一个名为**编辑内容**的对话框。

  • 您有两个选项可以插入图像。将图像 URL 链接到报表或将图像嵌入到报表中。我们选择通过选择“**嵌入到报表中**”选项来嵌入图像。

  • 从互联网下载一些示例汽车图像以放入**页眉**中。单击该按钮以使用位置 URL 查找示例汽车图像。单击“确定”按钮进行确认。

Add an Image

步骤 3 - 将图表添加到报表页脚

通过单击选择并将其从左侧调色板拖动到报表中来添加图表。它在下面的屏幕截图中标记为“1”。双击报表页脚上的条形图元素。

Add Chart

步骤 4 - 添加图表属性

双击图表元素后,您将找到一个对话框,您必须在其中提供收集的数据详细信息和图表表达式详细信息。

请查看下面的屏幕截图。“主要数据源”选项卡包含两个标记:

  • 标记“**1**”是一个下拉列表,您必须在其中选择“类别集数据收集器”。

  • 标记“**2**”也是**类别列**的下拉列表,您必须在其中选择名称字段。

Add Chart Properties

“主要数据源”中有三个部分:“通用”、“系列”和“分组”。在这里,我们不需要在“分组”部分添加任何内容,因为我们没有在查询中使用任何分组。

**通用** - 此部分中有两个字段:“类别列”和“值列”。我们已经在上一节中使用名称字段填充了类别列值。第二个是**值列**。

单击空值;您将找到一个如下图所示的对话框。其中标记了两个活动(1 和 2)。

  • 单击(+)按钮以在列中添加值字段。

  • 单击空值,您将找到一个下拉列表,您需要从中选择速度字段。

Clicking on Empty Value

重复上述两个活动,将用户评价、里程和安全字段添加到列中。添加所有这些字段后,屏幕将如下图所示。单击“确定”进行确认。

Primary Data Source

“主要数据源”部分的下一列是“系列”部分。

**系列** - 在“系列”字段中,单击“按系列值”选项。您将找到一个如下图所示的对话框。其中有两个标记(1 和 2)。

  • 单击(+)按钮以在列中添加新字段。
  • 双击它,您可以编辑该字段。

重复这两个活动以添加诸如速度、用户评价、里程和安全性之类的字段名称。

这些是在报表图表特定部分中显示的用户定义名称。但是在这里,您必须遵循在**通用**部分的“值列”字段中给出的相同顺序。添加所有字段后,如下图所示,单击**确定**。

Edit Chart

添加所有部分后,您将获得如下图所示的**编辑图表**对话框。“条形图”窗格包含用于更改图表格式的不同属性。

在“条形图”的“常规”部分中,我们将“3-D”值更改为**true**(标记为“1”)。单击“确定”确认图表属性。

General Section

单击格式工具栏上的“预览”按钮以查看报表的预览。它将如下图所示:

Preview of the Report

您可以通过使用不同类型的数据模型并为图表属性提供不同的值,在报表中实现不同类型的图表。Pentaho 在报表设计器中提供了近 18 种类型的图表。

Pentaho - 格式化报表元素

将报表元素放置在工作区后,可以以多种方式对其进行格式化。Pentaho Reporting Designer 提供各种功能,可以根据我们的要求格式化报表元素。

文本格式化

所有基于文本的元素(如文本、数字、日期和标签)都可以使用报表画布正上方的格式工具栏轻松格式化。

请查看下面的屏幕截图。在这里,我们标记并突出显示了三个对象:

  • 选定的报表元素
  • 格式工具栏
  • 用于格式化报表元素的样式窗格选项卡

首先,选择工作区上的报表元素。此后,您可以使用格式工具栏或使用“样式”选项卡中的属性以多种方式格式化该元素。

Text Formatting

添加超链接

Pentaho Report Designer 允许您向报表数据添加超链接。在这里,我们将举一个一般性的例子来解释如何在报表中添加超链接。

假设我们已经在**employee**表中添加了一个查询来获取字段的 id、名称和职位。我们还将这些字段添加到报表工作区。这里我们的要求是使用超链接将职位字段的各个值作为参数值传递到www.google.co.in

首先,选择工作区中的职位字段。右键单击它,然后从列表中选择“超链接”。请查看下面的屏幕截图。

Adding Hyperlinks

单击“超链接”选项后,您将找到一个对话框,您必须在其中提供详细信息,例如超链接位置的类型、URL、目标、参数名称和值。

请查看以下截图。我们在此标记并高亮显示了以下五个操作:

  • 提供超链接位置的类型。通常有四种类型的位置:

    • 自身 - 链接到同一报表字段。

    • URL - 为该引用位置提供一个 URL。

    • Pentaho 仓库 - 如果您安装了 Pentaho 仓库,则在本地主机中提供该文件 URL(需要登录)。

    • 手动链接 - 手动创建一个链接或公式,并将其作为超链接提供。

    在本例中,我们使用了 URL 类型位置。

  • 提供网站或文件的 URL。对于此选项,我们使用了 https://www.google.co.in。

  • 提供目标位置,即_TOP、_BLANK_PARENT。我们使用了“_TOP”。如果您想在鼠标指针移动到超链接文本上方时向用户提供任何信息,请在目标框旁边的工具提示框中键入该信息。

  • 选择加号 (+) 符号,向参数列表添加参数名称和值。

  • 为超链接的 URL 提供参数名称和值。这里我们使用“q”作为参数名称,并使用职位字段作为参数值。

最后,单击“确定”以确认超链接属性。

Hyperlink Properties

单击格式化工具栏上的“预览”按钮以查看报表的预览。单击“预览”按钮后,您将看到以下截图。将鼠标指针放在任何职位值上 - 无论是 HR 还是 Admin - 以查看其相应的 URL。

Hyperlink Properties

在此 Pentaho 报表设计器预览中,超链接用于将用户重定向到另一个 URL。为此,您必须通过单击主工具栏上的“运行”按钮(在以下屏幕截图中标记为“1”)并在其上选择 HTML 选项来以 HTML 运行此报表。

请查看以下截图。运行报表有多种选项,但我们选择以 HTML 格式显示报表。

Hyperlink Properties

选择 HTML 选项后,您将在单独的 HTML 页面中找到报表数据,如以下屏幕截图所示。单击任何职位值以了解超链接在 Pentaho Reporting 中的工作方式。

Hyperlink Properties

行条带

Pentaho 报表设计器具有行条带属性,允许您为报表的交替行着色。让我们以之前的示例来了解其工作原理。

将元素添加到工作区后,单击报表工作区→转到“格式”菜单→选择“行条带”。请查看以下截图。

Row Banding

选择“行条带”选项后,您将看到一个对话框。在这里,您可以从下拉列表中选择一种颜色。我们选择了红色和绿色作为交替颜色。现在,单击“确定”按钮进行确认。请查看以下截图。

Row Banding

单击“预览”按钮以查看报表在使用交替行颜色时的显示效果。它将显示为以下屏幕截图所示。

Alternate Row Colors

Pentaho - 函数

报表的每一页都包含一个页眉区域和一个页脚区域。其余页面可用于实际的报表内容。

页脚选项卡用于显示某些属性和功能。例如,我们可以在页脚中打印员工年龄字段的最大值。报表引擎允许通过使用函数来实现这些功能。

让我们使用我们在前面章节中使用的相同的employee表。将所有字段添加到报表工作区后,现在让我们向页脚选项卡中添加一个函数以找出员工的最大年龄。

请按照以下步骤将预定义函数添加到您的报表中。

步骤 1 - 单击函数按钮 (fx)

请看下面的截图。此处,结构面板中的“数据”选项卡包含一个符号 *fx*(标记为“1”)。它是添加函数按钮。单击此按钮可将不同的函数添加到报表中。

Page Footer

步骤 2 - 选择特定函数

然后,您将找到一个对话框,其中不同的函数被分成不同的组。要在页脚打印员工的最大年龄,我们应该在“汇总”组中选择“最大值”函数,该函数在下图中标记为“1”。选择它并单击“确定”。

Particular Function

单击“确定”按钮后,该函数将添加到位于屏幕右侧的结构面板中的“函数”标签中。

步骤 3 - 定义字段名称

选择添加的函数(即最大值)后,您将在结构面板下方找到另一个面板,其中包含该函数的属性。

请看下面的屏幕。最大化的框包含两个指针(指针1和指针2)。

  • **指针1** - 在结构面板的“数据”选项卡中选择该函数。

  • **指针2** - 通过从下拉列表中选择年龄字段来编辑属性部分中的字段名称。这是因为我们必须打印员工的最大年龄。

Customized Properties

步骤 4 - 将函数添加到报表工作区

现在,该函数已准备好自定义属性。现在,您可以将该函数用作报表中的页脚属性。

请看下面的截图。它再次包含两个指针(指针1和指针2)。

  • **指针1** - 将“最大值”函数从结构面板拖放到工作区中的页脚区域,如下图所示。现在您的报表设计已准备就绪。

  • **指针2** - 选择屏幕左侧的“预览”按钮。

Preview Report

步骤 5 - 检查预览

请看下面的屏幕。它显示报表的预览。员工的最大年龄已标记并在最大化的框中显示。

Maximized Box

Pentaho - 附加函数

下表提供了您可以在报表中使用的附加函数列表。

常用函数
序号 函数名称 用途
1 开放公式 使您可以使用内置的公式编辑器创建自己的自定义开放公式函数。
2 页数 计算报表渲染前使用的页数。
3 总页数 列出渲染报表中的总页数。
4 页码/总页码 打印当前页码以及渲染报表中的总页数。
报表函数
序号 函数名称 用途
1 是否导出类型 测试是否已为此报表选择给定的导出类型。
2 行条带 交替更改组中每个项目带的背景颜色。
3 隐藏重复项 隐藏组中相等的值。仅打印第一个更改的值。
4 隐藏页眉和页脚 当输出类型不可分页时,隐藏页眉和页脚带。
5 显示页脚 仅在报表中渲染的最后一页显示页脚。
汇总函数
序号 函数名称 用途
1 求和 计算所选数字列的总和。
2 计数 计算组中包含的项目总数。如果未指定组,则计算整个报表中的所有项目。
3 每页计数 计算渲染页面上组中包含的项目总数。如果未指定组,则计算整个页面上的所有项目。
4 组计数 计算所选组中的项目总数。如果未指定组,则计算所有组中的所有项目。
5 最小值 识别组中的最低或最小值。
6 最大值 识别组中的最高或最大值。
7 和的商 对两列的总和进行简单的除法运算,并返回一个数值。
8 和的商百分比 对两列的总和进行简单的除法运算,并返回一个百分比值。
9 计算 存储计算结果。此函数用于组中。
10 页数计数 根据指定的条件计算页面上的项目数。当到达新页面时,此值将重置为零。
11 页面求和 将页面上所有指定的项目相加并产生一个总计。当到达新页面时,此值将重置为零。
运行函数
序号 函数名称 用途
1 求和 计算指定列的运行总和。
2 计数 计算组或报表中的项目数。
3 组计数 计算报表中组的个数。
4 计数唯一值 计算列中某个值的唯一出现次数。
5 平均值 计算给定列中的平均值。
6 最小值 识别列中的最低或最小值。
7 最大值 识别列中的最高或最大值。
8 总百分比 计算数字列的百分比值。总和除以计数的项目数。
高级函数
序号 函数名称 用途
1 消息格式 根据 Java 消息格式规范格式化文本。
2 资源消息格式 根据 Java 消息格式规范格式化来自资源包的文本。
3 查找 将一列中的字符串映射到另一个字符串。
4 间接查找 返回映射字段中的值。
5 资源包查找 使用定义字段中的值作为资源包中的键执行资源包查找。
6 开放公式 使您可以使用内置的公式编辑器创建自己的自定义开放公式函数。
广告