2016-02-26 220 views
1

我有一个只有一个文本字段的子报表。该文本字段可以包含从服务检索到的约5000个字符。在子报表中,“Stretch with overflow”可以跨越多个页面吗?

我的目标是在父报告中显示此子报表。它应该从“Float”位置开始,我将它放置在多个页面上。

当我有这个报表在我父母的报告中,文本剪辑在报表文本字段的“溢出拉伸”设置为。 当我将“Stretch with overflow”设置为true时,文本字段在页面上显示为空白,但占用父级报告上的所需空间。

我曾尝试以下,但没有似乎工作:

1.在子报告:

  • 打印细节时溢出=真
  • 分体式=“拉伸“
  • Ignore pagination = true

2.主要报告:

  • 分体式= “拉伸”
  • 打印时详细溢出=报表对象
  • 打印在第一全频带=真上真正

尝试它,因为几天让我觉得它是不可能的在页面之间有一个溢出的文本字段。

请让我知道,如果它甚至可能有一个带有文本字段的子报告跨越多个页面。

回答

1

“它甚至可能有一个带有文本字段的子报表来跨越多个页面?”

是的,我在下方附上

主报告为例

<?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="stretchTest" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="BlankPage" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="6c8cebac-a7b5-4dc2-abe8-e36b0cb184ca"> 
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> 
     <defaultValueExpression><![CDATA["C:\\jdd\\projects\\StackTrace\\jasper\\"]]></defaultValueExpression> 
    </parameter> 
    <detail> 
     <band height="20" splitType="Stretch"> 
      <subreport> 
       <reportElement x="0" y="0" width="100" height="20" uuid="778b107f-288e-4f17-915d-fed6f83a2805"/> 
       <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(2)]]></dataSourceExpression> 
       <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "stretchTest_subreport.jasper"]]></subreportExpression> 
      </subreport> 
     </band> 
    </detail> 
</jasperReport> 

子报表

<?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="stretchTest_subreport" pageWidth="100" pageHeight="555" orientation="Landscape" columnWidth="100" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="f716e850-ab6f-4668-b3a1-afe4823b8abf"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <parameter name="veryLongTextThatNeedToBreak" class="java.lang.String" isForPrompting="false"> 
     <defaultValueExpression><![CDATA["I have a subreport with just one text field. This text field can have somewhere around 5000 characters retrieved from a service. My goal is to show this subreport on the parent report.(it should start from the Float position where I place it to multiple pages in a continuous manner). When I have this subreport in my parent report, the text clips when the Stretch with overflow of the text field in subreport is set to false. When I set Stretch with overflow to true, the text field appears blank on the pages but takes up the required space on the parent report. I have tried the following but nothing seem to work:1. In the sub report: Set the Print when detail overflow = true Set Split Type = Stretch Ignore pagination = true 2. Main report: Set Split Type = Stretch Set Print when detail overflow = true of subreport object Print in first whole band = true Trying it since few days has made me feel that it is impossible to have a overflowing text field across pages. Please let me know if its even possible to have a subreport with text field to span across multiple pages. Thanks in advance!!"]]></defaultValueExpression> 
    </parameter> 
    <detail> 
     <band height="20" splitType="Stretch"> 
      <textField isStretchWithOverflow="true"> 
       <reportElement x="0" y="0" width="100" height="20" uuid="4f14a231-dd62-465b-b10a-fa39f9c6a297"/> 
       <textFieldExpression><![CDATA[$P{veryLongTextThatNeedToBreak}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
</jasperReport> 

编译报表,设置为子报表并测试你自己正确的路径。

注意:我没有在reportElement上设置很多属性。

输出

output

+0

只是写这一点,如果它可以帮助任何人的未来。我为子报表中的子报表和元素设置了太多属性。要设置的属性的确切集合如下: 父报告: 1.波段拆分类型=拉伸。 2.子报表元素拉伸类型=无拉伸 子报表: 1.对于文本字段,使用overflow = true的Stretch。 2.拉伸类型=没有拉伸 3.波段,分割类型=拉伸 – dnaik

+0

是的,我正在想象这个,你陷入了一片混乱,当你试图离开时你陷入了更多,为什么我发布了一个简单的例子试图打破你的怀疑......:)感谢您接受.. –

相关问题