首页 > 其他分享 >Pentaho Report Design设计柱状图

Pentaho Report Design设计柱状图

时间:2023-08-08 11:34:56浏览次数:46  
标签:点击 函数 series 分类 quota 柱状图 Design Report 分组


我们在上一章节已经安装了Pentaho Report Design,现在使用它来设计柱状图。

新建bar模版

如果才打开,可以看到有一些Samples模版可以选择,直接点击Charts和Bar即可。如图:

Pentaho Report Design设计柱状图_Group

或者新建一个空白的report模版,然后选中左边工具栏的chart工具,拖动到Report Header中,并拖动产生的图标调整大小。

Pentaho Report Design设计柱状图_Group_02

新建完毕后效果如图:

Pentaho Report Design设计柱状图_Group_03

添加数据源

点击导航栏中的database图标或者右侧栏的Data对着Data Sets右键如下图:

Pentaho Report Design设计柱状图_Group_04


Pentaho Report Design设计柱状图_数据源_05

我们这里以MongoDB为例。

配置ip和端口以及数据库名称集合以及查询条件以及获取字段名。

Pentaho Report Design设计柱状图_Group_06


Pentaho Report Design设计柱状图_数据仓库_07


Pentaho Report Design设计柱状图_数据源_08


Pentaho Report Design设计柱状图_Group_09

增加成功我们看到Data中已经有mongodb的数据源了。

如图:

Pentaho Report Design设计柱状图_Group_10

左键点击连接 点击preview可以预览数据。

需要注意的是,新建数据源时,使用默认的命名Query1即可,千万不要改成其他命名,否则有可能mongodb字段会解析不出来如下图。

Pentaho Report Design设计柱状图_字段_11

新增计数字段

为报表添加参数,右侧Data选项卡下方Parameters - Add Parameter。

这里支持常量,也可以使用数据源中的数据作为查询参数,例如${id}。

Pentaho Report Design设计柱状图_数据仓库_12


Pentaho Report Design设计柱状图_字段_13

设计表格格式

把右边数据源中需要统计的字段拖动到左边Details栏目中。

Pentaho Report Design设计柱状图_数据仓库_14

然后点击Report Header中的Bar图表进行编辑。

Pentaho Report Design设计柱状图_字段_15

最终设置参数如下:

Pentaho Report Design设计柱状图_数据源_16


chart-title 表示图表的标题

title-font 标题字体一般选择宋体等中文字体否则显示空白

label-font 横坐标字体

legend-font 小分类series字体,找不到series-font,设置该项生效

x-font 横坐标字体

y-font 纵坐标字体

category-column表示横坐标分类

value-columns表示纵坐标的值字段(会自动汇总)

series表示横坐标每个分类下的小的分类

series-by-value根据值来分类

series-by-field根据字段来分类

auto-generate-series为true设置自动生成小分类

Y坐标刻度调整
首先要把自动设置Y坐标的功能关闭
y-auto-range设置为false,否则刻度不生效。
y-min和y-max设置最大最小值,通过这两个值可以调整可视区域和柱状长短。
y-scale-factor为刻度值,可以设置为1.0等等。
y-tick-fmt-str为精度。保留整数设置为#,保留一位小数设置为#.#。

查看效果

最终效果如图:

点击导航工具栏的绿色箭头run按钮print preview进行预览。

Pentaho Report Design设计柱状图_数据源_17

效果如图:

成功统计出了每个人的工作量。

注意预览的话 下面表格部分显示是不完全的,只是作为格式的示例。

如果需要看完整的数据,使用其他格式查看,或者左上角导航工具栏File–》Export导出查看。

Pentaho Report Design设计柱状图_字段_18

可能遇到的问题

pdf,excel等查看导出中文不显示

选中 Details中字段名称,点击左上角导航工具栏中的Format,选择Font,选中中文字体即可。

Pentaho Report Design设计柱状图_Group_19

