27/03/2006, 13:58
|
| | Fecha de Ingreso: marzo-2006
Mensajes: 17
Antigüedad: 18 años, 9 meses 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 |