GVKun编程网logo

Jasper Report - 错误时忽略数字格式(sumproduct忽略错误值)

26

本文将介绍JasperReport-错误时忽略数字格式的详细情况,特别是关于sumproduct忽略错误值的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一

本文将介绍Jasper Report - 错误时忽略数字格式的详细情况,特别是关于sumproduct忽略错误值的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于icec 1.3 发布,springboot 整合 jasperreport (ireport)、iReport 4.0.2 发布,支持最新版 JasperReports、iReport+jasperReport之NoXML、iReport+jasperreport创建子表的几种方式(1)的知识。

本文目录一览:

Jasper Report - 错误时忽略数字格式(sumproduct忽略错误值)

Jasper Report - 错误时忽略数字格式(sumproduct忽略错误值)

如何解决Jasper Report - 错误时忽略数字格式?

我正在尝试创建一个 Jasper Excel 报告,其中对于数字列,我在 JRXML 中设置了正确的类型(例如 BigDecimal),并且我看到数字格式设置正常。但问题是,如果数据不是数字的单元格很少,例如“--”),报告生成将失败,因为它无法解析该值。当我检查转换器类时,我看到一个名为 useDefault 的属性默认设置为 false 但如果我们将此属性设置为 true,格式将忽略错误并返回原始值。

现在有人可以让我知道我需要为 useDefault I JRXML 设置什么属性吗?任何示例都会有很大帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

icec 1.3 发布,springboot 整合 jasperreport (ireport)

icec 1.3 发布,springboot 整合 jasperreport (ireport)

很多项目都有导出pdf,word,打印等需求,本次更新给大家带来jasperreport整合模块。

翻阅网上资料关于springboot整合jasperreport的比较少,很多都是过时的以及重复的文章,很费力。

本次更新对有这方面需求的人来说,有很大参考价值。

本版本功能更新:

  • 新增icec-ireport模块

icec-report使用说明

icec 本身就是maven管理的多模块系统;icec-report是新增的用来集成jaserreport的模块,如果需要使用他的功能,那么就在你的主模块中引入maven依赖;如果不需要,不依赖该模块即可,不影响最终发布包。
<dependency>
        <groupId>org.icec</groupId>
        <artifactId>icec-ireport</artifactId>
        <version>${icec.version}</version>
    </dependency>

如何使用?

icec-ireport 里面已经给出显示和导出pdf的案例,对应代码
/org/icec/web/ireport/controller/IreportController.java
查看演示方式:http://localhost:8080/ireport/showpdf   (前提是已经将模块集成到项目中)

一些问题?

icec-ireport项目的maven依赖中,有个包会找不到,对,他就是
 <dependency>
        <groupId>org.icec.jasperfont</groupId>
        <artifactId>msyh</artifactId>
        <version>1.0</version>
    </dependency>

这个包,是我自己用jaserreport studio 打的字体包(微软雅黑),不在maven仓库,所以报错了。
需要手动下载jar包,放到本机仓库中,会用maven的都懂。
msyh-1.0.jar文件所在路径icec-ireport/lib/msyh-1.0.jar_改名

jasperreport 中文显示问题

通过上一步设置,在jasperreport模板中,字体设置成msyh的话,中文就可以正常显示了。如果想使用其他字体,那么就要参考官网打包方法,生成新的jar,参考我的办法,引入到项目中,就可以了。
官网关于自定义字体的url:
https://community.jaspersoft.com/wiki/custom-font-font-extension		

jasperreport 模板设计工具

推荐使用	jasperreport studio (ireport 已过时)
下载地址:
https://community.jaspersoft.com/project/jaspersoft-studio

演示截图:


iReport 4.0.2 发布,支持最新版 JasperReports

iReport 4.0.2 发布,支持最新版 JasperReports

iReport是用于定义JasperReport报表的可视化工具,JasperReport使用XML来定义一个报表的结构,iReport可以让用户很方便地定义报表,而不需要手工去写这些XML文件。

该版本完全支持 JasperReports 4.0.2,支持段落,可配置 Tab stop,改进对 jrtx 的支持,修复很多bug。

iReport+jasperReport之NoXML

iReport+jasperReport之NoXML

jasperReport的这个包net.sf.jasperreports.engine.design 是这样描述的:Contains design time implementations for the library''s main interfaces as well as report compiling tools.因此我们完全可以使用它的API构建自己的报表。 构建JasperDesign对象: 设置一些对应的属性:

// JasperDesign  
        JasperDesign jasperDesign = new JasperDesign();  
        jasperDesign.setName("NoXmlDesignReport");  
        jasperDesign.setPageWidth(595);  
        jasperDesign.setPageHeight(842);  
        jasperDesign.setColumnWidth(515);  
        jasperDesign.setColumnSpacing(0);  
        jasperDesign.setLeftMargin(40);  
        jasperDesign.setRightMargin(40);  
        jasperDesign.setTopMargin(50);  
        jasperDesign.setBottomMargin(50);  

