我正在使用java和iReport(来自jasper)创建一个简单的报告程序,它应该用pdf创建一个报告,显示PC的IP地址,位置,此时是否空闲(由另一个系统处理),以及它目前所附的项目清单(也在其他地方管理).
我正在使用iReport这个问题,并创建了一个虚拟集合生成类,如下所示:
public class PCReports {
public static java.util.Collection PC_collection;
public static java.util.Collection generateCollection() {
PC_collection = new ArrayList<PCLineDTO>();
PCLineDTO line = new PCLineDTO();
line.setIP("192.168.1.1");
line.setLab("location");
line.setActive(true);
line.addProjectName("project1");
line.addProjectName("project2");
line.addProjectName("project3");
PC_collection.add(line);
line = new PCLineDTO();
line.setIp("192.168.1.2");
line.setLab("location2");
line.setActive(false);
line.addProjectName("project1");
line.addProjectName("project2");
PC_collection.add(line);
return PC_collection;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,实体类是:
public class PCLineDTO {
private String ip;
private String lab;
private Boolean active;
private ArrayList<String> projects;
}
Run Code Online (Sandbox Code Playgroud)
在一些互联网搜索之后,我找到了一种使用子报告做类似事情的方法.
问题是,我不知道如何打印作为dataSource传递给该子报表的字符串集合.
在我在Internet上找到的示例中,对于主集合中的每个项目,子报表都传递了一组对象 - 每个属性都有自己的getter方法 - 而不是像这里的情况那样的字符串集合.在这些情况下,他们通过我无法使用的iReport语法访问他们需要使用的值,例如:
$F{project}
Run Code Online (Sandbox Code Playgroud)
由于iReport在其接收的对象中查找包含的getProject方法,但在这种情况下,它是一个简单的String对象(没有getProject方法,因为它).
有人知道可以处理JSON数据的开源Jasper Reports DataSource实现吗?我想在一些自定义报告中使用RESTful API中的JSON数据.在我自己构建之前,我想我会检查是否已存在某些内容.
我想在iReport中获得总行数.目的是根据总行数打印标签.
我的格式是这样的(假设有10条记录):
This is page 1
No Name Add
1 ---- ---
2 ---- ---
3 ---- ---
4 ---- ---
5 ---- ---
cont...2
This is page 2
No Name Add
6 ---- ---
7 ---- ---
8 ---- ---
9 ---- ---
10 ---- ---
Run Code Online (Sandbox Code Playgroud)
如何在打印报告之前获取所有记录数?
我使用的是iReport 3.5.2?设计报告.我有一个子报告,我需要一个表.
为了构建表格,我绘制了行的水平线.但是我没有找到任何选项来使该行垂直,以便我可以制作列.
任何人都可以建议如何做到这一点.
大家好,我正在使用iReports生成其中一个报告并停留在一个地方.
情况是这样的:
我在主报表中使用了一个子报表,并且我希望在执行查询后将变量(浮点数)从子报表返回到主报表.而我只是将空值返回主报告我已经浪费了2天谷歌搜索和搜索但问题仍然存在..
下面是我的JRXMLS的虚拟代码(完全相同)和快照...
主要报告JRXML
<?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="anuj" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["/home/anuj/Reports/"]]></defaultValueExpression>
</parameter>
<queryString language="SQL">
<![CDATA[select * from "SensorType"]]>
</queryString>
<field name="SensorTypeId" class="java.lang.Integer"/>
<field name="SensorTypeName" class="java.lang.String"/>
<variable name="A" class="java.lang.Integer" resetType="None" calculation="System"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band splitType="Stretch"/>
</title>
<pageHeader>
<band splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band splitType="Stretch"/>
</columnHeader>
<detail>
<band height="23" splitType="Stretch">
<textField>
<reportElement x="71" y="3" width="100" …Run Code Online (Sandbox Code Playgroud) 我是新来的iReport.所以我想根据数据做一个简单的报告.
我的问题是当我的行少于细节带的大小时,整个表在细节带中重复,我不想再这样了.如果我的行大约是5,那么同一个表在细节带中被复制4次,而不仅仅是表格,而是每一件我放入细节带的东西.它会自行重复,直到细节带限制到来.
所以我犯了一些错误,或者我必须设置一些细节带属性iReport?
请帮帮我的朋友.提前致谢.
这是生成的结果:

这是我的jrxml代码:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport language="groovy" bottomMargin="20" topMargin="20" rightMargin="20" leftMargin="20" columnWidth="555"
whenNoDataType="AllSectionsNoDetail" pageHeight="842" pageWidth="595" name="test"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://jasperreports.sourceforge.net/jasperreports">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<style name="table">
<box>
<pen lineColor="#000000" lineWidth="1.0"/>
</box>
</style>
<style name="table_TH" backcolor="#F0F8FF" mode="Opaque">
<box>
<pen lineColor="#000000" lineWidth="0.5"/>
</box>
</style>
<style name="table_CH" backcolor="#BFE1FF" mode="Opaque">
<box>
<pen lineColor="#000000" lineWidth="0.5"/>
</box>
</style>
<style name="table_TD" backcolor="#FFFFFF" mode="Opaque">
<box>
<pen lineColor="#000000" lineWidth="0.5"/>
</box>
</style>
<style name="table 1">
<box>
<pen …Run Code Online (Sandbox Code Playgroud) 目前我正在使用iReport进行设计的第一份报告.在某些条件下,jasper陷入某种infinte循环/递归调用.贾斯珀的日志反复出现:
[...]
12-04-10 10:29:59,222 DEBUG s.engine.fill.JRVerticalFiller|Fill 1207280802: page footer
12-04-10 10:29:59,222 DEBUG ports.engine.fill.JRBaseFiller|Fill 1207280802: adding page 38849
12-04-10 10:29:59,222 DEBUG ts.engine.fill.JRFillSubreport|Fill 1207280802: resuming 849817670
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notifying to continue
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: waiting for fill result
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notified to continue
12-04-10 10:29:59,222 DEBUG ports.engine.fill.JRBaseFiller|Fill 849817670: suspeding subreport runner
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notifying on suspend
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: waiting to continue
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notified of …Run Code Online (Sandbox Code Playgroud) 我在我的mac上安装了iReport Designer版本3.7.2,4.5,4.7.1和5.6.0.自昨天升级到优胜美地以来,我无法启动任何一个.
在控制台中,我得到:
"10/18/14 11:30:32.754 AM com.apple.xpc.launchd [1] :( com.apple.xpc.launchd.oneshot.0x10000013.ireport [37460])服务退出时出现异常代码:2"
不知道怎么解决这个问题,我相信这很简单.
有没有办法在PDF中导出Jasper报告,指定的字段可以编辑?我正在使用iReport设计报告模板.
我使用ireport设计器设计了一个jasper报告,其中我在报告的标题中添加了徽标图像.此图像是从本地计算机上的硬编码路径添加的.我需要从我的项目类路径中添加徽标图像.为此,我在报告中为图像创建了一个参数,该参数由程序提供.
InputStream imgInputStream = this.getClass().getResourceAsStream("header.png");
HashMap<String, Object> parameters = new HashMap<String, Object>();
parameters.put("dateFrom", datum1);
parameters.put("dateTo", datum2);
parameters.put("logo", imgInputStream);
strQuery = "Select calldate,src,dst,duration,disposition,cdrcost from cdrcost where date(calldate) between '" + datum1 + "' and '" + datum2 + "'";
rs = conexiondb.Consulta(strQuery);
JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(rs);
//JasperPrint jasperPrint = JasperFillManager.fillReport(reportStream, parameters);
JasperRunManager.runReportToPdfStream(reportStream, fos, parameters, resultSetDataSource);
Run Code Online (Sandbox Code Playgroud)
以下是报告中的图片摘录:
<image>
<reportElement x="0" y="1" width="555" height="61"/>
<imageExpression><![CDATA[$P{logo}]]>
</imageExpression>
</image>
Run Code Online (Sandbox Code Playgroud)