Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/03/2006, 13:58
mlanza
 
Fecha de Ingreso: marzo-2006
Mensajes: 17
Antigüedad: 18 años, 1 mes
Puntos: 0
Yo tomo los valores en mi aplicación Java (donde me conecto a mi base Postgresql) y armo un HashMap con esos valores. Con ese map armo un array de objects y lo paso como datasource al xml. No paso la conexión completa sino los campos que obtengo en el resultset. Se entiende?

En java tengo
Map valores = new HashMap();
Object [] data = new Object[1000];

for (int j=; i<cantFilas;i++){
for (int k=0; k<cantColumnas; k++){
valores.put(nombreCampo,valor);
}
data = valores;
}

y luego paso ese Object[] al xml (si es necesario lo redimensiono antes de pasarlo)

JRMapArrayDataSource datasource = new JRMapArrayDataSource(data);
JasperReport jasperReport = JasperManager.compileReport(jasperDesign);
Map parameters = new HashMap();
parameters.put("ReportDate","Eventos Programados");
jasperPrint = JasperManager.fillReport(jasperReport, parameters, datasource);


Para tomarlos en el xml los declaro de la siguiente forma:

<field name="Título Evento" class="java.lang.String"/>
<field name="Fecha" class="java.lang.String"/>
<field name="Hora" class="java.lang.String"/>
<field name="Descripción Evento" class="java.lang.String"/>
y en java pongo esos parámetros en un
y luego los uso con lo siguiente:

Pongo los títulos:

<columnHeader>
<band height="20">
<staticText>
<reportElement x="10" y="0" width="170" height="20"/>
<textElement>
<font isUnderline="true" isBold="true"/>
</textElement>
<text><![CDATA[Título Evento]]></text>
</staticText>
<staticText>
<reportElement x="180" y="0" width="70" height="20"/>
<textElement>
<font isUnderline="true" isBold="true"/>
</textElement>
<text><![CDATA[Fecha]]></text>
</staticText>
<staticText>
<reportElement x="250" y="0" width="40" height="20"/>
<textElement>
<font isUnderline="true" isBold="true"/>
</textElement>
<text><![CDATA[Hora]]></text>
</staticText>
<staticText>
<reportElement x="290" y="0" width="70" height="20"/>
<textElement>
<font isUnderline="true" isBold="true"/>
</textElement>
<text><![CDATA[Descripción Evento]]></text>
</staticText>
</band>
</columnHeader>


Y luego los datos:


<detail>
<band height="20">
<textField>
<reportElement x="10" y="0" width="170" height="20"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{Título Evento}]]></textFieldExpression>
</textField>
<textField pattern="0.00">
<reportElement x="180" y="0" width="70" height="20"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{Fecha}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="250" y="0" width="40" height="20"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{Hora}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="290" y="0" width="70" height="20"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{Descripción Evento}]]></textFieldExpression>
</textField>
</band>
</detail>


Por las dudas les aclaro que uso LATIN1 como codificación y no UTF-8 (por los acentos que utilizo, si prueban lo que les pasé de código deben usar esa codificación o sacar los acentos).
Espero que se haya entendido algo y les sirva...
Mariela