Export to Excel or Ascii or Custom Format
Description
Export data to Excel or Ascii or Custom Format. The Custom format option allows you to define an Xbasic function that creates the file.
Action Javascript action available in the Grid Component that exports records in the Grid Component to Excel, Ascii, or a Custom File format.
Export Data Properties
Export type
Specify the format of the exported data.
- Export type
- Description
- Excel
Export as an .xls (Excel 2003) document.
- Excel-XLSX
Export as an .xlsx (Excel 2007) document.
- Comma delimited ascii
Export as a comma delimited ASCII file.
- Tab delimited ascii
Export as a tab delimited ASCII file.
- Custom
Export to a custom format defined with an Xbasic function.
Custom format Xbasic function
Shown if Export type is Custom. The name of the Xbasic function that creates the custom export file. The function must be defined in the Xbasic Function Declarations section.
The following variables are available to your Xbasic function:
- e.tbl
Pointer to the table or record set of the from which data is to be exported.
- e.itbl
In the case of DBF data, a pointer to the index after the table has been queried.
- e.datatype
Either 'sql' or 'dbf', depending on what type of table you are exporting data from.
- e.exportfilename
Name of the file you must create with the exported data.
Your function can set the e.abort variable to .t. halt file download. For example:
function exportFormat as v (e as p) ' Abort export e.abort = .t. end function
The example below loops through all records in a SQL result set and creates a custom export file:
function exportFormat as v (e as p) 'Example (for SQL data): 'Loop through all records in the result set to create the custom export file. DIM txt AS C = "" DIM flagLoop AS L = .t. WHILE flagLoop txt = txt + e.tbl.data("field1") + e.tbl.data("field2") + crlf() flagLoop = e.tbl.nextRow() END WHILE ' Create file file.from_string(e.exportFilename,txt) end function
The Show Function Prototypes link at the bottom of the Action Javascript dialog can be used to generate a function prototype. Enter the name of the Xbasic function you want to create, then click Show Function Prototypes. Next, select Server Side - Custom Export. Click Copy Code to Clipboard to copy the function prototype. Then, click Open Xbasic Function Declarations and paste the function definition.
Source
Specify the source of the data export:
- Source
- Description
- 1 - All Fields in Grid Component
Exports all data displayed in the Grid part of the component. Fields that are not displayed in the Grid part are not exported.
- 2 - All Fields in Grid Query
Exports all fields from the query the Grid component is based on. This includes fields that may not be displayed in the Grid part.
- 3 - Selected Fields in Grid Query
Export all data from a list of field specified in the Field list property.
- 4 - Custom
Export data from the Grid or a custom SQL or DBF query defined using an Xbasic function.
Client-side filename
Specify the default filename to use when saving the file on the user's computer. The user can override the suggested name. If you set the name to <Default>, Alpha Anywhere will generate the filename.
Zip file
Specify if the exported file should be zipped before it is downloaded to the user's computer.
Export hidden fields
Should 'hidden' fields be exported? ('Hidden' fields are not necessarily actually hidden when the Grid is displayed - they could be shown in another column's Free-form layout section).
Use Grid column headings
Should the column headings in the export file be the same as the Grid Column Headings? If unchecked, the field name is used.
Field list
The list of fields to export.
The column headings in the Excel file will use the field name. If you want to specify different column headings from the fields, you can use the following syntax to define a custom column heading:
fieldname [column heading]
For example:
firstname [First Name]
Record selection
Specify if only the records in the current Grid query should be exported, or all records in the Grid. Choices include Records in current query, All records, and Current record only.
Maximum number of records
Specify the maximum number of records to export. Set to 0 for no limit.
Custom Export Properties
These options are shown if the Source is set to 4 (Custom).
Custom type
Specify if the query is against DBF tables or a SQL database. Choices include DBF, SQL.
DBF Table
Specify the name of the DBF table.
Field names
Specify the names of the fields in the DBF table that you want to export.
Filter - DBF
Specify the filter expression.
Order - DBF
Specify the filter expression.
Connection string
Specify the connection string.
SQL Select
Specify the SQL Select statement.
Filter - SQL
Specify the filter expression. (This is in addition to any WHERE clause defined in your SELECT statement.)
Order - SQL
Specify the filter expression.
Arguments
You can use arguments in the filter expressions that you define. Using arguments for variable data makes it easier to write your filter expressions.
Argument bindings
Specify where each argument that have defined gets its value. Arguments can get their values from a value in the current Grid row, a session variable, or a literal value.
Events - Server-Side Properties
After export
The name of an Xbasic function to call after the records have been exported and the export file has been created, but before the file has been sent to the browser. Function is defined in Xbasic Function Declarations section.
- e.exportFilename
The name of the file that was created. This file will be downloaded to the user's computer.
- e.tmpl
Grid properties
- e.rtc
Runtime calculations - you can use this to store data to be passed to other server side events. This variable cannot be used to persist state information.
Your Xbasic function can set the following variables:
- e.abort
Set to .t. to prevent the file from being downloaded.
- e.rtc.abortAfterExportJavascriptEvent
Set to .t. to suppress the AfterExport JavaScript event from firing.
For example, to prevent the export file from being downloaded:
function afterExport as v (e as p) ' Abort the file export e.abort = .t. end function
JavaScript can optionally be returned from the Xbasic Function in the e.rtc variable. For example:
function afterExport as v (e as p) ' Display a popup alert on the client: e.rtc.A_AjaxResponses[].text = "alert('Export complete.');" e.rtc.A_AjaxResponses[..].id = 100000 end function
The Show Function Prototypes link at the bottom of the Action Javascript dialog can be used to generate a function prototype. Enter the name of the Xbasic function you want to create, then click Show Function Prototypes. Next, select Server Side - After Export. Click Copy Code to Clipboard to copy the function prototype. Then, click Open Xbasic Function Declarations and paste the function definition.
Events - Client-Side Properties
Before export
Specify the name of the JavaScript function to call before records are exported. This function must return true, or false. If false, export is aborted. Function is defined in Javascript Function Declarations section.
This function can be used to prevent exporting data if certain conditions are not met. It can also be used to open a "wait" message:
function canDoExport() { // Show wait message: var title = "Exporting..."; var message = "Please wait for the export to complete."; var buttons = "none"; var onClose = function () {}; A5.msgBox.show(title, message, buttons, onClose); }
The Show Function Prototypes link at the bottom of the Action Javascript dialog can be used to generate a function prototype. Enter the name of the JavaScript function you want to create, then click Show Function Prototypes. Next, select Client Side - Before Export. Click Copy Code to Clipboard to copy the function prototype.
After export
Specify the name of the JavaScript function to call before after the records have been exported and the file has been downloaded to the browser. Function is defined in Javascript Function Declarations section.
This function can be used to trigger another action, such as closing a wait message shown when the export started:
function afterExport() { // Hide wait message: A5.msgBox.hide(); }
The Show Function Prototypes link at the bottom of the Action Javascript dialog can be used to generate a function prototype. Enter the name of the JavaScript function you want to create, then click Show Function Prototypes. Next, select Client Side - After Export. Click Copy Code to Clipboard to copy the function prototype.
Troubleshooting
I can't download the exported file from the server
Only files whose file extension is listed in the Allowed filenames property in the Project Properties can be downloaded from the Application Server. If the file type you've specified in this action is not listed, the file may not download when the action completes.
To resolve this issue, open the Web Projects Control Panel add the file extension (e.g. .txt, .xls, .zip) to the Project Properties > File Download > Allowed filenames property.
Limitations
Grid Component Only
See Also