字体:

// Fonts  
    JRDesignStyle normalStyle = new JRDesignStyle();  
    normalStyle.setName("Arial_Normal");  
    normalStyle.setDefault(true);  
    normalStyle.setFontName("Arial");  
    normalStyle.setFontSize(12);  
    normalStyle.setPdfFontName("Helvetica");  
    normalStyle.setPdfEncoding("Cp1252");  
    normalStyle.setPdfEmbedded(false);  
    jasperDesign.addStyle(normalStyle);  

    JRDesignStyle boldStyle = new JRDesignStyle();  
    boldStyle.setName("Arial_Bold");  
    boldStyle.setFontName("Arial");  
    boldStyle.setFontSize(12);  
    boldStyle.setBold(true);  
    boldStyle.setPdfFontName("Helvetica-Bold");  
    boldStyle.setPdfEncoding("Cp1252");  
    boldStyle.setPdfEmbedded(false);  
    jasperDesign.addStyle(boldStyle);  

    JRDesignStyle italicStyle = new JRDesignStyle();  
    italicStyle.setName("Arial_Italic");  
    italicStyle.setFontName("Arial");  
    italicStyle.setFontSize(12);  
    italicStyle.setItalic(true);  
    italicStyle.setPdfFontName("Helvetica-Oblique");  
    italicStyle.setPdfEncoding("Cp1252");  
    italicStyle.setPdfEmbedded(false);  
    jasperDesign.addStyle(italicStyle);  

定义报表的参数,并添加到报表设计器上

// Parameters  
    JRDesignParameter parameter = new JRDesignParameter();  
    parameter.setName("ReportTitle");  
    parameter.setValueClass(java.lang.String.class);  
    jasperDesign.addParameter(parameter);  

定义报表的字段,这些字段是最终显示到报表上的域

// Fields  
    JRDesignField field = new JRDesignField();  
    field.setName("userid");  
    field.setValueClass(java.lang.Integer.class);  
    jasperDesign.addField(field);  

    field = new JRDesignField();  
    field.setName("name");  
    field.setValueClass(java.lang.String.class);  
    jasperDesign.addField(field);  

    field = new JRDesignField();  
    field.setName("sex");  
    field.setValueClass(java.lang.String.class);  
    jasperDesign.addField(field);  

    field = new JRDesignField();  
    field.setName("age");  
    field.setValueClass(java.lang.String.class);  
    jasperDesign.addField(field);  

    field = new JRDesignField();  
    field.setName("password");  
    field.setValueClass(java.lang.String.class);  
    jasperDesign.addField(field);  

    field = new JRDesignField();  
    field.setName("department");  
    field.setValueClass(java.lang.String.class);  
    jasperDesign.addField(field);  

    JRDesignBand band = null;  
    JRDesignTextField textField = null;  
    JRDesignExpression expression = null;  

开始画报表主体的title部分,不需要的部分可以不用代码标识出来,title部分放置了报表标题字段,只会出现在第一页的上方

// title  
    band = new JRDesignBand();  
    band.setHeight(50);  
    textField = new JRDesignTextField();  
    textField.setBlankWhenNull(true);  
    textField.setX(0);  
    textField.setY(10);  
    textField.setWidth(500);  
    textField.setHeight(30);  
    textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);  
    textField.setStyle(normalStyle);  
    textField.setFontSize(22);  
    expression = new JRDesignExpression();  
    expression.setValueClass(java.lang.String.class);  
    expression.setText("$P{ReportTitle}");  
    textField.setExpression(expression);  
    band.addElement(textField);  
    jasperDesign.setTitle(band);  

detail部分:排列域的位置,并设置它的值,没一个域的值会最为一个 JRDesignExpression出现

