2012-04-12 4 views
1

Я новичок в отчетах Jasper. У меня есть отчет с 2 группами. В зависимости от запроса печатается несколько страниц.Отчеты Jasper: как распечатать несколько страниц на одной странице

первая группа Высота - 95 очков и вторая группа Высота - 144 Очки

Я хочу, чтобы эти несколько страниц, которые будут напечатаны на одной странице (я хочу, чтобы включить 5 страниц в странице). Высота каждой страницы составляет 239 очков. (Даже если содержание страницы меньше 239 баллов, я хочу оставить оставшуюся часть пустой и начать следующую страницу после 239 баллов). Я попытался создать отчет и включил указанный выше отчет в качестве суб-отчета и установил высоту основного отчета как 1195 (239 * 5) баллов. Тем не менее, они печатаются на разных страницах.

Результатом экспорта является: Report looks like this when it is printed

Основной дизайн отчет: Main Report - This is including 2 subreports

Первый дизайн подотчет является: First SubReport

Второй дизайн подотчет это: Second SubReport
Пожалуйста, помогите мне в этом.

+0

Можете ли вы опубликовать скриншот вас r в iReport? –

+0

@Alex, Это не позволяло мне добавлять изображения. Пожалуйста, найдите ссылку для создания отчета _http: //www.flickr.com/photos/[email protected] – charishb4u

ответ

0

Я сделал тест, основанный на ваших спецификациях, и, похоже, он работает нормально. Я могу дать вам пару указателей.

  1. В вашем проекте основного отчета высота элемента вспомогательного отчета не имеет значения, если она равна базовой группе. Если элемент вспомогательного отчета будет короче, разница будет появляться в результате.
  2. Высота страницы под-отчета не имеет значения, только общая высота полос.
  3. Убедитесь, что опция «Начать новую страницу» не была выбрана в созданных вами группах. Это наиболее вероятная проблема.

Если верхняя часть 3 не устранила вашу проблему, просмотрите образец ниже и сравните различия.

MainReport:

<?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="MainReport1" language="groovy" pageWidth="595" pageHeight="1195" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="0" bottomMargin="0"> 
    <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\\Bizz\\Documents\\JasperReports\\"]]></defaultValueExpression> 
    </parameter> 
    <queryString> 
     <![CDATA[SELECT 
    PRODUCT."ID" AS PRODUCT_ID, 
    PRODUCT."NAME" AS PRODUCT_NAME, 
    PRODUCT."COST" AS PRODUCT_COST 
FROM 
    "PUBLIC"."PRODUCT" PRODUCT]]> 
    </queryString> 
    <field name="PRODUCT_ID" class="java.lang.Integer"/> 
    <field name="PRODUCT_NAME" class="java.lang.String"/> 
    <field name="PRODUCT_COST" class="java.math.BigDecimal"/> 
    <group name="Group1"> 
     <groupExpression><![CDATA[$F{PRODUCT_ID}]]></groupExpression> 
     <groupHeader> 
      <band height="50"> 
       <subreport> 
        <reportElement x="0" y="0" width="200" height="50"/> 
        <subreportParameter name="ProductID"> 
         <subreportParameterExpression><![CDATA[$F{PRODUCT_ID}]]></subreportParameterExpression> 
        </subreportParameter> 
        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
        <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "MainReport1_subreport2.jasper"]]></subreportExpression> 
       </subreport> 
      </band> 
     </groupHeader> 
    </group> 
    <group name="Group2"> 
     <groupExpression><![CDATA["2"]]></groupExpression> 
     <groupHeader> 
      <band height="50"> 
       <subreport> 
        <reportElement x="0" y="0" width="200" height="50"/> 
        <subreportParameter name="ProductID"> 
         <subreportParameterExpression><![CDATA[$F{PRODUCT_ID}]]></subreportParameterExpression> 
        </subreportParameter> 
        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
        <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "MainReport1_subreport1.jasper"]]></subreportExpression> 
       </subreport> 
      </band> 
     </groupHeader> 
    </group> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <title> 
     <band splitType="Stretch"/> 
    </title> 
    <pageHeader> 
     <band splitType="Stretch"/> 
    </pageHeader> 
    <columnHeader> 
     <band splitType="Stretch"/> 
    </columnHeader> 
    <detail> 
     <band splitType="Stretch"/> 
    </detail> 
    <columnFooter> 
     <band splitType="Stretch"/> 
    </columnFooter> 
    <pageFooter> 
     <band splitType="Stretch"/> 
    </pageFooter> 
    <summary> 
     <band splitType="Stretch"/> 
    </summary> 
</jasperReport> 

Subreport1:

<?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="MainReport1_subreport1" language="groovy" pageWidth="555" pageHeight="95" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <parameter name="ProductID" class="java.lang.Integer"/> 
    <queryString> 
     <![CDATA[SELECT 
    PRODUCT."ID" AS PRODUCT_ID, 
    PRODUCT."NAME" AS PRODUCT_NAME, 
    PRODUCT."COST" AS PRODUCT_COST 
FROM 
    "PUBLIC"."PRODUCT" PRODUCT 
where 
    product_id = $P{ProductID}]]> 
    </queryString> 
    <field name="PRODUCT_ID" class="java.lang.Integer"/> 
    <field name="PRODUCT_NAME" class="java.lang.String"/> 
    <field name="PRODUCT_COST" class="java.math.BigDecimal"/> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <title> 
     <band splitType="Stretch"/> 
    </title> 
    <pageHeader> 
     <band splitType="Stretch"/> 
    </pageHeader> 
    <columnHeader> 
     <band splitType="Stretch"/> 
    </columnHeader> 
    <detail> 
     <band height="95" splitType="Stretch"> 
      <staticText> 
       <reportElement x="0" y="0" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[PRODUCT_ID]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="100" y="0" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{PRODUCT_ID}]]></textFieldExpression> 
      </textField> 
      <staticText> 
       <reportElement x="0" y="20" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[PRODUCT_NAME]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="100" y="20" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{PRODUCT_NAME}]]></textFieldExpression> 
      </textField> 
      <staticText> 
       <reportElement x="0" y="40" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[PRODUCT_COST]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="100" y="40" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{PRODUCT_COST}]]></textFieldExpression> 
      </textField> 
      <componentElement> 
       <reportElement x="0" y="60" width="200" height="35"/> 
       <jr:barbecue xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" type="3of9" drawText="false" checksumRequired="false"> 
        <jr:codeExpression><![CDATA[$F{PRODUCT_ID}]]></jr:codeExpression> 
       </jr:barbecue> 
      </componentElement> 
     </band> 
    </detail> 
    <columnFooter> 
     <band splitType="Stretch"/> 
    </columnFooter> 
    <pageFooter> 
     <band splitType="Stretch"/> 
    </pageFooter> 
    <summary> 
     <band splitType="Stretch"/> 
    </summary> 
</jasperReport> 

Subreport2:

<?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="MainReport1_subreport2" language="groovy" pageWidth="555" pageHeight="888" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <parameter name="ProductID" class="java.lang.Integer"/> 
    <queryString> 
     <![CDATA[SELECT 
    PRODUCT."ID" AS PRODUCT_ID, 
    PRODUCT."NAME" AS PRODUCT_NAME, 
    PRODUCT."COST" AS PRODUCT_COST 
FROM 
    "PUBLIC"."PRODUCT" PRODUCT 
where 
    product_id = $P{ProductID}]]> 
    </queryString> 
    <field name="PRODUCT_ID" class="java.lang.Integer"/> 
    <field name="PRODUCT_NAME" class="java.lang.String"/> 
    <field name="PRODUCT_COST" class="java.math.BigDecimal"/> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <title> 
     <band splitType="Stretch"/> 
    </title> 
    <pageHeader> 
     <band splitType="Stretch"/> 
    </pageHeader> 
    <columnHeader> 
     <band splitType="Stretch"/> 
    </columnHeader> 
    <detail> 
     <band height="144" splitType="Stretch"> 
      <staticText> 
       <reportElement x="0" y="0" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[PRODUCT_ID]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="100" y="0" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{PRODUCT_ID}]]></textFieldExpression> 
      </textField> 
      <staticText> 
       <reportElement x="0" y="20" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[PRODUCT_NAME]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="100" y="20" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{PRODUCT_NAME}]]></textFieldExpression> 
      </textField> 
      <staticText> 
       <reportElement x="0" y="40" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[PRODUCT_COST]]></text> 
      </staticText> 
      <textField> 
       <reportElement x="100" y="40" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{PRODUCT_COST}]]></textFieldExpression> 
      </textField> 
      <componentElement> 
       <reportElement x="0" y="60" width="302" height="84"/> 
       <jr:barbecue xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" type="3of9" drawText="false" checksumRequired="false"> 
        <jr:codeExpression><![CDATA[$F{PRODUCT_ID}]]></jr:codeExpression> 
       </jr:barbecue> 
      </componentElement> 
     </band> 
    </detail> 
    <columnFooter> 
     <band splitType="Stretch"/> 
    </columnFooter> 
    <pageFooter> 
     <band splitType="Stretch"/> 
    </pageFooter> 
    <summary> 
     <band splitType="Stretch"/> 
    </summary> 
</jasperReport> 
Смежные вопросы