Fixed, apparently works with an array but not an array list.

Code:
ReportRender.GenericDrawRoutine((Excel.Worksheet)newWorkbook.Worksheets[ThisReport.Sheets[i, 0]], ThisReport.datatables[i], ThisReport.sheetColumnMappings[i], ThisReport.sheetFunctionMappings[i], ThisReport.Sheets[i, 1]);

Code:
 public static DataTable[] datatables = new DataTable[1];
        static ThisReport()
    { 
        
        
       columnMappings.Add(new ColumnMapping("audit_id", 1));
       columnMappings.Add(new ColumnMapping("audit_date", 2));
       columnMappings.Add(new ColumnMapping("duration", 3));
       columnMappings.Add(new ColumnMapping("report_name", 4));
       columnMappings.Add(new ColumnMapping("username", 5));
       columnMappings.Add(new ColumnMapping("parameters", 6));
       columnMappings.Add(new ColumnMapping("version_client", 7));
       columnMappings.Add(new ColumnMapping("version_server", 8));
       columnMappings.Add(new ColumnMapping("status", 9));
       sheetColumnMappings[0] = columnMappings;
       sheetFunctionMappings[0] = functionMappings;

       datatables[0] = (DataTable)Globals.ThisWorkbook.ds.UP_CRSUsageAudit;