| Table Output for Query Web Service | 
With PxPlus 2016, you have the capability to return the data output for an existing query in a table format on a Web page. A new output type of TABLE has been added to the Query Service (qry.pxp) that returns an inner HTML for a table with <th> for the header and <td> for the data columns. For information on Web Services, see PxPlus Web Services.
Additional options are available for the TABLE output type:
| 
 | LIMIT=nnn | Limits the number of rows | 
| 
 | HEADER=no | Suppresses the column headers | 
A simple JavaScript utility (*web/services/pxplus.js) is provided that contains a routine (PlusQryTable) for populating the table.
Calling Sequence:
PlusQryTable (QryName, TableId, InputId, Options, ServerURL)
Where:
| 
 | QryName | (Required) Name of the query used to populate the table | 
| 
 | TableId | (Required) ID of the HTML table whose contents will be loaded from the Query data (including the header) | 
| 
 | InputID | (Optional) ID of the HTML INPUT field whose value will be passed as a Global variable to the query | 
| 
 | Options | (Optional) A string with additional options needed to run the query such as LIB= | 
| 
 | ServerURL | (Optional) URL to the server if not the same as the current server | 
To add the JavaScript function, the HTML page must include a script load of the /services/pxplus.js source file using something similar to the following:
<script src="/services/pxplus.js"></script>
Example:
INV_QRY is a query defined in the APP.EN directory. This query displays invoice information, and one of the columns (ClientId$) contains Client Code numbers. As a filter, the Selection Logic for the query (see Query Selection Criteria) checks if a global variable (%ClientId$) is populated, and if so, the record is only included if ClientId$=%ClientId$.
Sample file TEST_Q.HTML:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<title>Qry Table load Sample HTML</title>
</head>
<body>
<script src="/services/pxplus.js"></script>
<div onclick="PlusQryTable('INV_QRY', 'mytbl', null, 'lib=app.en');" style='text-decoration: underscore;'>Click to load all records</div>
Client ID: <input type='text' width=10 id="clientid" onchange="PlusQryTable('INV_QRY', 'mytbl', 'clientid', 'lib=app.en');" />
<br /><br />
<table width=50% border="1" cellpadding="0" cellspacing="0"
id="mytbl">
<tr>
<td width="100%"> </td>
</tr>
</table>
</body>
</html>
This sample HTML code demonstrates the use of the PlusQryTable routine in two different ways:
| Method 1: | 
 | 
| Method 2: | Entering a Client ID number in the text field will populate the %ClientId$ variable, filtering the data by Client ID, as illustrated below.            | 
If you want to suppress the table header or limit the number of records returned, add the optional parameters to the options string passed to the PlusQryTable routine as follows:
PlusQryTable('INV_QRY', 'mytbl', null, 'lib=app.en&header=no&limit=3')