chart中的字段则需要在左边把相应的font选中中文字体。

Pentaho Report Design设计柱状图_数据源_20

分类柱状图

我们上面设计的柱状图每个分类里只有一个小分类,如果要显示多个分类,则需要重新设置series。

我们这里有一个字段quota,表示每个人工作的性质,现在要统计每个人每种性质的工作量。

那么首先把quota字段拖到Details区域,点击chart图表修改series-field为quota即可。

Pentaho Report Design设计柱状图_数据源_21

预览效果如图:

每个人三种工作性质的工作量就已经统计出来了。

Pentaho Report Design设计柱状图_字段_22

调用函数与表达式

新建函数构造表达式

我们虽然完成了分类的柱状图的显示,但是发现工作性质类型标题栏显示的是数字123,有没有办法能够改成中文呢?

这就需要我们新增对应的函数和表达式来进行对应转换了。

右侧Data选项卡Functions - Add Function

Pentaho Report Design设计柱状图_Group_23


可以看到Pentaho提供了一些内置的函数,找到相应的函数点击新建,然后点击新建出来的函数,在下方属性中定义名称及表达式:

Pentaho Report Design设计柱状图_Group_24

相关函数的表达式可参考官网论坛:
https://wiki.pentaho.com/display/Reporting/9.+Report+Designer+Formula+Expressions

我们这里选中的是Advanced—>Open Formula(Advanced)。

Open Formula(Advanced)支持公开的自定义函数。

点击新建出来的函数FormulaFunction4,在下方属性中定义名称及表达式:

Formula为 =IF([quota]=”0”;”流程建设”;IF([quota]=”1”;”预防风险”;”提供效率”))

