- Timestamp:
- Mar 22, 2010, 2:18:30 PM (13 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/services/dbnp/importer/ImporterService.groovy
r284 r297 179 179 } 180 180 181 /** 182 // start transaction 183 def transaction = sessionFactory.getCurrentSession().beginTransaction() 184 // persist data to the database 185 try { 186 // commit transaction 187 println "commit" 188 transaction.commit() 189 success() 190 } catch (Exception e) { 191 // rollback 192 // stacktrace in flash scope 193 flash.debug = e.getStackTrace() 194 195 println "rollback" 196 transaction.rollback() 197 error() 198 } 199 */ 200 181 201 /** 182 202 * @param datamatrix two dimensional array containing entities with values read from Excel file … … 242 262 243 263 for (HSSFCell cell: excelrow) { 244 def mc = mcmap[cell.getColumnIndex()] 264 def mc = mcmap[cell.getColumnIndex()] 265 def value = formatValue(df.formatCellValue(cell), mc.templatefieldtype) 245 266 246 267 switch(mc.entity) { 247 268 case Study : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(study) 248 study.setFieldValue(mc.property.name, df.formatCellValue(cell))269 study.setFieldValue(mc.property.name, value) 249 270 break 250 271 case Subject : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(subject) 251 subject.setFieldValue(mc.property.name, df.formatCellValue(cell))272 subject.setFieldValue(mc.property.name, value) 252 273 break 253 274 case Event : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(event) 254 event.setFieldValue(mc.property.name, df.formatCellValue(cell))275 event.setFieldValue(mc.property.name, value) 255 276 break 256 277 case Protocol : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(protocol) 257 protocol.setFieldValue(mc.property.name, df.formatCellValue(cell))278 protocol.setFieldValue(mc.property.name, value) 258 279 break 259 280 case Sample : (record.any {it.getClass()==mc.entity}) ? record.add(sample) : 0 260 sample.setFieldValue(mc.property.name, df.formatCellValue(cell))281 sample.setFieldValue(mc.property.name, value) 261 282 break 262 283 case Object : // don't import … … 267 288 return record 268 289 } 290 291 /** 292 * Method to parse a value conform a specific type 293 * @param value string containing the value 294 * @return object corresponding to the TemplateFieldType 295 */ 296 def formatValue(String value, TemplateFieldType type) { 297 switch (type) { 298 case TemplateFieldType.STRING : return value 299 case TemplateFieldType.TEXT : return value 300 case TemplateFieldType.INTEGER : return Integer.valueOf(value.replaceAll("[^0-9]","")) 301 case TemplateFieldType.FLOAT : return Float.valueOf(value.replace(",",".")); 302 case TemplateFieldType.DOUBLE : return Double.valueOf(value.replace(",",".")); 303 case TemplateFieldType.STRINGLIST : return value 304 case TemplateFieldType.ONTOLOGYTERM : return value 305 case TemplateFieldType.DATE : return value 306 default : return value 307 } 308 } 269 309 } -
trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy
r283 r297 17 17 import dbnp.studycapturing.Template 18 18 import dbnp.studycapturing.TemplateFieldType 19 import org.apache.poi.hssf.usermodel.HSSFCell 20 import org.apache.poi.ss.usermodel.DataFormatter 19 21 20 22 class ImporterTagLib { … … 160 162 out << res 161 163 } 164 165 /** 166 * @param cell HSSFCell variable 167 * @return good representation of variable (instead of toString()) 168 */ 169 def displayCell = { attrs -> 170 def cell = attrs['cell'] 171 def df = new DataFormatter() 172 173 switch (cell.getCellType()) { 174 case HSSFCell.CELL_TYPE_STRING : out << cell.getStringCellValue() 175 break 176 case HSSFCell.CELL_TYPE_NUMERIC : out << df.formatCellValue(cell) 177 break 178 } 179 } 162 180 } -
trunk/grails-app/views/importer/common/_preview.gsp
r256 r297 45 45 <tr> 46 46 <td>Value</td> 47 <g:each var="c olumn" in="${row}">47 <g:each var="cell" in="${row}"> 48 48 <td class="datamatrix"> 49 <g:if test="${c olumn.toString()==''}">.</g:if>50 <g:else> ${column.toString()}</g:else>49 <g:if test="${cell.toString()==''}">.</g:if> 50 <g:else><importer:displayCell cell="${cell}"/></g:else> 51 51 </td> 52 52 </g:each>
Note: See TracChangeset
for help on using the changeset viewer.