2011-11-22 57 views
5

He escrito la especificación de jaspe para generar PDF a partir de una fuente de datos de tabla. Esto está funcionando bien. Ahora tengo que agregar algunas columnas más y el informe ahora no se ve bien. Ahora estoy pensando si puedo apretar en los nombres de columna en varias líneas como la siguienteCómo tener un nombre de columna que abarca varias líneas en la generación de informes de jaspe

Mantenimiento Fecha

a

Mantenimiento

Fecha

¿Es posible lograr esto en Jasper?

Saludos, Paul

+0

¿Te refieres al uso de la API de JasperReports? –

+0

Sin uso de API. He escrito jrxml y uso el origen de datos de la tabla para generar el PDF. – paulhudson

+0

Puede ver mi fragmento jrxml en mi publicación –

Respuesta

3

¿Están los nombres de sus columnas codificados? ¿Solo necesita cambiar "Fecha de mantenimiento" a "Mantenimiento \ nFecha" para obtener un retorno de carro?

Nota: no puede agregar un carácter "\ n" a un elemento de texto estático. Necesita usar un campo de texto. Afortunadamente, puede hacer clic derecho en un elemento de texto estático en iReport y transformarlo en un campo de texto.

Supongo que podría resolverlo. De lo contrario, es posible que deba aclarar la pregunta.

+0

Sí, los nombres de las columnas de mi tabla están codificados en el archivo jrxml. Aquí está el mismo código que tengo – paulhudson

+0

Perfecto. En ese caso, agregar "\ n" debería ser lo que necesita. – mdahlman

+0

No estoy seguro de cómo formatear el siguiente fragmento xml \t \t \t \t \t \t \t \t paulhudson

1

Si está utilizando JasperReports API puede utilizar este ejemplo:

//Detail 
    band = new JRDesignBand(); 
    band.setHeight(40); 

    JRDesignStaticText staticText = new JRDesignStaticText(); 
    staticText.setX(0); 
    staticText.setY(0); 
    staticText.setWidth(60); 
    staticText.setHeight(20); 
    staticText.setMode(ModeEnum.OPAQUE); 
    staticText.setHorizontalAlignment(HorizontalAlignEnum.LEFT); 
    staticText.setStyle(boldStyle); 
    staticText.setText("ID: "); 
    staticText.getLineBox().getLeftPen().setLineWidth(1); 
    staticText.getLineBox().getTopPen().setLineWidth(1); 
    staticText.getLineBox().setLeftPadding(10); 
    band.addElement(staticText); 

    textField = new JRDesignTextField(); 
    textField.setX(60); 
    textField.setY(0); 
    textField.setWidth(200); 
    textField.setHeight(20); 
    textField.setHorizontalAlignment(HorizontalAlignEnum.LEFT); 
    textField.setStyle(normalStyle); 
    expression = new JRDesignExpression(); 
    expression.setValueClass(java.lang.Integer.class); 
    expression.setText("$F{Id}"); 
    textField.setExpression(expression); 
    textField.getLineBox().getTopPen().setLineWidth(1); 
    textField.getLineBox().getRightPen().setLineWidth(1); 
    textField.getLineBox().setLeftPadding(10); 
    band.addElement(textField); 

    staticText = new JRDesignStaticText(); 
    staticText.setX(0); 
    staticText.setY(20); 
    staticText.setWidth(60); 
    staticText.setHeight(20); 
    staticText.setMode(ModeEnum.OPAQUE); 
    staticText.setHorizontalAlignment(HorizontalAlignEnum.LEFT); 
    staticText.setStyle(boldStyle); 
    staticText.setText("Name: "); 
    staticText.getLineBox().getLeftPen().setLineWidth(1); 
    staticText.getLineBox().getBottomPen().setLineWidth(1); 
    staticText.getLineBox().setLeftPadding(10); 
    band.addElement(staticText); 


    textField = new JRDesignTextField(); 
    textField.setStretchWithOverflow(true); 
    textField.setX(60); 
    textField.setY(20); 
    textField.setWidth(200); 
    textField.setHeight(20); 
    textField.setPositionType(PositionTypeEnum.FLOAT); 
    textField.setStyle(normalStyle); 
    expression = new JRDesignExpression(); 
    expression.setValueClass(java.lang.String.class); 
    expression.setText("$F{FirstName} + \" \" + $F{LastName}"); 
    textField.setExpression(expression); 
    textField.getLineBox().getRightPen().setLineWidth(1); 
    textField.getLineBox().getBottomPen().setLineWidth(1); 
    textField.getLineBox().setLeftPadding(10); 
    band.addElement(textField); 

    ((JRDesignSection) jasperDesign.getDetailSection()).addBand(band); 

el resultado será:

enter image description here

Esto es casi idéntica a ésta fragmento de jrxml file:

<detail> 
    <band height="40" splitType="Stretch"> 
     <staticText> 
      <reportElement x="0" y="0" width="60" height="20"/> 
      <box leftPadding="10"> 
       <topPen lineWidth="1.0"/> 
       <leftPen lineWidth="1.0"/> 
      </box> 
      <textElement/> 
      <text><![CDATA[ID: ]]></text> 
     </staticText> 
     <textField> 
      <reportElement x="60" y="0" width="200" height="20"/> 
      <box leftPadding="10"> 
       <topPen lineWidth="1.0"/> 
       <rightPen lineWidth="1.0"/> 
      </box> 
      <textElement/> 
      <textFieldExpression><![CDATA[$F{Id}]]></textFieldExpression> 
     </textField> 
     <staticText> 
      <reportElement x="0" y="20" width="60" height="20"/> 
      <box leftPadding="10"> 
       <leftPen lineWidth="1.0"/> 
       <bottomPen lineWidth="1.0"/> 
      </box> 
      <textElement/> 
      <text><![CDATA[Name: ]]></text> 
     </staticText> 
     <textField> 
      <reportElement x="60" y="20" width="200" height="20"/> 
      <box leftPadding="10"> 
       <bottomPen lineWidth="1.0"/> 
       <rightPen lineWidth="1.0"/> 
      </box> 
      <textElement/> 
      <textFieldExpression><![CDATA[$F{FirstName} + " " + $F{LastName}]]></textFieldExpression> 
     </textField> 
    </band> 
</detail> 
Cuestiones relacionadas