1 32 33 package it.businesslogic.ireport.connection; 34 import it.businesslogic.ireport.util.*; 35 import java.io.File ; 36 import java.text.SimpleDateFormat ; 37 import java.util.Vector ; 38 import net.sf.jasperreports.engine.data.JRCsvDataSource; 39 40 44 public class JRCSVDataSourceConnection extends it.businesslogic.ireport.IReportConnection { 45 46 private String name; 47 private String recordDelimiter = "\n"; 48 private String fieldDelimiter = ","; 49 private boolean useFirstRowAsHeader = false; 50 private String customDateFormat = ""; 51 52 private String filename; 53 54 private Vector columnNames = new Vector (); 55 56 57 public JRCSVDataSourceConnection() { 58 } 59 60 64 public java.sql.Connection getConnection() { 65 return null; 66 } 67 68 public boolean isJDBCConnection() { 69 return false; 70 } 71 72 75 public java.util.HashMap getProperties() 76 { 77 java.util.HashMap map = new java.util.HashMap (); 78 map.put("Filename", Misc.nvl(this.getFilename() ,"") ); 79 map.put("recordDelimiter", Misc.nvl(this.getRecordDelimiter(),"\n") ); 80 map.put("fieldDelimiter", Misc.nvl(this.getFieldDelimiter() ,"") ); 81 map.put("useFirstRowAsHeader", Misc.nvl(""+this.isUseFirstRowAsHeader() ,"") ); 82 map.put("customDateFormat", Misc.nvl(this.getCustomDateFormat() ,"") ); 83 84 for (int i=0; i< getColumnNames().size(); ++i) 85 { 86 map.put("COLUMN_" + i,getColumnNames().elementAt(i) ); 87 } 88 return map; 89 } 90 91 public void loadProperties(java.util.HashMap map) 92 { 93 this.setFilename( (String )map.get("Filename")); 94 this.setRecordDelimiter( (String )map.get("recordDelimiter")); 95 this.setFieldDelimiter( (String )map.get("fieldDelimiter")); 96 this.setUseFirstRowAsHeader( ((String )map.get("useFirstRowAsHeader")).equals("true")); 97 this.setCustomDateFormat( (String )map.get("customDateFormat")); 98 99 int i = 0; 100 while (map.containsKey("COLUMN_" + i)) 101 { 102 getColumnNames().add( map.get("COLUMN_" + i)); 103 i++; 104 } 105 106 } 107 108 public String getDescription(){ return "File CSV Datasource"; } 109 110 114 public java.lang.String getFilename() { 115 return filename; 116 } 117 118 122 public void setFilename(java.lang.String filename) { 123 this.filename = filename; 124 } 125 126 130 public java.lang.String getName() { 131 return name; 132 } 133 134 138 public void setName(java.lang.String name) { 139 this.name = name; 140 } 141 142 146 public net.sf.jasperreports.engine.JRDataSource getJRDataSource() { 147 148 try { 149 JRCsvDataSource ds = new JRCsvDataSource(new File (getFilename())); 150 if (this.getCustomDateFormat() != null && this.getCustomDateFormat().length() > 0) 151 { 152 ds.setDateFormat(new SimpleDateFormat (this.getCustomDateFormat())); 153 } 154 155 ds.setFieldDelimiter( getFieldDelimiter().charAt(0) ); 156 ds.setRecordDelimiter( getRecordDelimiter()); 157 ds.setUseFirstRowAsHeader( isUseFirstRowAsHeader()); 158 159 if (!isUseFirstRowAsHeader()) 160 { 161 String [] names = new String [getColumnNames().size()]; 162 for (int i=0; i<names.length; ++i ) 163 { 164 names[i] = ""+getColumnNames().elementAt(i); 165 } 166 ds.setColumnNames( names ); 167 } 168 169 return ds; 170 } catch (Exception ex) 171 { 172 ex.printStackTrace(); 173 return super.getJRDataSource(); 174 } 175 } 176 177 public boolean isUseFirstRowAsHeader() { 178 return useFirstRowAsHeader; 179 } 180 181 public void setUseFirstRowAsHeader(boolean useFirstRowAsHeader) { 182 this.useFirstRowAsHeader = useFirstRowAsHeader; 183 } 184 185 public String getRecordDelimiter() { 186 return recordDelimiter; 187 } 188 189 public void setRecordDelimiter(String recordDelimiter) { 190 this.recordDelimiter = recordDelimiter; 191 } 192 193 public String getFieldDelimiter() { 194 return fieldDelimiter; 195 } 196 197 public void setFieldDelimiter(String fieldDelimiter) { 198 this.fieldDelimiter = fieldDelimiter; 199 } 200 201 public String getCustomDateFormat() { 202 return customDateFormat; 203 } 204 205 public void setCustomDateFormat(String customDateFormat) { 206 this.customDateFormat = customDateFormat; 207 } 208 209 public Vector getColumnNames() { 210 return columnNames; 211 } 212 213 public void setColumnNames(Vector columnNames) { 214 this.columnNames = columnNames; 215 } 216 } 217 218 | Popular Tags |