| VAR_ADD_BY_SQL | VAR_ADD_BY_SQL = {{!SELECT s.id AS ...| Specific values read from the database to fill the system store during QFQ |
| | | load. See `VariablesAddBySql`_ for a usecase. |
| FILL_STORE_SYSTEM_BY_SQL | FILL_STORE_SYSTEM_BY_SQL = {{!SELECT s.id AS ...| Specific values read from the database to fill the system store during QFQ |
| | | load. See `fillStoreSystemBySql`_ for a usecase. |
* *sqlBefore*: always fired (before any *sqlInsert*, *sqlUpdate*, ..)
* *sqlInsert*: fired if *slaveId* == `0` or *slaveId* == `''`.
* *sqlUpdate*: fired if *slaveId* > `0`.
* *sqlDelete*: fired if *slaveId* > `0`, after *sqlInsert* or *sqlUpdate*. Be carefull not to delete filled records!
* *sqlDelete*: fired if *slaveId* > `0`, after *sqlInsert* or *sqlUpdate*. Be careful not to delete filled records!
Always add a check, if values given, not to delete the record! *sqlHonorFormElements* helps to skip such checks.
* *sqlAfter*: always fired (after *sqlInsert*, *sqlUpdate* or *sqlDelete*).
* *sqlHonorFormElements*: list of *FormElement* names (this parameter is optional).
...
...
@@ -4262,19 +4268,13 @@ FAQ
Report
======
The QFQ extension is activated through tt-content records. One or more tt-content records per page are necessary to render
*forms* and *reports*.
QFQ content element
-------------------
QFQ is used by configuring Typo3 content elements. Insert one or more QFQ content elements on a Typo3 page.
Specify column and language per content record as wished.
The title of the QFQ content element will not be rendered. It's only visible in the backend for orientation.
The QFQ extension is activated through tt-content records. One or more tt-content records per page are necessary to render
*forms* and *reports*. Specify column and language per content record as wished.
General
-------
The title of the QFQ content element will not be rendered. It's only visible in the backend for orientation of the webmaster.
To display a report on any given TYPO3 page, create a content element of type 'QFQ Element' (plugin) on that page.
...
...
@@ -4323,15 +4323,18 @@ Syntax of `report`
For **each** row of a query (this means *all* queries), all subqueries will be fired once.
* E.g. if the outer query selects 5 rows, and a nested query always select 3 rows, than the total number of rows are 5 x 3 = 15 rows.
* E.g. if the outer query selects 5 rows, and a nested query select 3 rows, than the total number of rows are 5 x 3 = 15 rows.
There is a set of **variables** that will get replaced before the SQL-Query gets executed:
Column values of the recent rows: {{<level>.<columnname>}}
Variables from specific stores: {{<name>[:<store/s>[:...]]}}
Global variables: {{global.<name>}}
STORE_RECORD is automatically merged with the existing STORE_RECORD content and the current row. Use the STORE_RECORD
to access outer level values.
Variables from specific stores: {{<name>[:<store/s>[:<sanitize class>]]}}
Column values of a given row: {{<level>.<columnname>}}
Global variables: {{global.<name>}}
Current row index: {{<level>.line.count}}
...
...
@@ -4344,18 +4347,17 @@ Syntax of `report`
Be aware that line.count / line.total have to be known before the query is fired. E.g. `10.sql = SELECT {{10.line.count}}, ... WHERE {{10.line.count}} = ...`
won't work as expected. `{{10.line.count}}` can't be replaced before the query is fired, but will be replaced during processing the result!
Different types of SQL queries are possible: SELECT, INSERT, UPDATE, DELETE, SHOW
Only SELECT and SHOW queries will fire subqueries.
* Processing of the resulting rows and columns:
Processing of the resulting rows and columns:
* In general, all columns of all rows will be printed out sequentially.
On a per column base, printing of columns can be suppressed. This might be useful to select values which will be
accessed later on in another query via the {{level.columnname}} variable. To suppress printing of a column, use a
underscore as column name prefix.
* On a per column base, printing of columns can be suppressed by starting the columnname with an underscore '_'. E.g. `SELECT id AS _id`.
This might be useful to store values, which will be used later on in another query via the `{{id:R}}` or `{{level.columnname}}` variable. To suppress printing of a column, use a
underscore as column name prefix. E.g. `SELECT id AS _id`
Reserved column names have a special meaning and will be processed in a special way. See `Processing of columns in the SQL result`_ for details.
...
...
@@ -4966,7 +4968,7 @@ is allowed to access: ::
page.10.value = Please access from localhost or log in as 'admin' user.
[global]
..
.. _column_pageX:
Columns: _page[X]
^^^^^^^^^^^^^^^^^
...
...
@@ -5034,6 +5036,8 @@ The colum name is composed of the string *page* and a trailing character to spec