我必须根据条件显示子报告,有时我需要显示"分支地址"或"客户地址".我创建了这些作为子报告.如何根据某些条件隐藏/显示?
提前致谢.
在SSRS中,我创建了两个表,父表和子报表.两个报告都正确地检索了信息,但是,我希望找出是否有办法格式化报告,以免浪费空间.
我的问题是这个.主报告有10列返回的信息.子报表有4列.我希望子报表显示在第二列中主报表数据行的下方.无论如何都要告诉报告扩展子报告而不扩大放置它的列.
这是我的设计(例子不是完整的结构)
<MainHeader1><MainHeader2><MainHeader3><MainHeader4><MainHeader5>
<MainData1 ><MainData2 ><MainData3 ><MainData4 ><MainData5 >
<Blank ><Subreport ><Blank ><Blank ><Blank >
Run Code Online (Sandbox Code Playgroud)
当我预览报告时,这就是我所看到的
<MainHeader1><MainHeader2 ><MainHeader3><MainHeader4><MainHeader5>
<MainData1 ><MainData2 ><MainData3 ><MainData4 ><MainData5 >
<Blank ><Subreport ><Blank ><Blank ><Blank >
Run Code Online (Sandbox Code Playgroud)
我想看到的是这个
<MainHeader1><MainHeader2><MainHeader3><MainHeader4><MainHeader5>
<MainData1 ><MainData2 ><MainData3 ><MainData4 ><MainData5 >
<Blank ><Subreport ><Blank >
Run Code Online (Sandbox Code Playgroud)
我不确定这是否有意义,但任何帮助将不胜感激.
我想简单地将一个值从子报告返回到主报告,但总是null
在执行报告时显示。使用 iReport 5.1.0。
<?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="report4" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ce028d85-f7e8-4abd-ad6b-e3b2ba04d14e">
<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["C:\\Users\\DellXFR\\"]]></defaultValueExpression>
</parameter>
<variable name="z" class="java.lang.Integer" calculation="System">
<variableExpression><![CDATA[8]]></variableExpression>
</variable>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch"/>
</title>
<detail>
<band height="125" splitType="Stretch">
<subreport>
<reportElement uuid="0c501730-d98a-4982-9953-2939f127ad9e" x="40" y="10" width="200" height="100"/>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<returnValue subreportVariable="x" toVariable="z"/>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "report4_subreport1.jasper"]]></subreportExpression>
</subreport>
<textField evaluationTime="Band">
<reportElement uuid="9020a8d9-5799-4907-b8a3-704f41ffdcc0" x="399" y="73" width="100" …
Run Code Online (Sandbox Code Playgroud) 我尝试使用JasperSoft Studio使用子报表,但出现以下异常。尽管它在那里,但它找不到子报表文件。
net.sf.jasperreports.engine.JRException:Resource not found at: D:\\JASPERREPORTS\\MyReports
Run Code Online (Sandbox Code Playgroud)
下面是主报表的配置
net.sf.jasperreports.engine.JRException:Resource not found at: D:\\JASPERREPORTS\\MyReports
Run Code Online (Sandbox Code Playgroud) 我可以使用此处的信息将包含多个子报表的报表导出到 Excel,并将每个子报表放在单独的选项卡/工作表上(将每个子报表放置在 Rectangle 控件中并将其 PageBreak 属性设置为“Start”)。
我希望设置矩形的PageName属性会将工作表名称设置为我在那里指定的名称,但没有 - 它们只是“ Sheet 2 ”、“ Sheet 3 ”等。
那么,如何为工作表名称分配特定值,以便在将 SSRS 报表及其子报表导出到 Excel 时使用这些值?
尝试汉诺威拳头的建议,我设置了矩形的 PageName 属性:
...但该文件仍然是使用通用工作表名称创建的:
我在空白子报告上看到了很多问题,但没有一个提供我需要的信息。我有一份主报告:
<?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="sample_report" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" 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="reportTitle" class="java.lang.String"/>
<parameter name="reportSubTitle" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="65" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="555" height="20"/>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$P{reportTitle}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="434" y="40" width="80" height="20"/>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement x="514" y="40" width="40" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="20" …
Run Code Online (Sandbox Code Playgroud) 我在JasperReports子报表中遇到了以下问题,过去几天我一直试图解决这个问题,但没有成功.下面是我正在尝试做的事情的图像.
我的一个报告中有一个子报告相对简单.它有一个带有单个文本字段(图像中标记为棕色)的标题带,用于子报表标题和带有两个项目的详细信息带:一个子报表(图像中标记为蓝色)打印我的订单项和一个文本字段(标记为红色)图像)打印与打印在其左侧的行项目相关联的注释.订单项子报表可以打印可变数量的订单项(由bean集合支持的数据源).我的客户要求是注释字段拉伸并显示输入的文本,但受行项目部分的高度限制(由图像上的箭头表示).我不知何故需要阻止注释超出行项目并使它们具有相同的高度(图像中应该没有绿色框).
有没有人有任何提示如何在JasperReports中实现(并且可以完全实现)?
ps我们目前正在使用JR 3.6版编译报告
我有以下问题:在详细信息部分的主报告中,我有三个子报告.我将它们的" 位置类型 " 设置为" 浮动"和" 拉伸"类型为" 相对于波段高度"但结果不是预期的.该报告长达500页,只打印了第一个子报告的内容.可能有什么问题?
<?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="Relatorio_Ivan_Master" 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="96"/>
<parameter name="ID_FUNCIONARIO" class="java.lang.Integer">
<defaultValueExpression><![CDATA[1]]></defaultValueExpression>
</parameter>
<parameter name="DTA_INICIO" class="java.util.Date"/>
<parameter name="DTA_TERMINO" class="java.util.Date"/>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["/Users/marcosnatanpacheco/Desktop/"]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT idt_funcionario, nme_funcionario, dta_alocacao_local, dta_alocacao_recurso, dta_alocacao_servico FROM tb_funcionario AS t1
INNER JOIN ta_alocacao_local AS t2 ON t2.cod_funcionario = t1.idt_funcionario
INNER JOIN ta_alocacao_recurso AS t3 ON t3.cod_funcionario …
Run Code Online (Sandbox Code Playgroud) 我是JasperReports的新手,基本上我想把一个子报告放在mainreport中
问题是我将子报告放在Detail带中,所以当我查询具有多个数据的数据库时,当我将报告输出到pdf时,子报告将总是重复多次.我想要一个不会重复的报告,无论我连接的数据库中有多少数据
我已经搜索了互联网,解决方案是添加
new Boolean($V{REPORT_COUNT}.intValue()==1)
Run Code Online (Sandbox Code Playgroud)
在子报表的表达式属性的打印中,由于现在我的子报表只打印一次但在显示子报表后仍然留下一些空白页,这确实解决了我的问题的一部分
所以我认为它仍在重复,但由于我添加了表达式而不打印数据,人们说细节带的性质应该是这样工作的,我不应该把子报告放在细节乐队,但如果我把它放在其他乐队我得到这个错误:
Error filling print... Subreport overflowed on a band that does not support overflow.
Run Code Online (Sandbox Code Playgroud)
如果我有大量数据,可能会超过一页,那么上述错误就会发生.
如何删除那些空白页?如果我要求不把它放在一个详细的乐队中那么我该怎么办?或者有什么解决方案?
我在Jasper Reports中遇到了子报告.我正在使用Jasper Reports 5.0.1,我在子报表中设计了一个子报表:
main-report
- detailband 1 => outer subreport
outer subreport
- detailband 1 => inner subreport
- detailband 2 => summary info
Run Code Online (Sandbox Code Playgroud)
除非内部子报表的内容变得太大而无法放在一个页面上,否则一切正常.报告只是在第1页后结束,而不是在下一个细节中打印摘要信息,而不是添加分页符.
我对iReport中可以设置的所有选项感到有点困惑.我必须使用哪种分体式/拉伸型/位置型组合才能使其正常工作?