Pentaho 简明教程

Pentaho - Quick Guide

Pentaho - Overview

What is Pentaho Reporting?

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

Pentaho 可接收不同数据源中的数据,包括 SQL 数据库、OLAP 数据源,甚至 Pentaho Data Integration ETL 工具。

Features of Pentaho

Pentaho Reporting 主要包括报告引擎、报表设计器和商业智能 (BI) 服务器。它装载了以下特性:

  1. Report Designer - 用于创建像素完美的报告。

  2. Metadata Editor - 允许向数据源添加用户友好的元数据域。

  3. Report Designer and Design Studio - 用于微调报告和即席报告。

  4. Pentaho user console web interface - 用于轻松管理报告和分析视图。

  5. Ad-Hoc reporting interface - 提供了一个分步向导来设计简单的报告。输出格式包括 PDF、RTF、HTML 和 XLS。

  6. A complex scheduling sub-system - 允许用户在给定的时间间隔中执行报告。

  7. Mailing - 用户可以将发布的报告通过电子邮件发送给其他用户。

  8. Connectivity - 报告工具和 BI 服务器之间的连接,允许将内容直接发布到 BI 服务器。

Pentaho - Installation

现在,让我们了解如何安装和配置 Pentaho Reporting Designer。

Prerequisites

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

OS

Command

Output

Windows

Open command prompt: >java -version

java version "1.7.0_60"Java™ SE 运行时环境(版本 1.7.0_60b19 构建)Java HotSpot™ 64 位服务器虚拟机(版本 24.60-b09,混合模式)

Linux

Open terminal: $ java –version

java version "1.7.0_60"OpenJDK 运行时环境 (rhel-2.3.10.4.el6_4x86_64) OpenJDK 64 位服务器虚拟机(版本 60.7-b01,混合模式)

Mac OS

Open terminal: $ java –version

java version "1.7.0_60"Java™ SE 运行时环境(版本 1.7.0_60b19 构建)Java HotSpot™ 64 位服务器虚拟机(版本 24.60-b09,混合模式)

如果系统中未安装 Java,请使用以下链接下载并安装 Java: Download and Install Java

Download Pentaho Reporting

使用以下链接下载 Pentaho Reporting Designer 最新版本。本教程使用版本 3.7.0。

OS

用于下载 Pentaho 报告设计器的 URL 链接

Windows

Pentaho Report Designer 3.7 for Windows

Linux

Pentaho Report Designer 3.7 for Linux

Mac OS

Pentaho Report Designer 3.7 for Mac OS

Install Pentaho Reporting

下载文件后,您会找到一个名为 prd-ce-3.7.0-stable 的 Pentaho Reporting Designer 存档文件。该存档文件应按照下表所述的方式提取。

OS

Installation Instructions

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 报告设计器从 Finder 复制并粘贴到 /应用程序文件夹中。使用以下命令启动 Pentaho 报告设计器。$ report-designer.sh

Install Database Driver

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

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

本教程使用 MySQL 数据库服务器及其各自的驱动程序已随 Pentaho lib(Pentaho Reporting Designer 文件的 /lib/ 目录)文件下载。

Install Additional Fonts

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

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

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

Pentaho - Navigation

本章将提供一个有关 Pentaho 中提供的用户界面的简要介绍,以及如何在其中导航。

The Welcome Screen

欢迎界面提供了两种方法来创建不同类型的报表。这两个选项是 Report WizardNew Report

  1. Report Wizard ——它提供了一个简单易用的四步流程,指导您完成创建新报表的步骤。

  2. New Report ——如果您选择此选项,则可以根据您的要求创建自定义报表。

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

welcome page

The Main Toolbar

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

main toolbar

The Report Workspace

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

  1. Page Header ——您可以在此处使用任何类型的数据,这些数据适合打印在每一页报表的顶部。它不允许使用任何动态值或分页符。

  2. Report Header ——从顶部开始的第二个区域是“报表页眉”。它包含报表元素。它在每份报表中出现一次,即在报表的首页中。

  3. Details ——详细信息区域是您页面中最大的部分,因为大多数报表数据都显示在此区域中。

  4. Report Footer ——与报表页眉一样,报表页脚在每份报表中只出现一次,即在报表的最后一页中。

  5. Page Footer ——最后一个区域是页脚,它显示在报表中每页的绝对底部。

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

