Changeset 274


Ignore:
Timestamp:
Mar 17, 2010, 11:39:58 AM (14 years ago)
Author:
tabma
Message:
  • Excel data file data is parsed completely and entities are instantiated with values read from the Excel data file
Location:
trunk/grails-app
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r273 r274  
    152152
    153153        //import workbook
    154         ImporterService.importdata(session.importtemplate_id, session.workbook, 0, 0, session.header)
     154        ImporterService.importdata(session.importtemplate_id, session.workbook, 0, 1, session.header)
    155155        //println session.header.dump()
    156156
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r273 r274  
    155155    */
    156156    def importdata(template_id, HSSFWorkbook wb, int sheetindex, int rowindex, mcmap) {
    157         def sheet = wb.getSheetAt(sheetindex)           
    158 
     157        def sheet = wb.getSheetAt(sheetindex)
     158        def table = []
     159       
    159160        // walk through all rows       
    160         rowindex..sheet.getLastRowNum().each { i ->
    161             def table = []
    162 
    163             table.add(createRecord(template_id, sheet.getRow(i), mcmap))
    164         }       
     161        (rowindex..sheet.getLastRowNum()).each { i ->
     162            table.add(createRecord(template_id, sheet.getRow(i), mcmap))           
     163        }
     164
     165        table.each {
     166            it.each { entity ->
     167                entity.giveFields().each { field ->
     168                    print field.name + ":" + entity.getFieldValue(field.name) + "/"
     169                }
     170                println
     171            }
     172        }
    165173    }
    166174    /**
     
    178186        def sample = new Sample(title:"New sample", template:template)
    179187
    180         record.add(study)
     188        /*record.add(study)
    181189        record.add(subject)
    182190        record.add(event)
    183191        record.add(protocol)
    184         record.add(sample)
     192        record.add(sample)*/
    185193
    186194        for (HSSFCell cell: excelrow) {
    187             def mc = mcmap[cell.getColumnIndex()]
     195            def mc = mcmap[cell.getColumnIndex()]           
    188196
    189197            switch(mc.entity) {
    190                 case Study      :   study.setFieldValue(mc.property.name, df.formatCellValue(cell))
    191                                     break
    192                 case Subject    :   subject.setFieldValue(mc.property.name, df.formatCellValue(cell))
    193                                     break
    194                 case Event      :   event.setFieldValue(mc.property.name, df.formatCellValue(cell))
    195                                     break
    196                 case Protocol   :   protocol.setFieldValue(mc.property.name, df.formatCellValue(cell))
    197                                     break
    198                 case Sample     :   sample.setFieldValue(mc.property.name, df.formatCellValue(cell))
     198                case Study      :   (record.any {it.getClass()==mc.entity}) ? 0 : record.add(study)
     199                                    study.setFieldValue(mc.property.name, df.formatCellValue(cell))
     200                                    break
     201                case Subject    :   (record.any {it.getClass()==mc.entity}) ? 0 : record.add(subject)
     202                                    subject.setFieldValue(mc.property.name, df.formatCellValue(cell))
     203                                    break
     204                case Event      :   (record.any {it.getClass()==mc.entity}) ? 0 : record.add(event)
     205                                    event.setFieldValue(mc.property.name, df.formatCellValue(cell))
     206                                    break
     207                case Protocol   :   (record.any {it.getClass()==mc.entity}) ? 0 : record.add(protocol)
     208                                    protocol.setFieldValue(mc.property.name, df.formatCellValue(cell))
     209                                    break
     210                case Sample     :   (record.any {it.getClass()==mc.entity}) ? record.add(sample) : 0
     211                                    sample.setFieldValue(mc.property.name, df.formatCellValue(cell))
    199212                                    break
    200213                case Object     :   // don't import
     
    202215            } // end switch
    203216        } // end for
    204        
     217
    205218        return record
    206219    }
    207 
    208220}
Note: See TracChangeset for help on using the changeset viewer.