1 29 30 package it.businesslogic.ireport.examples.queryexecuter; 31 32 import it.businesslogic.ireport.FieldsProvider; 33 import it.businesslogic.ireport.FieldsProviderEditor; 34 import it.businesslogic.ireport.IReportConnection; 35 import it.businesslogic.ireport.data.TestDesigner; 36 import it.businesslogic.ireport.gui.ReportQueryDialog; 37 import java.util.Map ; 38 import javax.swing.JOptionPane ; 39 import net.sf.jasperreports.engine.JRDataSource; 40 import net.sf.jasperreports.engine.JRDataset; 41 import net.sf.jasperreports.engine.JRException; 42 import net.sf.jasperreports.engine.JRField; 43 import net.sf.jasperreports.engine.design.JRDesignField; 44 import net.sf.jasperreports.engine.query.JRQueryExecuter; 45 46 50 public class CSVFieldsProvider implements FieldsProvider { 51 52 53 public CSVFieldsProvider() { 54 } 55 56 public JRField[] getFields(IReportConnection con, JRDataset report, Map parameters) throws JRException, UnsupportedOperationException { 57 58 java.util.List list = new java.util.ArrayList (); 59 60 JRQueryExecuter executer = new CSVQueryExecuterFactory().createQueryExecuter(report, parameters); 62 JRDataSource ds = executer.createDatasource(); 63 if (ds.next() != false) 64 { 65 for (int i=0; ; ++i) 66 { 67 JRDesignField f = new JRDesignField(); 68 f.setName("COLUMN_" + i); 69 try { 70 ds.getFieldValue(f); 71 list.add(f); 72 } catch (Exception ex) 73 { 74 break; 76 } 77 } 78 } 79 80 JRField[] fields = new JRField[list.size()]; 81 for (int i=0; i<fields.length; ++i) 82 { 83 fields[i] = (JRField)list.get(i); 84 } 85 86 return fields; 87 88 } 89 90 public boolean supportsAutomaticQueryExecution() { 91 return true; 92 } 93 94 public boolean hasQueryDesigner() { 95 return true; 96 } 97 98 public String designQuery(IReportConnection con, String query, ReportQueryDialog reportQueryDialog) throws JRException, UnsupportedOperationException { 99 TestDesigner td = new TestDesigner(reportQueryDialog, true); 101 td.setQuery(query); 102 td.setVisible(true); 103 if (td.getDialogResult() == JOptionPane.OK_OPTION) 104 { 105 return td.getQuery(); 106 } 107 return null; 108 } 109 110 public boolean supportsGetFieldsOperation() { 111 return true; 112 } 113 114 public boolean hasEditorComponent() { 115 return false; 116 } 117 118 public FieldsProviderEditor getEditorComponent(ReportQueryDialog reportQueryDialog) { 119 return null; 120 } 121 122 } 123 | Popular Tags |