pentaho workspace

The Structure Pane

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

structure pane

The Data Pane

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

  1. Datasources ——您为当前报表定义的所有数据源和查询都将在此处列出。如果您想添加新的数据源,则右键单击最左边的按钮(黄色汽缸)并单击添加。

  2. Functions ——您添加到报表中的所有函数(数学和条件)元素都将在此类别中列出。您可以通过单击(fx)按钮来添加一个函数。

  3. Parameters ——您可以向报表中添加一个参数,这将使用户能够自定义输出的内容。

请查看以下屏幕截图。

data pane

The Style Pane

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

style pane

The Attribute Pane

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

attribute pane

The Palette

调色板包含用于生成报表的所有元素。要添加元素,单击布局带以选择它,然后从调色板拖放一个元素到选定的带中。我们在下表中解释了每个报表元素的作用。

Element icon

Element name

Description

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

A barcode chart element.

Bar-Sparkline

条形火花线图表元素。

Line-Sparkline

线形火花线图表元素。

Pie-Sparkline

饼形火花线图表元素。

Band

一种元素分组方法。

Sub-Report

引用其他报表的元素。

Table-Of-Content

目录报表元素。

Index

An Index report element.

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

pentaho palette

Pentaho - Data Sources & Queries

在本章中,我们将通过一个示例来了解如何使用 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

Name

Designation

Department

age

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 是最佳选择。我们的任务是向 Pentaho Reporting 设计器工具传递一个 SQL 查询,并选择相应的字段(它们显示在报表中),然后在报表页的“详细信息”中显示它。

在继续之前,请确保你精通 Pentaho 中提供的所有导航选项(在上一章中进行了说明)。既然我们有一个数据源,那么让我们进一步了解如何使用 Pentaho 生成专业报表。

Steps to Generate a Report using Pentaho

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

Step 1 : Create a New Report

你可以通过单击欢迎窗格上的“新建报表”或转到“文件 → 新建”来创建新的报表定义文件。

pentaho workspace

Step 2 : Add a Data Source

右侧的结构窗格提供报表的可视元素的视图。数据源的定义将在 Data 标签上;它允许定义报表数据来自何处以及在报表处理期间如何处理此数据。

报表通常以表格的形式显示由数据源提供的的数据,而报表定义定义如何对报表进行格式化或打印。如以下截图所示,从 structure pane 中选择 Data tab

add datasource

在数据标签中,右键单击数据集并选择 JDBC 以添加数据源。通常,在选项列表中,你可以根据要求选择任何其他选项。这意味着,如果你有 XML 文件作为你的数据源,那么从列表中选择 XML 选项。看看以下截图。在这里,我们正在选择 JDBC 选项以将数据库添加为数据源。

jdbc option

在选择 JDBC 选项作为数据源后,你将找到一个对话框,如以下截图所示。

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

dialog box

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

  1. 在连接类型列表中,选择 MySQL − 我们已选择 MySQL 作为数据库(数据源)。

  2. 在 Access 列表中,选择 Native (JDBC) − 通过 JDBC 连接,我们可以访问数据库。

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

  4. 单击 Test 按钮测试连接语句。

最后,单击 OK 按钮确认数据库连接。

add datasource 3

Step 3 : Add a Query

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

  1. 对话框右边的 Available Queries 块显示所有可用查询的列表。

  2. Query Name 块显示在上述可用查询列表中选定的查询名称。

  3. Query 块显示查询语句。如果没有可用查询或要创建新查询,请单击标为 1 指针的 “ + ” 按钮,如下截图所示。

add query

在单击 “ + ” 按钮时,可以通过在 Query Name 块上编辑名称(如 select_all_records ),在 Query 块中使用以下查询语句来创建查询。

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

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

add query 1

单击预览按钮后,您将在一个单独的对话框中找到所有 employee 表记录,如下截图所示。单击 close 按钮。

employee table

然后,单击 OK 按钮提交查询。提交查询后,您将在右侧结构窗格中的查询名称下方找到所有表字段名称及其数据类型,如下截图所示。此处,最大化的框是位于屏幕右侧的结构窗格。

employee table1

