我的要求绑定我在一个"详细信息"带中有多行.
现在我在最左边的列中有一个静态文本字段(以彩色突出显示),旁边有三个文本数据字段.
在我的报告中我想要的是,当三个波段中的任何一个中的数据溢出时,静态文本带以及三个波段应该在高度上拉伸,下一行"正确"显示在拉伸行的下方."正确"是指下一行元素的"顶部"值应相同并显示在同一"行"中.
我尝试将"Stretch with overflow"标志设置为"true",将"Position"设置为"float",但问题是下一行数据未正确定位.
我有一个带有glassfish 3.1 + JSF的EJB站点,用于jasperreport 4.0.1.该网站在流式传输pdf上没有问题,但是在使用runReportToPdfStream打印PDF时它产品为空白PDF,下面是代码片段:
EJB
public class BookEJB {
public void printReport() throws ClassNotFoundException, IOException, JRException {
Map parameterMap = new HashMap();
FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
InputStream reportStream = ctx.getExternalContext().getResourceAsStream("/reports/test.jasper");
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.flush();
response.setContentType("application/pdf");
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parameterMap);
servletOutputStream.flush();
servletOutputStream.close();
ctx.responseComplete();
}}
Run Code Online (Sandbox Code Playgroud)
test.jrxml - 没有SQL连接的简单报告
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test" pageWidth="800" pageHeight="1200" columnWidth="555" leftMargin="25" rightMargin="25" topMargin="30" bottomMargin="30">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
<![CDATA[]]>
</queryString> …Run Code Online (Sandbox Code Playgroud) 两者都是可视化设计报告的工具,两者都来自同一供应商.
为什么Jaspersoft推出两种类似的技术?
我需要在subReport中计算我正在计算的项目的总数.为此,我认为我需要将该变量的值添加到每个迭代的另一个变量中,或者用该值"递增"它.为每个组调用subReport,我得到该组的总数.我需要添加变量值,而不是数据库列/字段.
我收到一个整数returnValue从subReport,这本身就是在子报告的行数.我希望获得总计,因为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"/>
前一天,我的老板问我,他想从网络应用程序中获取PDF格式的发票.鉴于每个人都使用JasperReports和iReport进行设计,我试过了.我的Web应用程序基于Java + Hibernate和Spring.起初Jasper看起来很好,而iReport也是如此.无论如何,我被两件事所阻止:
我见过DynamicJasper,但似乎我无法用它来设计报告.你怎么看?是否更容易使用替代品?
我必须使用五种不同的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 …
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)
这设置了所提供字体pdf的ttf字体,但现在整个版本pdf都是Guarati-saral字体,这不是我想要的.
有没有办法专门将此字体应用于该特定字段?
要么
当通过第二种方法进行时,有没有办法不将字体Guarati-saral应用于除所需字段之外的所有其他字段?
您好,我对使用Jaspersoft iReport Designer完全不熟悉.我想要一份有两页的报告.我使用的版本是4.7.0.我已经有一个页面上有相关信息,但我不知道如何添加第二页.任何帮助将不胜感激.感谢您的时间.
我丢失了所有.jrxml文件,但我有.jasper文件.我可以反编译开发文件文件的.jrxml文件?如果是,那对我来说将是一个很大的帮助.
我最近遇到了一个问题,我的JasperReports报告的子报告中出现了以下错误:
子报告溢出在不支持溢出的波段上.
怎么了?