|    
			
				24/06/2005, 02:22
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: mayo-2003 Ubicación: en sevilla 
						Mensajes: 3
					 Antigüedad: 22 años, 5 meses Puntos: 0 |  | 
  |  Hola... soy nueva en esto y queria preguntaros como podria diseñar con el iReport un informe si en el código java le paso al metodo fillReport un DataSource en vez de una conexión.
 Object available_data[]={matri_stock,n_refer,proced,p_compra,
 tip_iva,prev_rea,c_total,p_venta,f_compra,sed,f_ma  tric,tot_vehic};
 JList myList = new JList(available_data);
 MyDataSource dataSource = new MyDataSource(myList);
 
 JasperPrint reporte = JasperFillManager.fillReport("C:\\Documents and Settings\\Inma\\Mis documentos\\SRC\\Propios\\Listados Tecsa\\TStock.jasper", parameters,dataSource);
 
 matri_stock, n_refer...seria vectores.
 
 y mi clase MyDataSource seria esta:
 
 package listados_tecsa;
 import net.sf.jasperreports.engine.JRDataSource;
 import net.sf.jasperreports.engine.JRException;
 import net.sf.jasperreports.engine.JRField;
 import java.util.Vector;
 
 
 
 public class MyDataSource implements JRDataSource {
 private Object[][] data;  // data source structure
 private int index = -1;  // current record index
 
 public MyDataSource(javax.swing.JList myList) {
 /* int numero_righe=myList.getModel().getSize();
 int numero_colonne=12;
 data = new Object[numero_righe][numero_colonne];
 for(int x=0;x<numero_righe;x++){
 Object ob=myList.getModel().getElementAt(x);
 Vector v=(Vector)ob;
 for(int y=0;y<numero_colonne;y++){
 data[x][y]=v.elementAt(y);
 }
 }*/
 int numero_colonne=myList.getModel().getSize();
 Object obj=myList.getModel().getElementAt(0);
 Vector ve=(Vector)obj;
 int numero_righe=ve.size();
 data = new Object[numero_righe][numero_colonne];
 
 for(int x=0;x<numero_colonne;x++){//0 al 12
 Object ob=myList.getModel().getElementAt(x);
 Vector v=(Vector)ob;
 for(int y=0;y<numero_righe;y++){
 if(v.size()==7){
 data[y][x] = v.elementAt(y);
 }else{
 data[y][x]="";
 }
 }
 }
 
 
 }
 
 // called in net.sf.jasperreports.engine.fill package from JRBaseFiller.next() method
 // to make certain further data exist
 public boolean next() throws JRException {
 index++;
 
 return (index < data.length);
 }
 
 // called in net.sf.jasperreports.engine.fill package from JRBaseFiller.next() method
 // to get the right field value by means of column name an current record index
 public Object getFieldValue(JRField field) throws JRException {
 Object value = null;
 
 String fieldName = field.getName();
 
 if ("MATRÍCULA".equals(fieldName)) {
 value = data[index][0];
 }
 else if ("Nº REF. ART.".equals(fieldName)) {
 value = data[index][1];
 }
 else if ("PROCEDENCIA".equals(fieldName)) {
 value = data[index][2];
 }
 else if ("PRECIO COMPRA".equals(fieldName)) {
 value = data[index][3];
 }
 else if ("TIPO IVA".equals(fieldName)) {
 value = data[index][4];
 }
 else if ("PREV. REACOND.".equals(fieldName)) {
 value = data[index][5];
 }
 else if ("COSTO TOTAL".equals(fieldName)) {
 value = data[index][6];
 }
 else if ("PRECIO VENTA".equals(fieldName)) {
 value = data[index][7];
 }
 else if ("FECHA COMPRA".equals(fieldName)) {
 value = data[index][8];
 }
 else if ("SEDE".equals(fieldName)) {
 value = data[index][9];
 }
 else if ("FECHA 1ª MATRIC.".equals(fieldName)) {
 value = data[index][10];
 }
 else if ("Nº TOTAL VEHÍCULO".equals(fieldName)) {
 value = data[index][11];
 }
 
 
 
 
 return value;
 }
 
 } // end of class
 
 Tambien os queria preguntar si ya no es mucho, como sería tambien el parametro "Map parameters" que le tengo que pasar al método fillReport.
 
 Mucha gracias!!!
     |