到目前为止,我们已向 Pentaho 报表设计器添加了一个数据源和一个查询。现在,我们必须向工作空间添加元素以创建报表。同样的示例在下一章 " Reporting Elements " 中得到扩展。

Pentaho - Reporting Elements

大多数报表元素都可以通过从数据窗格拖放它们到工作空间上的任何一个分段(大多数是详细信息分段)轻松添加。

让我们继续上一个章节中的相同示例。我们在其中向报表设计器添加了一个数据源和一个查询。在此,我们将基于查询产生的输出设计报表。

产生的查询字段是报表元素,它们在以下屏幕截图中突出显示。它们是 − idnamedesignationdepartmentage

Adding Reporting Elements

将查询添加到报告设计器后,产生的字段将出现在数据窗格中,如下截图所示。

employee table1

现在,将必需字段(想要在报表中显示的字段)从 Structure Pane(结构面板)拖动到主工作区中心的 Details Band(详细信息带)。

查看以下屏幕截图。它显示了从结构面板中拖动年龄字段的方向。

report fields 1

在 Details band(详细信息带)中排列好所有字段后,可以通过单击视图按钮(在上图中以 “ 1 ” 标明)查看报表视图。

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

report result

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

back to edit

报告的每一页包含两个特殊区域。在每一页顶部,您将会找到 page-header 区域。而在页面底部,您将会找到 page-footer 区域。剩余页面可用于实际报表内容。

页脚标签页用于提供一些属性和功能。例如,您可以使用页脚标签页来 print the max value of the age field at the bottom of the page 。报表引擎通过使用报表功能来实现这些特性。

查看以下屏幕截图。此处,结构窗格中的“数据”选项卡包含一个符号 fx(标记为“ 1 ”)。它是“添加”功能按钮。单击此按钮可向报表中添加不同的函数。

page footer

然后,您将会找到一个对话框,其中包含按不同组隔离的不同函数。若要打印页脚中的员工最大年龄,我们应该选择 Summary 组中的 Maximum 函数,该函数在以下屏幕截图中标记为“ 1 ”。选择它并单击 OK

functions

一旦您单击 Ok 按钮,该函数将被添加到“结构”窗格中的“函数”标签,该标签位于屏幕右侧。

一旦您选择已添加的函数(即“最大值”),您将会在“结构”窗格下方找到另一个窗格,其中包含该函数的属性。

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

  1. Pointer 1 − 在“结构”窗格的“数据”选项卡中选择函数。

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

customized properties

现在,该函数已经准备好定制属性了。现在,您可以将该函数用作页脚属性来添加到报表中。

查看以下屏幕截图。它再次包含两个指针(指针 1 和指针 2)。

  1. Pointer 1 − 如以下屏幕截图所示,选择并从“结构”窗格中将“最大值”函数拖动到工作区中的页脚栏。现在,报表的设计已经准备就绪。

  2. Pointer 2 − 选择屏幕左侧的“预览”按钮。

preview report

查看以下屏幕。它显示了报表的预览。员工的最大年龄已标记出来并显示在最大化框中。

maximized box

Pentaho - Groups

Pentaho 提供各种功能和特性,可将原始数据转换成有意义的信息。在此,我们将了解如何使用其中一项功能 Groups 。您可以使用此功能将原始行集数据分隔到组中,以便用户轻松理解报表。

  1. 分组是对长列表数据进行有意义的分隔符分隔的极好方式。

  2. 分组时,您可以将相似项放在一起,并在视觉上将这些项从其他组项中分隔开来。

  3. 您还需要对数据执行各种聚合,例如打印组中项的数量或计算总和或平均值。

Adding Groups in Pentaho

我们已经有一个基于员工数据的报告了。这里的查询是根据“部门”对所有员工记录进行分组。按照下面给出的步骤来满足给定的要求。

首先,通过单击结构窗格上的 Add group 按钮来启动流程。 Add group 按钮在以下屏幕截图中标记为“1”。

add group

单击添加组按钮,您将获得一个选项列表。然后,从列表中单击 Add group 选项。

单击添加组后,您将发现一个对话框,您可以使用该对话框从给定的可用字段中添加组字段。

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

  1. Pointer 1 − 为此组输入一个用户定义的名称。

  2. Pointer 2 − 从可用字段列表中选择 department 字段。

  3. Pointer 3 − 单击箭头 ( ) 按钮,以便将选定的字段复制到选定的字段列表中。

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

