function exportQueryAsCsv($records, $queryAction) { if (!WorkbenchConfig::get()->value("allowQueryCsvExport")) { throw new Exception("Export to CSV not allowed"); } if ($records) { try { $csvFile = fopen('php://output', 'w') or die("Error opening php://output"); $csvFilename = "export" . date('YmdHis') . ".csv"; header("Content-Type: application/csv"); header("Content-Disposition: attachment; filename={$csvFilename}"); //Write first row to CSV and unset variable fputcsv($csvFile, $this->getQueryResultHeaders(new SObject($records[0]))); //Export remaining rows and write to CSV line-by-line foreach ($records as $record) { fputcsv($csvFile, $this->getQueryResultRow(new SObject($record), false)); } fclose($csvFile) or die("Error closing php://output"); } catch (Exception $e) { require_once "header.php"; displayQueryForm(new QueryRequest($_POST), 'csv', $queryAction); print "<p />"; displayError($e->getMessage(), false, true); } } else { require_once "header.php"; displayQueryForm(new QueryRequest($_POST), 'csv', $queryAction); print "<p />"; displayWarning("No records returned for CSV output.", false, true); } }
} else { require_once 'header.php'; displayQueryForm($queryRequest); print "</form>"; //could include inside because if IE page loading bug print "<p> </p>"; displayError("count() is not supported for CSV. View as List or choose fields and try again."); include_once 'footer.php'; } } else { require_once 'header.php'; if ($queryRequest->getExportTo() == null) { $queryRequest->setExportTo('screen'); } $queryRequest->setQueryAction('Query'); displayQueryForm($queryRequest); print "</form>"; //could include inside because if IE page loading bug include_once 'footer.php'; } } } } //Show the main SOQL query form with default query or last submitted query and export action (screen or CSV) function displayQueryForm($queryRequest) { registerShortcut("Ctrl+Alt+W", "addFilterRow(document.getElementById('numFilters').value++);" . "toggleFieldDisabled();"); if ($queryRequest->getObject()) { $describeSObjectResult = WorkbenchContext::get()->describeSObjects($queryRequest->getObject()); $fieldValuesToLabels = array(); foreach ($describeSObjectResult->fields as $field) {