     select: ->
         @defaultSelect
 
+    valueFromRecord: (key, col, record) ->
+        if col.dataKey
+            subElements = col.dataKey.split('.')
+            value = record
+            for subElement in subElements
+                value = value?[subElement]
+            value
+        else
+            record[key]
+
     data: ->
         records = @collection()?.find(@select(),
             sort: @sort()

        recordData = []
        for record in records
            colData = []
            for col, colObj of @_cols()
                if not (colObj.hide?() or colObj.hide)
                    colData.push
                        value : colObj.display?(record[col], record) or record[col]
                        aLink : colObj.link?(record[col], record)
                        title : colObj.title?(record[col], record) or colObj.title
                    
            recordData.push
                colData: colData

                deleteOk: @collection().deleteOk?(record)

        recordDisplayStop = @skip() + recordData.length
        
        theData =
            haveData: records? and (records.length > 0 or @_sess("recordCount") > 0)
            tableTitle: @_tableTitle()
