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);
     }
 }
Esempio n. 2
0
                } else {
                    require_once 'header.php';
                    displayQueryForm($queryRequest);
                    print "</form>";
                    //could include inside because if IE page loading bug
                    print "<p>&nbsp;</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) {