add group 1

添加组后,您将在结构窗格的结构选项卡中找到它。您还将在工作区中找到 Group HeaderGroup Footer 带。

查看以下屏幕截图。通过将报表设计器左侧调色板上的标签图标拖到组头中,为您的报表添加一个静态标签(在屏幕截图中,此活动已标记为“ 1 ”)。

通过双击标签,您可以对其进行编辑并将名称更改为 Department 。通过使用格式化工具栏或格式化调色板(分别标记为“3”和“4”),您可以更改标签的格式。

data tab

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

result report

单击预览按钮后,您将找到结果报告,如图所示以下屏幕截图所示。您会发现记录现在已按部门分组。

records

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

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

Pentaho - Chart Report

chart ,也称为 graph ,是数据的图形表示形式。Pentaho Reporting Designer 提供了多种图表类型。您可以使用 Pentaho Reporting Designer 调色板中提供的 “chart-element” 选项设计图表。

创建图表需要三个要求:

  1. data-collector 从数据源中提取图表数据。

  2. chart-expression 根据收集的数据生成图表。

  3. report element 显示生成图表对象。

现在让我们举一个示例,尝试理解在 Pentaho 中创建图表的过程。

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

Car

Speed

User Rating

Mileage

Safety

Fiat

1

3

5

5

Audi

5

6

10

4

Ford

4

2

3

6

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

Steps to Create a Chart in Pentaho

现在,按照给定的步骤基于给定场景创建图表。

Step 1 - Add a Query

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

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

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

add given query

Step 2 - Add an Image to the Page Header

这是一个可选步骤,但很重要,因为图像在提升报表美观方面起着重要作用。

