标签: jaspersoft-studio

67
推荐指数
6
解决办法
13万
查看次数

iReport和Jaspersoft Studio有什么区别?

两者都是可视化设计报告的工具,两者都来自同一供应商.

为什么Jaspersoft推出两种类似的技术?

jasper-reports ireport jaspersoft-studio

19
推荐指数
1
解决办法
2万
查看次数

在jaspersoft studio中使用多个数据源

根据向Jaspersoft Studio添加自定义数据源,能够将java bean中的自定义数据源添加到报表之后,我将使用jasper进入报表的第二点.

我有一个主报告,它使用数据库作为其数据源.然后我将一个bean.xml数据源添加到报表中,并将一个表添加到主报表中,该报表使用此bean.xml数据源来获取java bean.

我的目标是从主报表中获取字段值并操纵其值,然后用这些值填充bean,最后用bean填充表.

为此,我编写了3个类,我在表数据集中用作Scriptlet:

这是我需要做的事情的说明: 在此输入图像描述

问题出在FillTable类中,当我说我String kNFormelGG = (String) this.getParameterValue("gg");创建的bean.xml与测试连接失败时java.lang.reflect.InvocationTargetException

Caused by: java.lang.NullPointerException
at net.sf.jasperreports.engine.JRAbstractScriptlet.getParameterValue(JRAbstractScriptlet.java:95)
at net.sf.jasperreports.engine.JRAbstractScriptlet.getParameterValue(JRAbstractScriptlet.java:86)
at org.iqtig.reporting.dataSource.bean.dataSourceXML.FillTable.fillTable(FillTable.java:45)
at org.iqtig.reporting.dataSource.bean.dataSourceXML.JRDataSourceFactory.createCollection(JRDataSourceFactory.java:27)
... 34 more
Run Code Online (Sandbox Code Playgroud)

如果我分配一个修复值,如String kNFormelGG ="Test me"bean连接遇到没有错误,并在将bean.xml指定为Dataset1中的默认数据适配器的值后,它将使用静态值填充表.如何从主报表数据源动态获取参数或值中的数据并在bean中使用它?我有这样的假设:在从我的适配器调用静态工厂类时,字段仍然是空的.也许我错了,但我没有找到任何其他声明来解决这个问题.

BeanFactory类

import java.util.Collection;
import net.sf.jasperreports.engine.JRDefaultScriptlet;
import net.sf.jasperreports.engine.JRScriptletException;

/**
 * Factory for TableCellsBean Klasse
 *
 * @author iman.gharib
 */

public class JRDataSourceFactory extends JRDefaultScriptlet {

/**
 * @return collection der TableCellsBean Objekten
 * @throws JRScriptletException
 */
public …
Run Code Online (Sandbox Code Playgroud)

java jasper-reports jaspersoft-studio

17
推荐指数
1
解决办法
3055
查看次数

将自定义数据源添加到Jaspersoft Studio

我试图通过传递自定义数据源来填充表.我创建了一个包含表格的简单报告.报告它自己从ms sql数据库获取数据.我编写了一个类似于本例中的类的java类.但我在桌上没有任何价值.在该示例中没有scriptlet.我检查了(String) this.getFieldValue("KN_FormelGG"); 代码行.它从字段中获取数据并可以在报告中显示.所以我猜bean数据源没有填充.我在a中调用了填充表方法afterGroupInit.如何在jasper中使用java中的数据集合?我也尝试在数据集和查询对话框中添加java bean ,但它也没有帮助我.我应该将scriptlet添加到子报表/表吗?我的问题的主要重点是在scriptlet中具有自定义数据源.我解决了另一个问题,但我仍然没有得到答案.我添加$P{FieldDataSource}.getData()了检查数据,但它提供了null.

java class 1:

package testProjektIman.scriptlets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JRDefaultScriptlet;
import net.sf.jasperreports.engine.JRScriptletException;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

public class FillTable extends JRDefaultScriptlet {

    @Override
public void afterGroupInit(final String id)
        throws JRScriptletException {
    fillTable();
}
public ArrayList<String> splitGGArray(final String kNFormelGG) {
    ArrayList<String> fieldNames = new ArrayList<>();
    String[] array = (kNFormelGG.split(" "));
    for (String sub : array) {
        fieldNames.add(sub);
    }
    return …
Run Code Online (Sandbox Code Playgroud)

java jasper-reports javabeans jaspersoft-studio

10
推荐指数
1
解决办法
3206
查看次数

将报告导出为PDF时更改字体

我正在使用Jaspersoft Studio 5.2,我使用Courier New字体进行了报告,当我将其导出为PDF时,它将字体更改为Arial.

我只使用Studio工具.当我预览报告是可以的,但是当我导出它时就会发生.

如何使用Courier New字体导出我的报告?

我在报告中使用的textField模型:

<textField pattern="dd/MM/yyyy  HH:mm:ss">
    <reportElement uuid="f50b279a-b480-498f-8af7-be7e23c4b80b" x="415" y="11" width="105" height="10"/>
    <textElement>
        <font fontName="Courier New" size="8"/>
    </textElement>
    <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)

fonts jasper-reports export-to-pdf jaspersoft-studio

9
推荐指数
1
解决办法
3万
查看次数

在Jaspersoft Studio 6.3中的TextField表达式中使用lambda表达式

我想在TextField表达式中使用lambda表达式,如下所示:

Arrays.asList($F{field1}, $F{field2}, $F{field3}).stream().filter(i -> i != null).collect(java.util.stream.Collectors.joining(" / "))
Run Code Online (Sandbox Code Playgroud)

假设这些字段的值:

$F{field1} = 1
$F{field2} = null
$F{field3} = 2
Run Code Online (Sandbox Code Playgroud)

TextField评估的预期结果是:

1 / 2
Run Code Online (Sandbox Code Playgroud)

而不是我在IDE中收到错误:

Lambda expressions are allowed only at source level 1.8 or above
Run Code Online (Sandbox Code Playgroud)

这是编译期间IDE内部的异常:

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. Lambda expressions are allowed only at source level 1.8 or above
                value = "Contato: " + Arrays.asList(((java.lang.String)field_c_telefone.getValue()), ((java.lang.String)field_c_celular.getValue()), ((java.lang.String)field_c_fax.getValue()), ((java.lang.String)field_c_email.getValue())).stream().filter(i -> i != null).collect(java.util.stream.Collectors.joining(" / ")); //$JR_EXPR_ID=22$
                                                                                                                                                                                                                                                               <------------>
2. Lambda expressions are …
Run Code Online (Sandbox Code Playgroud)

java lambda jasper-reports java-8 jaspersoft-studio

6
推荐指数
1
解决办法
1240
查看次数

JasperReport:如何使用子报表返回值作为主报表变量计算的输入

场景:

我有两个报告:主报告(让我们称之为A)和子报告(让我们称之为B).

报告A在详细信息带中包含子报告B,因此在报告A数据源中为每个元素显示子报告B. 子报告B还将一个变量返回到主报告A.

我想要的是将子报告B中的返回值相加并在主报告摘要中对它们进行总计.

为此,我尝试创建一个新的报表变量,将这些返回值相加...这样的事情:

变量定义示例

但是,我发现在渲染波段细节之前总会评估这样的变量表达式,所以我总是会错过第一个子报表返回值...

可悲的是,评估时间(正如这个链接所说)不能在这些变量上改变,所以我被卡住了......

java jasper-reports jaspersoft-studio

5
推荐指数
1
解决办法
5692
查看次数

如何为文本字段创建动态颜色?

背景:Jaspersoft studio 6.2

如何根据表达式更改文本字段的前景色。

如何应用表达式以使字体颜色(前景色)基于该字段中的值?我找不到任何地方可以设置 forecolor 属性的表达式。

jasper-reports jaspersoft-studio

5
推荐指数
2
解决办法
1万
查看次数

如何将 .jar 添加到 jaspersoft studio 中的类路径中?

我需要添加 commons-lang3 和 commons-math3 以便我可以在报告中生成中位数。我已经下载了这些文件,但是如何将它们添加到类路径中以便 jaspersoft studio 可以引用它?

我正在使用 Jaspersoft Studio Professional 5.6.1

我尝试进入项目资源管理器并右键单击该项目,但没有类路径选项。

这不是在 jaspersoft studio 中使用外部 JAR 文件的重复,因为解决方案建议:right click on project folder > properties > java build path > libraries > add External JARs..对我来说似乎不是一个选项。

谢谢!

reporting jaspersoft-studio

5
推荐指数
1
解决办法
1万
查看次数

如何在Jaspersoft Studio中配置Maven?

我正在构建一个依赖于各种模块的复杂项目.为了导出为PDF,我使用JasperReport API并开发报告,我使用的是Jaspersoft Studio,版本6.4.0.

在避免重复查询的方法中,我通过参数将所有数据发送到报表,此参数的类型是自定义bean.那些bean包含在另一个项目中(必须如此,因为这些bean正在另一个应用程序的视图层中使用).当我直接在Jaspersoft Studio项目中将这些bean作为".jar"文件中包含的jar库依赖项导入时,报表编译完美.

现在我正在尝试使用Maven来包含这些依赖项,但Jaspersoft Studio不包含Maven库,我不能这样做.

我已经尝试从存储库安装maven(http://download.eclipse.org/technology/m2e/releases),但这不起作用:

帮助>安装新软件> ...

Maven安装错误

它告诉我需要更多捆绑,我手动安装了很多捆绑但总是需要更多,我不知道这是否可行.

有人在Jaspersoft Studio中完成了Maven配置吗?如果是这样,我将很高兴知道如何.我还可以在使用Maven管理依赖项时使用其他选项

java eclipse jasper-reports maven jaspersoft-studio

5
推荐指数
1
解决办法
1061
查看次数