2012-03-22 18 views
7

Soy nuevo en iReport. Entonces quiero hacer un informe simple basado en datos.iReport: Obteniendo múltiples copias de la tabla detallada banda

Mi problema es cuando mis filas son menos que el tamaño de la banda de detalle toda la tabla se repite en detalle la banda, y no quiero volver a hacerlo. Si mis filas son aproximadamente 5, entonces la misma tabla se copia 4 veces en la banda de detalle, y no solo la tabla, sino todas y cada una de las cosas que pongo en detalle. Se repite hasta que lleguen los límites de la banda de detalles.

Así que estoy cometiendo un error, o tengo que establecer alguna propiedad de la banda de detalles en iReport?

ayúdame por favor amigos. Gracias por adelantado.

Este es el resultado generado:

Generated result

Aquí está mi código de 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 lineColor="#000000" lineWidth="1.0"/> 
     </box> 
    </style> 
    <style name="table 1_TH" backcolor="#F0F8FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 1_CH" backcolor="#BFE1FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 1_TD" backcolor="#FFFFFF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 2"> 
     <box> 
      <pen lineColor="#000000" lineWidth="1.0"/> 
     </box> 
    </style> 
    <style name="table 2_TH" backcolor="#F0F8FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 2_CH" backcolor="#BFE1FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 2_TD" backcolor="#FFFFFF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 3"> 
     <box> 
      <pen lineColor="#000000" lineWidth="1.0"/> 
     </box> 
    </style> 
    <style name="table 3_TH" backcolor="#F0F8FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 3_CH" backcolor="#BFE1FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 3_TD" backcolor="#FFFFFF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 4"> 
     <box> 
      <pen lineColor="#000000" lineWidth="1.0"/> 
     </box> 
    </style> 
    <style name="table 4_TH" backcolor="#F0F8FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 4_CH" backcolor="#BFE1FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 4_TD" backcolor="#FFFFFF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 5"> 
     <box> 
      <pen lineColor="#000000" lineWidth="1.0"/> 
     </box> 
    </style> 
    <style name="table 5_TH" backcolor="#F0F8FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 5_CH" backcolor="#BFE1FF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <style name="table 5_TD" backcolor="#FFFFFF" mode="Opaque"> 
     <box> 
      <pen lineColor="#000000" lineWidth="0.5"/> 
     </box> 
    </style> 
    <subDataset name="a"> 
     <parameter name="sem" class="java.lang.String"> 
      <defaultValueExpression> 
       <![CDATA[]]> 
      </defaultValueExpression> 
     </parameter> 
     <queryString> 
      <![CDATA[select final."M" as "ENROLLMENT",sem_batch.sem,sem_batch.batch,final."N" as "TTL_WKDY",final."O" as "PRESENT",round(((100*"O")/"N"),2) as "PERCENTAGE" from sem_batch, (select m."Std_id" as "M",l."Batch" as "L",l."Btch" as "N",m."Std" as "O" from (select count(b.batch_id) as "Btch",b.batch_id as "Batch" from batch_wkday b where b.batch_id like $P{sem} group by batch_id) l, (select count(a.std_id) as "Std",a.std_id as "Std_id",s.batch_id as "Batch" from attendance a,student_detail s where a.std_id=s.std_id and s.batch_id like $P{sem} group by a.std_id,s.batch_id) m where l."Batch"=m."Batch") final where final."L"=sem_batch.batch_id]]> 
     </queryString> 
     <field name="ENROLLMENT" class="java.math.BigDecimal"/> 
     <field name="SEM" class="java.math.BigDecimal"/> 
     <field name="BATCH" class="java.lang.String"/> 
     <field name="TTL_WKDY" class="java.math.BigDecimal"/> 
     <field name="PRESENT" class="java.math.BigDecimal"/> 
     <field name="PERCENTAGE" class="java.math.BigDecimal"/> 
     <group name="ENROLLMENT"> 
      <groupExpression> 
       <![CDATA[$F{ENROLLMENT}]]> 
      </groupExpression> 
     </group> 
    </subDataset> 
    <parameter name="SEM" class="java.lang.String"/> 
    <queryString> 
     <![CDATA[select * from sem_batch]]> 
    </queryString> 
    <field name="SEM" class="java.math.BigDecimal"/> 
    <field name="BATCH" class="java.lang.String"/> 
    <field name="BATCH_ID" class="java.lang.String"/> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <title> 
     <band splitType="Stretch" height="69"> 
      <staticText> 
       <reportElement height="53" width="421" y="0" x="68"/> 
       <textElement markup="none" textAlignment="Center"> 
        <font size="22"/> 
       </textElement> 
       <text> 
        <![CDATA[ATTENDANCE - CLASS ]]> 
       </text> 
      </staticText> 
     </band> 
    </title> 
    <pageHeader> 
     <band splitType="Stretch"/> 
    </pageHeader> 
    <columnHeader> 
     <band splitType="Stretch" height="61"> 
      <staticText> 
       <reportElement height="20" width="53" y="0" x="0"/> 
       <textElement> 
        <font size="12"/> 
       </textElement> 
       <text> 
        <![CDATA[SEM]]> 
       </text> 
      </staticText> 
      <staticText> 
       <reportElement height="20" width="53" y="20" x="0"/> 
       <textElement> 
        <font size="12"/> 
       </textElement> 
       <text> 
        <![CDATA[DATE]]> 
       </text> 
      </staticText> 
      <staticText> 
       <reportElement height="20" width="10" y="0" x="58"/> 
       <textElement/> 
       <text> 
        <![CDATA[:]]> 
       </text> 
      </staticText> 
      <staticText> 
       <reportElement height="20" width="10" y="20" x="58"/> 
       <textElement/> 
       <text> 
        <![CDATA[:]]> 
       </text> 
      </staticText> 
      <textField pattern="dd/MM/yyyy"> 
       <reportElement height="20" width="100" y="20" x="68"/> 
       <textElement/> 
       <textFieldExpression> 
        <![CDATA[new java.util.Date()]]> 
       </textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement height="20" width="100" y="0" x="68"/> 
       <textElement/> 
       <textFieldExpression> 
        <![CDATA[$P{SEM}]]> 
       </textFieldExpression> 
      </textField> 
     </band> 
    </columnHeader> 
    <detail> 
     <band splitType="Stretch" height="125"> 
      <componentElement> 
       <reportElement height="50" width="360" y="0" x="35" style="table 5" key="table 5"/> 
       <jr:table 
         xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" 
         xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components"> 
        <datasetRun subDataset="a"> 
         <datasetParameter name="sem"> 
          <datasetParameterExpression> 
           <![CDATA[$P{SEM}+'%']]> 
          </datasetParameterExpression> 
         </datasetParameter> 
         <connectionExpression> 
          <![CDATA[$P{REPORT_CONNECTION}]]> 
         </connectionExpression> 
        </datasetRun> 
        <jr:column width="118"> 
         <jr:columnHeader height="23" style="table 5_CH" rowSpan="1"> 
          <staticText> 
           <reportElement height="20" width="118" y="0" x="0"/> 
           <textElement textAlignment="Center"> 
            <font size="14" isBold="false"/> 
           </textElement> 
           <text> 
            <![CDATA[ENROLLMENT]]> 
           </text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell height="20" style="table 5_TD" rowSpan="1"> 
          <textField> 
           <reportElement height="20" width="118" y="0" x="0"/> 
           <textElement textAlignment="Center"> 
            <font size="10" isBold="false"/> 
           </textElement> 
           <textFieldExpression> 
            <![CDATA[$F{ENROLLMENT}]]> 
           </textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="90"> 
         <jr:columnHeader height="23" style="table 5_CH" rowSpan="1"> 
          <staticText> 
           <reportElement height="20" width="90" y="0" x="0"/> 
           <textElement textAlignment="Center"> 
            <font size="14"/> 
           </textElement> 
           <text> 
            <![CDATA[SEM]]> 
           </text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell height="20" style="table 5_TD" rowSpan="1"> 
          <textField> 
           <reportElement height="20" width="90" y="0" x="0"/> 
           <textElement textAlignment="Center"> 
            <font size="10"/> 
           </textElement> 
           <textFieldExpression> 
            <![CDATA[$F{SEM}]]> 
           </textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="90"> 
         <jr:columnHeader height="23" style="table 5_CH" rowSpan="1"> 
          <staticText> 
           <reportElement height="20" width="90" y="0" x="0"/> 
           <textElement textAlignment="Center"> 
            <font size="14"/> 
           </textElement> 
           <text> 
            <![CDATA[BATCH]]> 
           </text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell height="20" style="table 5_TD" rowSpan="1"> 
          <textField> 
           <reportElement height="20" width="90" y="0" x="0"/> 
           <textElement textAlignment="Center"/> 
           <textFieldExpression> 
            <![CDATA[$F{BATCH}]]> 
           </textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="90"> 
         <jr:columnHeader height="23" style="table 5_CH" rowSpan="1"> 
          <staticText> 
           <reportElement height="20" width="90" y="0" x="0"/> 
           <textElement textAlignment="Center"> 
            <font size="14"/> 
           </textElement> 
           <text> 
            <![CDATA[PRESENT]]> 
           </text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell height="20" style="table 5_TD" rowSpan="1"> 
          <textField> 
           <reportElement height="20" width="90" y="0" x="0"/> 
           <textElement textAlignment="Center"/> 
           <textFieldExpression> 
            <![CDATA[$F{PRESENT}]]> 
           </textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
        <jr:column width="90"> 
         <jr:columnHeader height="23" style="table 5_CH" rowSpan="1"> 
          <staticText> 
           <reportElement height="20" width="90" y="0" x="0"/> 
           <textElement textAlignment="Center"> 
            <font size="14"/> 
           </textElement> 
           <text> 
            <![CDATA[PERCENTAGE]]> 
           </text> 
          </staticText> 
         </jr:columnHeader> 
         <jr:detailCell height="20" style="table 5_TD" rowSpan="1"> 
          <textField> 
           <reportElement height="20" width="90" y="0" x="0"/> 
           <textElement textAlignment="Center"/> 
           <textFieldExpression> 
            <![CDATA[$F{PERCENTAGE}]]> 
           </textFieldExpression> 
          </textField> 
         </jr:detailCell> 
        </jr:column> 
       </jr:table> 
      </componentElement> 
     </band> 
    </detail> 
    <columnFooter> 
     <band splitType="Stretch"/> 
    </columnFooter> 
    <pageFooter> 
     <band splitType="Stretch" height="54"> 
      <textField> 
       <reportElement height="20" width="100" y="16" x="227"/> 
       <textElement textAlignment="Center"/> 
       <textFieldExpression> 
        <![CDATA[$V{PAGE_NUMBER}]]> 
       </textFieldExpression> 
      </textField> 
     </band> 
    </pageFooter> 
    <summary> 
     <band splitType="Stretch" height="42"/> 
    </summary> 
