'Method to build the table.
@return: A list of Table objects. Normally this will be a list with
just one table object, but if the table needs to be split
across columns then one object per page will be created.'

def build(self):

    if self.pdf_groupby:
        data = self.group_data()
        data = ([self.labels] + data)
    elif (self.raw_data != None):
        data = ([self.labels] + self.raw_data)
    if ((not data) or (not data[0])):
        return None
    endCol = (len(self.labels) - 1)
    rowCnt = len(data)
    self.style = self.tableStyle(0, rowCnt, endCol)
    tempTable = Table(data, repeatRows=1, style=self.style, hAlign='LEFT')
    self.data = data
    self.tempDoc.build(None, [tempTable], None)
    self.newColWidth = [tempTable._colWidths]
    self.rowHeights = [tempTable._rowHeights]
    self.pages.append(data)
    if (not self.tweakDoc(tempTable)):
        self.pages = self.splitTable(tempTable)
    return self.presentation()
