'Render the representations of the values for rfield in
all records in the result
@param rfield: the field (S3ResourceField)
@param results: the output dict to update with the representations,
structure: {RecordID: {ColumnName: Representation}},
the raw data will be a special item "_row" in the
inner dict holding a Storage of the raw field values
@param none: default representation of None
@param raw_data: retain the raw data in the output dict
@param show_links: allow representation functions to render
links as HTML'

def render(self, rfield, results, none='-', raw_data=False, show_links=True):

    colname = rfield.colname
    field_data = self.field_data
    (fvalues, frecords, joined, list_type, virtual, json_type) = field_data[colname]
    renderer = rfield.represent
    if (not callable(renderer)):
        renderer = (lambda v: (s3_unicode(v) if (v is not None) else none))
    if ((not show_links) and hasattr(renderer, 'show_link')):
        show_link = renderer.show_link
        renderer.show_link = False
    else:
        show_link = None
    per_row_lookup = (list_type and (self.effort[colname] < (len(fvalues) * 30)))
    if (hasattr(renderer, 'bulk') and (not list_type)):
        per_row_lookup = False
        fvalues = renderer.bulk(fvalues.keys(), list_type=False)
    elif (not per_row_lookup):
        for value in fvalues:
            try:
                text = renderer(value)
            except:
                text = s3_unicode(value)
            fvalues[value] = text
    for record_id in frecords:
        if (record_id not in results):
            results[record_id] = (Storage() if (not raw_data) else Storage(_row=Storage()))
        record = frecords[record_id]
        result = results[record_id]
        if per_row_lookup:
            value = record.keys()
            if ((None in value) and (len(value) > 1)):
                value = [v for v in value if (v is not None)]
            try:
                text = renderer(value)
            except:
                text = s3_unicode(value)
            result[colname] = text
            if raw_data:
                result['_row'][colname] = value
        elif ((len(record) == 1) or ((not joined) and (not list_type))):
            value = record.keys()[0]
            result[colname] = (fvalues[value] if (value in fvalues) else none)
            if raw_data:
                result['_row'][colname] = value
            continue
        else:
            vlist = []
            for value in record:
                if ((value is None) and (not list_type)):
                    continue
                value = (fvalues[value] if (value in fvalues) else none)
                vlist.append(value)
            if any([hasattr(v, 'xml') for v in vlist]):
                data = TAG[''](list(chain.from_iterable([(v, ',    ') for v in vlist]))[:(-1)])
            else:
                data = ',    '.join([s3_unicode(v) for v in vlist])
            result[colname] = data
            if raw_data:
                result['_row'][colname] = record.keys()
    if (show_link is not None):
        renderer.show_link = show_link
    return results