Initialization Formula为=[quota。

如图:

Pentaho Report Design设计柱状图_字段_25


IF([quota]=”0”;”流程建设”;IF([quota]=”1”;”预防风险”;”提供效率”))表达式使用的是逻辑表达式,通过if来判断数值对应到中文的类型。

使用函数

使用函数时直接输入函数名称替换原值即可。

比如我们上面的小分类series-by-field从quota替换为FormulaFunction4。

Pentaho Report Design设计柱状图_Group_26


则函数成功生效。series小分类成功替换成中文。

Pentaho Report Design设计柱状图_数据仓库_27

分组

新建分组排列

我们有时候需要对数据进行分组,比如我们需要知道每个人工作平均花了多少时间,那么我们可以先按人对工作日进行分组,然后求每组里工作日的平

均值。

右侧Structure选项卡右键点击Master Report,选择Add Group即可。

Pentaho Report Design设计柱状图_数据源_28


选中用来分组的字段。

Pentaho Report Design设计柱状图_字段_29

这时候左边的设计器中会出现Group Header和Group Footer。
把用来分组的字段拖入Group Header中,作为组的标题。
Datails放入工作日字段。
预览格式如下:
XXX
12
23
34
XX
12
32
45

分组成功。

求平均

新建函数Running–》Average(Running)。

选中字段,选中分组即可。

Pentaho Report Design设计柱状图_数据源_30


Field Name为需要求平均的字段。

Reset on Group Name 为分组名称。

Scale为小数点位数。

分组函数的使用方式,只能放在Group Footer中才生效并准确。
因为它是在遍历时一遍计算,如果放在Dedails每行调用Avg函数,则每行显示的是计算到当前行时的数值,并不是一个最终的平均数。
只有放在Group Footer中得到的才是计算完毕一组的平均数。这个是需要注意的地方。
由于这个特性,目前也没有找到把这个计算出来的平均数正确放入图表中的方法。


标签:点击,函数,series,分类,quota,柱状图,Design,Report,分组
From: https://blog.51cto.com/u_16218512/7006279

相关文章

  • indesign软件下载_adobe indesign下载 官方版特色
    AdobeInDesign2023官方版是用于印刷和数字媒体的业界领先的版面和页面设计软件。利用顶级字体公司的印刷字体和各种图像,创作精美的平面设计。快速共享PDF中的内容和反馈。通过AdobeExperienceManager轻松管理制作。InDesign具备创建和发布书籍、数字杂志、电子书、海报和......
  • ID软件下载Adobe InDesign2023安装包+教程(全版本) 官方版特色
    InDesignCC2020中文版是一款适合页面设计时使用的专业高效的页面排版设计工具,InDesignCC2020中文版功能强劲,能够帮助用户快速完美地控制设计在印刷样式中的各个像素,InDesignCC2020软件操作非常简便,可让您建立精美且吸引人的成果,将其用于印刷或显示在画面中。软件地址:看置顶贴......
  • 代码随想录算法训练营第四十六天| 84.柱状图中最大的矩形
     84.柱状图中最大的矩形要求:有多个矩形,要求返回可能勾勒出的最大矩形思路:寻找右边第一个小于当前节点的index寻找左边第一个小于当前节点的index 右边:累加的方式,如果当前节点小于,那么判读后放进去左边,放进去了之后,当前节点后一个,就是左边最小的代码:1//要求:和相......
  • Ant Design Pro项目一初始化就报a标签嵌套a标签错误<a> cannot as a descendant of <a
    前情公司经常需要做一些后台管理页面,我们选择了AntDesignPro,它是基于AntDesign和umi的封装的一整套企业级中后台前端/设计解决方案。坑位按官方文挡一步步下来,项目启动后发现控制台就有一个报错,报错截图如下:Why?从报错的提示看是项目出现了a标签嵌套a标签的情况,最......
  • 《Modern C++ Design》之上篇
    如下内容是在看侯捷老师翻译的《ModernC++Design》书籍时,整理的code和摘要,用于不断地温故知新。第一章1.运用TemplateTemplate参数实作PolicyClassestemplate<template<classCreated>classCreationPolicy>//template<template<class>classCreationPolicy......
  • 如何用Confusion matrix,classification report,ROC curve (AUC)分析一个二分类问题
    ROChttps://zhuanlan.zhihu.com/p/246444894   Sure,let'screatearandomconfusionmatrixasanexample,andthenI'llexplainwhateachelementinthematrixmeans:Supposewehaveabinaryclassificationproblem,wherethetruelabelsareas......
  • Python绘制多种形式的条形图(柱状图)
    绘图前的准备因为涉及到中文显示,所以需要用两行代码解决中文乱码问题importnumpyasnpfrommatplotlibimportpyplotaspltplt.rcParams['font.sans-serif']=[u'SimHei']#SimHei就是中文字体#因为设置了中文后,负号就乱码了,所以还要设置负号的编码plt.rcParams['axes.......
  • Ext Designer1.0试用手记
         Ext官网在4月22日推出了ExtDesigner1.0正式版,该版本可以试用14天。下面就是笔者的试用过程。   安装过程很简单,在这里就不赘述了。   软件运行后,将出现一个下图所示的注册窗口:      这里需要一个官网论坛帐号。   注册后,将显示以下窗口:    ......
  • pycharm配置QtDesigner
    一、安装需要的库pipinstallpyqt5pipinstallpyqt5-tools 二、配置QtDesigner 配置 QtDesignerName:QtDesignerGroup:QtProgram:C:\python\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exeWorkingdirectory:$ProjectFileDir$ 配置 PyUICNa......
  • Linux:user is not in the sudoers file. This incident will be reported 解决方法
    学习自:userisnotinthesudoersfile.Thisincidentwillbereported解决方法_一路奔跑94的博客-CSDN博客1、原因没有在权限文件中说明该用户具有sudo权限2、解决步骤1)以root身份去/etc/sudoers文件中,编辑vi/etc/sudoers2)在rootALL=(ALL)ALL之下添加一行xxxALL......