</jasperReport> 
+0

Hola, Bienvenido a SO. ¿Puede explicar más sobre cómo diseña su formato de informe? Una imagen o un archivo JRXML con alguna explicación sería útil. –

+0

sí, claro ... aquí adjunto un archivo para que pueda ver el archivo jrxml y también el archivo pdf ... –

+1

No puedo leer su archivo jrxml, no está disponible para priview. Puedes pegarlo directamente en tu publicación con bloque de código. –

Respuesta

9

debe poner el componente table en la banda Title (o en la Summary banda, para ejemplo). No en la banda Detail.

+0

Hola, finalmente tengo la solución completa. –

+0

Cuando lo hago así, tengo un gran espacio en la vista previa de mi informe. ¿Qué puedo hacer para prevenir esto? –

0

hey tengo la solución a mi problema. Si en la consulta principal se devuelven más de una fila, tales cosas sucederán. Intente dar una consulta que no devuelva más de una fila. Me gusta "Seleccionar 1 de doble". Esta solución resolvió mi problema.

+0

donde escribir esto "seleccionar 1 de doble"? –

+0

Escriba esta consulta en la consulta del informe principal. Puede encontrar ese editor de consultas después de hacer clic derecho en el informe y luego ir a editar la opción de consulta. –

8

Seleccione Propiedades de la tabla y añadir printWhenExpression sobre la mesa para $ V {} == 1 REPORT_COUNT ahora para evitar valores de la tabla repetation en su iReport.

3

En función de la respuesta anterior, pude configurar la tabla detallada y las siguientes propiedades para evitar generar páginas duplicadas o vacías al final del documento.

banda de detalle -> establece la impresión Cuando Expresión con valor de $ {V} == 1 REPORT_COUNT Elemento Tabla -> Establecer el impresión Cuando Expresión $ V {} == 1 REPORT_COUNT

Cuestiones relacionadas