查看以下屏幕截图。我们在此处重点介绍了以下五项活动:

  1. 添加查询后,您将在结构面板中找到查询字段。从结构面板中,选择相应的字段,然后拖放到报表工作区的 Details 选项卡中。

  2. “详细信息”选项卡只显示字段值。通过从 palette 中选择标签字段,将那些各自的标题标签添加到 Report Header 选项卡。

  3. 添加一张取自调色板的图片并将其放在 Page Header 选项卡上。在 Page Header 中为报表标题再添加一个标签,并使用一个合适的标题(例如 CAR – CHART ,以获得有效地演示。双击图像元素——你将看到一个名为 Edit Content 的对话盒。

  4. 你可以选择两种方法来插入图片。要么将图片 URL 链接到报表中,要么将图片嵌入到报表中。我们选择通过选择选项“ Embed in Report ”来嵌入图片。

  5. 从互联网上下载一些样例汽车图片来放到 Page Header 中。点击按钮来通过位置 URL 找到样例汽车图片。点击确定按钮来确认。

add image

通过点击在左侧调色板中选择并将其拖到报表中来添加图表。它在以下屏幕截图中标记为“1”。双击报表页脚中的柱状图元素。

add chart

Step 4 - Add Chart Properties

在双击图表元素后,你将发现一个对话盒,其中你必须提供收集到的详细信息和图表表达式详细信息。

看看以下的屏幕截图。选项卡 Primary Data Source 包含两个标记 −

  1. 标记 “ 1 ” 是一个下拉列表,其中你必须选择类别组数据收集器。

  2. 标记 “ 2 ” 也是 category-column 的一个下拉列表,其中你必须选择名称字段。

add chart properties

主数据源中有三个部分: CommonSeriesGroup 。在此,我们不需要在组部分中添加任何内容,因为我们在查询中未使用任何组。

Common − 此部分中有两个字段 − category-columnvalue-column 。我们在上面的部分中,已经用 name 字段填充了类别列值。第二个是 value-column

点击空值,你将找到一个对话框,如下面的屏幕截图所示。其中标记了两个活动(1 和 2)。

  1. 点击 (+) 按钮在列中添加值字段。

  2. 通过点击空值,你将找到一个下拉列表,其中你需要选择速度字段。

clicking empty value

重复上述两个活动来将用户评分、里程和安全字段添加到列中。在添加所有这些字段之后,屏幕将显示如所示。点击确定来确认。

primary data source

主数据源部分中的下一列是序列部分。

Series − 在序列字段中,点击按值分类选项。你将找到一个对话框,如下面的屏幕截图所示。其中有两个标记(1 和 2)。

  1. 点击 (+) 按钮来在列中添加一个新字段。

  2. 通过双击它,你可以编辑该字段。

针对诸如速度、用户评级、里程和安全等字段名称,重复这两项活动。

这些是用户自定义名称,用于报告图表中的特定部分中显示。但此处需要按照 Common 部分中值列字段中指定的相同顺序。按照如下方式在所有字段添加后单击 OK

edit chart

添加所有部分后,将会获得如以下屏幕截图中所示的 Edit Chart 对话框。 Bar Chart 窗格包含用于更改图表格式的不同属性。

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

general section

单击格式化工具栏上的“预览”按钮,以查看报告预览。它将显示如下面的屏幕截图所示 −

preview of report

可以通过使用不同类型的数据模型以及向图表属性提供不同的值,在报告中实现不同类型的图表。Pentaho 几乎在报告设计器中提供了 18 种类型的图表。

Pentaho - Formatting Report Elements

将报告元素放在工作空间中后,可以使用不同的方式对其进行格式化。Pentaho Reporting Designer 提供了各种功能来根据我们的要求对报告元素进行格式化。

Text Formatting

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

来看一看下面的截图。在这里,我们已标记并突出显示了三个对象:

  1. Selected Report Element

  2. Formatting toolbar

  3. 用于格式化报表元素的样式窗格选项卡

首先,在工作空间上选择报表元素。此后,可以使用格式化工具栏或样式选项卡窗格中的属性以多种方式对该元素进行格式化。

text formatting

Pentaho Report Designer 允许您向报表数据添加超链接。在这里,我们将举一个通用示例来说明如何在报表中添加超链接。

假设我们已在 employee 表中添加了一个查询以获取字段的 ID、名称和职责,我们还向报表工作空间添加了这些字段。在这里,我们的要求是使用超链接将职责字段的各个值作为参数值传递给 www.google.co.in

首先,在工作空间中选择职责字段。右键单击它,并从列表中选择超链接。来看一看下面的截图。

add hyperlink

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

请查看以下屏幕截图。这里,我们已标记并突出显示以下 5 个活动:

  1. 说明超链接位置的类型。通常有四种类型的位置 Self − 链接到同一报表字段。 URL − 为该参考位置提供 URL。 Pentaho Repository − 如果安装 Pentaho Repository,请在 localhost 中提供该文件 URL(需要登录)。 Manual Link − 手动创建链接或公式,并将其作为超链接提供。对于此示例,我们使用 URL 类型位置。

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

  3. 提供目标位置,即为 _TOP, _BLANK_PARENT 。我们使用了“_TOP”。如果想要在鼠标指针移动到超链接文本上方时向用户提供任何信息,请在提示框中输入信息,该框位于目标框的正下方。

  4. 选择加号 (+) 符号在参数列表中添加参数名称和值。

  5. 向 URL 中的超链接提供参数名称和值。此处,我们使用“ q ”作为参数名称和 Designation field 作为参数值。

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

add hyperlink 1

单击格式化工具栏中的预览按钮以预览报表。单击预览按钮后,您将找到以下屏幕截图。将鼠标指针放在任何职位值(HR 或 Admin)上,以查看其特定 URL。

add hyperlink 2

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

请查看以下屏幕截图。有不同的用于运行报表的选项,但我们选择以 HTML 格式显示报表。

add hyperlink 3

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

add hyperlink 4

Row Banding

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

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

row banding

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

row banding 1

单击预览按钮查看报表如何交替显示行颜色。它将如下面的屏幕截图所示出现。

alternate row colors

Pentaho - Functions

报表的每一页都包含一个 Page-header 区域和一个 Page-footer 区域。其余页面可供实际报表内容使用。

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

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

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

Step 1 - Click the Function Button (fx)

查看以下屏幕截图。此处,结构窗格中的“数据”选项卡包含一个符号 fx(标记为“ 1 ”)。它是“添加”功能按钮。单击此按钮可向报表中添加不同的函数。

page footer

Step 2 - Select a Particular Function

然后,您将会找到一个对话框,其中包含按不同组隔离的不同函数。若要打印页脚中的员工最大年龄,我们应该选择 Summary 组中的 Maximum 函数,该函数在以下屏幕截图中标记为“ 1 ”。选择它并单击 OK

functions

一旦您单击 Ok 按钮,该函数将被添加到“结构”窗格中的“函数”标签,该标签位于屏幕右侧。

Step 3 - Define a Field Name

一旦您选择已添加的函数(即“最大值”),您将会在“结构”窗格下方找到另一个窗格,其中包含该函数的属性。

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

  1. Pointer 1 − 在“结构”窗格的“数据”选项卡中选择函数。

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

customized properties

Step 4 - Add a Function to Report Workspace

现在,该函数已经准备好定制属性了。现在,您可以将该函数用作页脚属性来添加到报表中。

查看以下屏幕截图。它再次包含两个指针(指针 1 和指针 2)。

  1. Pointer 1 − 如以下屏幕截图所示,选择并从“结构”窗格中将“最大值”函数拖动到工作区中的页脚栏。现在,报表的设计已经准备就绪。

  2. Pointer 2 − 选择屏幕左侧的“预览”按钮。

preview report

Step 5 - Check Preview

查看以下屏幕。它显示了报表的预览。员工的最大年龄已标记出来并显示在最大化框中。

maximized box

Pentaho - Additional Functions

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

Common Functions

S.No.

Function Name

Purpose

1

Open Formula

允许您使用内置公式编辑器创建您自己的自定义开放公式函数。

2

Page

计算渲染前报表中使用的页面数量。

3

Total Page Count

列出已渲染报表的总页数。

4

Page of Pages

打印当前页码以及已渲染报表的总页数。

Report Functions

S.No.

Function Name

Purpose

1

Is Export Type

测试此报表是否已选择给定的导出类型。

2

Row Banding

交替着给组中每个项目频带的背景颜色。

3

Hide Repeating

隐藏组中相等的值。仅打印第一个更改的值。

4

隐藏页眉和页脚

当输出类型不可分页时,隐藏页眉和页脚频带。

5

Show Page Footer

仅在报表中呈现的最后一页上显示页脚。

Summary Functions

S.No.

Function Name

Purpose

1

Sum

计算所选数字列的总和。

2

Count

计算组中包含的总项目数。如果没有指定组,则将计算整个报表中的所有项目。

3

Count by Page

计算在一个已渲染页面上的组中包含的总项目数。如果没有指定组,则将计算整个页面上的所有项目。

4

Group Count

计算选中组中的总项目数。如果没有指定组,则会计算所有组中的所有项目。

5

Minimum

识别出组中最低或最小的值。

6

Maximum

识别出组中最高或最大的值。

7

Sum Quotient

对两列的总和执行简单的除法运算,并返回一个数字值。

8

Sum Quotient Percent

对两个列的总和执行简单的除法,并返回百分比值。

9

Calculation

存储计算结果。此函数用于组中。

10

Count of pages

根据指定条件计算页面上的项目。当接触到新页面时,此值重置为零。

11

Sum of Pages

在一个页面中添加所有指定项目并生成一个总计。当接触到新页面时,此值重置为零。

Running Functions

S.No.

Function Name

Purpose

1

Sum

计算指定列的运行总和。

2

Count

计算组或报告中的项目数。

3

Group Count

计算报告中的组数。

4

Count Distinct

计算列中特定值的不同出现次数。

5

Average

计算给定列中的平均值。

6

Minimum

识别列中最低或最小的值。

7

Maximum

识别列中最高或最大的值。

8

Percent of Total

计算数字列的百分比值。总和除以计数的项目数。

Advanced Functions

S.No.

Function Name

Purpose

1

Message Format

根据 Java 消息格式规范格式化文本。

2

Resource Message Format

根据 Java 消息格式规范格式化资源包中的文本。

3

Lookup

将一个列中的字符串映射到另一个字符串。

4

Indirect Lookup

从已映射字段返回一个值。

5

Resource Bundle Lookup

使用定义字段中的值作为资源包中的密钥,执行资源包查找。

6

Open Formula

允许您使用内置公式编辑器创建您自己的自定义开放公式函数。