// Detail  
    // pid  
    band = new JRDesignBand();  
    band.setHeight(20);  

    textField = new JRDesignTextField();  
    textField.setX(5);  
    textField.setY(4);  
    textField.setWidth(100);  
    textField.setHeight(15);  
    textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT);  
    textField.setStyle(normalStyle);  
    expression = new JRDesignExpression();  
    expression.setValueClass(java.lang.Integer.class);  
    expression.setText("$F{userid}");  
    textField.setExpression(expression);  
    band.addElement(textField);  
    // name  
    textField = new JRDesignTextField();  
    textField.setStretchWithOverflow(true);  
    textField.setX(120);  
    textField.setY(4);  
    textField.setWidth(80);  
    textField.setHeight(15);  
    textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);  
    textField.setStyle(normalStyle);  
    expression = new JRDesignExpression();  
    expression.setValueClass(java.lang.String.class);  
    expression.setText("$F{name}");  
    textField.setExpression(expression);  
    band.addElement(textField);  

    // sex  
    textField = new JRDesignTextField();  
    textField.setStretchWithOverflow(true);  
    textField.setX(200);  
    textField.setY(4);  
    textField.setWidth(30);  
    textField.setHeight(15);  
    textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);  
    textField.setStyle(normalStyle);  
    expression = new JRDesignExpression();  
    expression.setValueClass(java.lang.String.class);  
    expression.setText("$F{sex}");  
    textField.setExpression(expression);  
    band.addElement(textField);  
    // age  
    textField = new JRDesignTextField();  
    textField.setStretchWithOverflow(true);  
    textField.setX(240);  
    textField.setY(4);  
    textField.setWidth(30);  
    textField.setHeight(15);  
    textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);  
    textField.setStyle(normalStyle);  
    expression = new JRDesignExpression();  
    expression.setValueClass(java.lang.String.class);  
    expression.setText("$F{age}");  
    textField.setExpression(expression);  
    band.addElement(textField);  
    // password  
    textField = new JRDesignTextField();  
    textField.setStretchWithOverflow(true);  
    textField.setX(270);  
    textField.setY(4);  
    textField.setWidth(80);  
    textField.setHeight(15);  
    textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);  
    textField.setStyle(normalStyle);  
    expression = new JRDesignExpression();  
    expression.setValueClass(java.lang.String.class);  
    expression.setText("$F{password}");  
    textField.setExpression(expression);  
    band.addElement(textField);  
    // department  
    textField = new JRDesignTextField();  
    textField.setStretchWithOverflow(true);  
    textField.setX(350);  
    textField.setY(4);  
    textField.setWidth(80);  
    textField.setHeight(15);  
    textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);  
    textField.setStyle(normalStyle);  
    expression = new JRDesignExpression();  
    expression.setValueClass(java.lang.String.class);  
    expression.setText("$F{department}");  
    textField.setExpression(expression);  
    band.addElement(textField);  

JasperReport对象可以使用下面这句产生: Java代码
JasperCompileManager.compileReport(jasperDesign);

至此一个完整的报表就可以显示出来了。

iReport+jasperreport创建子表的几种方式(1)

iReport+jasperreport创建子表的几种方式(1)

在制作报表的过程中,子表是必不可少的,今天就研究了一下制作子表的几种方式 一、连接数据库创建子表 以MySQL为例: 1)iReport 创建父表 这个就是创建一个新的表,不过记得数据源要选择mySQL ,其他的数据库数据源也一样的。 2)创建好之后,我们来创建子表

在制作报表的过程中,子表是必不可少的,今天就研究了一下制作子表的几种方式

一、连接数据库创建子表

以MySQL为例:

1)iReport 创建父表

这个就是创建一个新的表格,不过记得数据源要选择mySQL ,其他的数据库数据源也一样的。

2)创建好之后,我们来创建子表,在组件面板找到\拖动到父表当中的任意一个地方,我是放到detail里面的

它会产生一个向导

\

一路next下去,只是在最后一项选择use empty datasource,不过选其他的也行,待会我们还要修改

3)说一下原理:这种方式就是利用每张报表都有的Parameters属性,在iReport4.6中,点击子报表在右侧属性栏的最下面有两个属性

\

一个是Parameters属性,他可以用来向子表传递数据接下来我会说到,第二个是Return Values很明显这个可以用来将子表的数据返回,这个有时间再说。

下面子表属性进行设置:

有两个属性需要注意,一个是Subreport Expression用来指出子表的路径,这个新建之后一边不需要修改

\

另外一个是connect type,这个要选择Use a datasource express 创建子表时候选择默认值,就是父连接,这个现在不是重点,不过在之后的方式中,这个是很有用的

下面是重点:

设置点击Parameters打开这样一个窗口,点击add之后

\

这就是你自定义Parameters的地方,名字可以随便取,我的是如下设置:名字是id我要传递给子表的是数据库的ID字段,到此,我们对于主表这边的设置结束

\

4)下面设置子表这里有一个关键点,就是在子表左边栏Parameters属性这边要新建一个Parameters,右键-》新建名字要和上面我们创建的一样而字段的类型要和从主表传递过来的字段一样:我定义的是id同时在我的数据库中定义的ID字段是String类型的,所以是以下设置注意,Default Value Expection一定要设置为“”字符,不然会报错,折腾了我好几个小时

\

这个设置好之后打开数据连接窗口\最左边的小按钮,打开后使用select语句不过要使用我们自定义的字段,如下图,

你会发现出现了一些属性字段选择添加,就OK啦

\

我的字段和子表设置

\

\

下面是预览结果

N)╧y源码发过去,希望能共同学习

回家了,明天继续写

关于Jasper Report - 错误时忽略数字格式sumproduct忽略错误值的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于icec 1.3 发布,springboot 整合 jasperreport (ireport)、iReport 4.0.2 发布,支持最新版 JasperReports、iReport+jasperReport之NoXML、iReport+jasperreport创建子表的几种方式(1)的相关知识,请在本站寻找。

本文标签: