标签: jasper-reports

如何在JasperReports中使用另一个变量的值增加变量?

我需要在subReport中计算我正在计算的项目的总数.为此,我认为我需要将该变量的值添加到每个迭代的另一个变量中,或者用该值"递增"它.为每个组调用subReport,我得到该组的总数.我需要添加变量值,而不是数据库列/字段.

我收到一个整数returnValuesubReport,这本身就是在子报告的行数.我希望获得总计,因为subReport从我的主SQL查询中为不同的结果(每个为GROUP)调用多次.我想把所有的结果加起来,但我得到了一个null价值.我尝试添加一个操作subReport作为一个新的returnValue并选择Sum作为操作,但这也产生了一个null.


   <variable name="itemCount" class="java.lang.Integer" resetType="None"/>
   <variable name="grandCount" 
      class="java.lang.Integer" 
      incrementType="Group" 
      incrementGroup="ITEM_BUNDLE">
      <variableExpression><![CDATA[$V{itemCount}]]></variableExpression>
   </variable>

... <returnValue subreportVariable="countItems" toVariable="itemCount"/>

jasper-reports

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

如何将JasperReport导出到包含多个工作表的Excel文件?

我们有一份报告称客户希望将其导出为具有多个工作表的Excel格式.本质上,这两个查询共享相同的参数,但其他一切都不同.

在jasper-reports中如何导出到包含多个工作表的excel文件(理想情况下来自不同的数据源)?

excel export jasper-reports

17
推荐指数
2
解决办法
3万
查看次数

寻找JasperReports的替代品

前一天,我的老板问我,他想从网络应用程序中获取PDF格式的发票.鉴于每个人都使用JasperReports和iReport进行设计,我试过了.我的Web应用程序基于Java + Hibernate和Spring.起初Jasper看起来很好,而iReport也是如此.无论如何,我被两件事所阻止:

  • iReport是我生命中见过的最慢的东西.
  • 更严重的是,我确定某些类具有一些类层次结构,并且在Jasper中处理它非常复杂.我办公室里的每个人都使用Jasper和SQL查询,这样它就是一个简单而方便的工具,但我花了一整天的时间来尝试将我的bean映射到报告和子报告以及很少的工作.

我见过DynamicJasper,但似乎我无法用它来设计报告.你怎么看?是否更容易使用替代品?

reporting report jasper-reports

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

从C#运行JasperServer报告

Jasper Reports是Crystal Reports的绝佳开源替代品.它非常适用于单页PDF页面,例如多页报告的字母和发票.然而,它不是非常友好的.NET,并且让C#/ Mono与JasperServer玩得很好并不富有成效.

有没有人从C#获得有关如何在JasperServer上运行报告的代码示例,并附加带有SOAP请求的XML数据集?它需要在Mono上运行,因此Microsoft.Web.Services2是不可能的.

我试图推出自己的肥皂请求.Jasper Server似乎接受了它,但我似乎无法得到任何响应,而不是服务器500错误.我没有附加一个MTOM附件.

var sb = new StringBuilder();

sb.AppendLine("<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">");
sb.AppendLine("<s:Body s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
sb.AppendLine("<q1:runReport xmlns:q1=\"http://axis2.ws.jasperserver.jaspersoft.com\">");

sb.AppendLine("<requestXmlString xsi:type=\"xsd:string\">");
sb.AppendLine("<request operationName=\"runReport\" locale=\"en\">");
sb.AppendLine("    <argument name=\"RUN_OUTPUT_FORMAT\">PDF</argument>");
sb.AppendFormat("    <resourceDescriptor name=\"\" wsType=\"\" uriString=\"{0}\" isNew=\"false\">", "/JourneyReport");
sb.AppendLine("      <label>null</label>");
sb.AppendLine("      <parameter name=\"testparam\">1</parameter>");
sb.AppendLine("    </resourceDescriptor>");
sb.AppendLine("  </request>");
sb.AppendLine("</requestXmlString>");
sb.AppendLine("</q1:runReport>");
sb.AppendLine("</s:Body></s:Envelope>");


var webRequest = (HttpWebRequest)WebRequest.Create("http://localhost:8080/jasperserver/services/repository");
webRequest.Credentials = new NetworkCredential("jasperadmin","jasperadmin");
webRequest.PreAuthenticate = true;

webRequest.Headers.Add("SOAPAction","");

//Set HttpWebRequest properties
byte[]  bytes = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
webRequest.Method = "POST";
webRequest.ContentLength = bytes.Length;
webRequest.ContentType = "text/xml; encoding='utf-8'";

//Get Stream object 
var …
Run Code Online (Sandbox Code Playgroud)

c# mono soap jasper-reports jasperserver

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

如何将多个jrxml jasper报告整理为单个pdf输出文件

我必须使用五种不同的SQL查询来准备报告.每个查询都会给出一个报告表.

所以我写了5个jrxml文件,每个文件对应一个上面的查询,带有自己的标题,标题设置,页脚,页面编号等.

现在,我能够将上述每个jrxmls编译,打印和导出为5个不同的pdf.

但是,客户希望将所有报告整理成一个单独的pdf.那是在最后的pdf中,前四页将是报告一,接下来五页报告两页,然后报告三页,依此类推.

1)如何实现这一目标?

2)每个报告的页码为1/4,2/4,3/4等.其中第二部分即完整的页码用评估时间作为报告进行评估.因此,当我将单个pdf(如果可能)整理所有报告时,是否也可以将页面重新编号为最终pdf?

