Record Reports are presented to the users of the Default Admin interface and are also intended to be made available in a dynamic way to users of a customized front end. As a Report, the Procedure is expected to produce output to be displayed to the user.
Reports when called from the Default Admin interface will open in a new window and will use the Report Template instead of the Default Template. The contents of the Output Query will automatically be displayed as an HTML table on the page.
Reports are able to modify the user interface or create their own user interface to interact with the user. A simple modification could be to post a header on the page. When called by the Default Admin interface, a Table Report can take full control and prevent the Default interface from displaying the HTML table output by discarding the Output Query using the command Discard while the Work Query is set to "Output" or by using the command DeleteQuery "Output"
When a Record Report is initiated a Query Object named Input will be empty and will be set as the Top Query. The Record which the Report was called upon, will be loaded into a Query Object named Output and will be set as the Work Query. A third Query Object named Request will be created and populated with the HTTP(S) request, with any URL or POSTed variables already parsed into fields. The Request variables will already be sanitized for security and safe database storage.
Any changes made to any of these will be discarded; as such, if a Record update is necessary, the Procedure must specifically perform the Database update on it.