根据下面的答案,我在我的java类中做了以下工作,它的工作原理如下:

 try
            {
            JasperReport jreport1 = JasperCompileManager.compileReport(input1);
            JasperPrint jprint1 = JasperFillManager.fillReport(jreport1, new HashMap(), new JREmptyDataSource());
            //JasperExportManager.exportReportToPdfFile(jprint, "/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytest.pdf");

            JasperReport jreport2 = JasperCompileManager.compileReport(input2);
            JasperPrint jprint2 = JasperFillManager.fillReport(jreport2, new HashMap(), new JREmptyDataSource());

            JasperReport jreport3 = JasperCompileManager.compileReport(input3);
            JasperPrint jprint3 = JasperFillManager.fillReport(jreport3, new HashMap(), new JREmptyDataSource());

            List<JasperPrint> jprintlist = new ArrayList<JasperPrint>();

            jprintlist.add(jprint1);
            jprintlist.add(jprint2);
            jprintlist.add(jprint3);

            JRExporter exporter = new JRPdfExporter();
            exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, jprintlist);

            OutputStream output = new FileOutputStream(new File("/home/ashutosh/Desktop/desktop/nikunj/JasperTestApp/output/mytestbatch.pdf"));

            exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output);
            exporter.exportReport();

            }catch(Exception e)
            {
                e.printStackTrace();
            }
Run Code Online (Sandbox Code Playgroud)

上图:input1,input2,input3是输入jrxmls的字符串路径

我的JRXML文件只打印三条消息:Hello World 1,Hello …

java jasper-reports

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

使用iReport创建pdf时使用自定义字体

iReport版本:3.7.1

我以两种方式解决了这个问题.

我的第一种方法

我正在创建一个pdf页面,iReport我有一个字段(从数据库)设置为字体Gujarati-Salarl(印度的区域语言的字体).

此字体在字体列表中可用iReport.当我点击预览时,我得到所需的输出,字段为所需的字体样式.

这里的一切都很好.

pdf生成的文件仍包含相同的英文原始字体.

无论我是从应用程序调用报告还是从JAVA文件调用报告,结果都是一样的.

经过一番研究,我发现了这个,第二种方法

JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "C:\\Gujrati-Saral-1.ttf");
Run Code Online (Sandbox Code Playgroud)

这设置了所提供字体pdfttf字体,但现在整个版本pdf都是Guarati-saral字体,这不是我想要的.

有没有办法专门将此字体应用于该特定字段?

要么

当通过第二种方法进行时,有没有办法不将字体Guarati-saral应用于除所需字段之外的所有其他字段?

java pdf jasper-reports itext ireport

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

如何在Jaspersoft iReport Designer 4.7中添加第二页

您好,我对使用Jaspersoft iReport Designer完全不熟悉.我想要一份有两页的报告.我使用的版本是4.7.0.我已经有一个页面上有相关信息,但我不知道如何添加第二页.任何帮助将不胜感激.感谢您的时间.

jasper-reports

17
推荐指数
2
解决办法
4万
查看次数

JasperReports fillReport太慢且耗费资源

我发现从Java应用程序填充报告时,JasperReports真的很.程序挂起在这一行:

print = JasperFillManager.fillReport(report, parameters, xmlDataSource);
Run Code Online (Sandbox Code Playgroud)

它通常在那里停留3分钟,消耗高达300Mb的RAM和50%的CPU.

  • report 是一个使用3个子报表的已编译(.jasper)报表.
  • 数据源是一个非常大的XML文件(大约100k行,1.5Mb)
  • 该机器是3Ghz双核,带有4Gb RAM

那么,如何提高报表填写性能呢?

java xml performance jasper-reports

17
推荐指数
2
解决办法
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
查看次数

如何在文本字段中为某些单词加粗?

我要在报告中写论文.我只想在我的诗歌中加入一些文字.我把<b></b>标签放在文本中,但它不起作用.

我想要的一个例子是"我的名字是杰森,我的姓是迈克尔 ".有人知道吗?

jasper-reports ireport

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