Difference between revisions of "Report Options"

From Lianjapedia
Redirect page
Jump to: navigation, search
(Redirected page to Lianja 5 Report Options)
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
''Under Construction''
+
#REDIRECT [[Lianja 5 Report Options]]
  
 
==See Also==
 
==See Also==
[[Report Section Attributes]]
+
[[Developing Quick Reports]], [[Report Section Attributes]]
  
 
==Overview==
 
==Overview==
 +
[[{{ns:file}}:report_web.png|450px|thumb|left|link={{filepath:report_web.png}}|Report Section in Lianja Web Client]]
 +
 +
 +
 +
 +
Report Sections are used to display tabular reports.
 +
 +
<br clear=all>
 +
 +
==Lianja Web UI Demo==
 +
[[{{ns:file}}:report1.png|450px|thumb|left|link={{filepath:report1.png}}|example_webapp2 App]]
 +
 +
 +
 +
 +
The 'Lianja Web UI Demo' (example_webapp2) is included in the Lianja App Builder distribution.
 +
 +
<br clear=all>
 +
 +
[[{{ns:file}}:report2.png|450px|thumb|left|link={{filepath:report2.png}}|example_webapp2 App]]
 +
 +
 +
 +
 +
It has three full page Report Sections.
 +
 +
<br clear=all>
  
 
==Report options==
 
==Report options==
Line 15: Line 42:
 
Double-click the Section header or click the cog icon to access the Section Attributes.
 
Double-click the Section header or click the cog icon to access the Section Attributes.
  
The Details section at the top of the attributes dialog holds the specification of the '''database''' and '''table'''.
+
<br clear=all>
  
The Report Section options are described here.
+
The Details section at the top of the attributes dialog holds the specification of the '''Database''' and '''Table'''.
  
<br clear=all>
+
If the '''Database''' and '''Table''' are omitted, the ''southwind'' database and the ''example'' table are the default values.
 +
 
 +
Note that the report is based on a single table.  However, this table can be a Virtual Table based on a SQL Select query to local or remote tables.  See [[:Category:Third Party Database Connectivity|here]] for information on Virtual Tables.
 +
 
 +
 
 +
The Report Section options are described here:
  
 
===Report type===
 
===Report type===
Select from a known report type (Tabular)
+
The '''Report type''' attribute specifies the report layout type.  Currently, ''Tabular'' is supported.
  
 
===Heading===
 
===Heading===
The report heading
+
The '''Heading''' attribute specifies text to use as the report heading.
 +
 
 +
e.g.
 +
 
 +
<pre>Client Credit List (over limit)</pre>
 +
 
 +
The '''Heading''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportHeading]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Filter===
 
===Filter===
The filter expression that restricts which records will be included in the report
+
The '''Filter''' attribute specifies a logical expression used to restrict which records will be included in the report.
 +
 
 +
e.g. the ''Clients over credit limit'' report filters on the ''available'' field being less than zero:
 +
 
 +
<pre>available < 0</pre>
 +
 
 +
The '''Filter''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportFilter]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Fields===
 
===Fields===
A comma separated list of field names or expressions (* selects all fields in the table)
+
The '''Fields''' attribute specifies the fields to be included in the report.  This should be a comma separated list of field names or expressions.
 +
 
 +
e.g.
 +
 
 +
<pre>account_no, upper(concat(title," ",first_name,last_name)),limit</pre>
 +
 
 +
or, to select all fields in the table as in the example_webapp2 reports:
 +
 
 +
<pre>*</pre>
 +
 
 +
The '''Fields''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportFields]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Columns===
 
===Columns===
A comma separated list of column positions from the fields selected, e.g. 2,4,7,1
+
The '''Columns''' attribute specifies the column positions for the selected fields in the report.  This should be a comma separated list of numeric column positions.  If '''Columns''' is left blank, all fields are displayed and in the same order as in the '''Fields''' attribute.
 +
 
 +
e.g. the ''Clients over credit limit'' report omits field 1 (example.account_no) from the display and swaps the order of fields 3 (example.first_name) and 4 (example.last_name).
 +
 
 +
<pre>2,4,3,5,6,7,8,9,10,11</pre>
 +
 
 +
The '''Columns''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportColumns]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Column headings===
 
===Column headings===
A comma separated list of report column headings
+
The '''Column headings''' attribute specifies the text to be used as the report column headings.  This should be a comma separated list of text strings.
 +
 
 +
If '''Column headings''' is left blank, the descriptions from the fields in the table are used.  Unless '''Fields''' is '''*''', the '''Column headings''' should be entered to match the chosen field selection and order.
 +
 
 +
e.g. if '''Fields''' is:
 +
 
 +
<pre>account_no, upper(concat(title," ",first_name,last_name)),limit</pre>
 +
 
 +
then '''Column headings''' is:
 +
 
 +
<pre>Account,Fullname,Credit Limit</pre>
 +
 
 +
The '''Column headings''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportColumnHeadings]] or [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportHeadings]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Subtotals===
 
===Subtotals===
A comma separated list of column positions from the fields selected to subtotal on
+
The '''Subtotals''' attribute specifies the columns in the report to be sub-totalled.  This should be a comma separated list of numeric column positions of numeric fields.
 +
 
 +
e.g.
 +
 
 +
<pre>9,10,11</pre>
 +
 
 +
The '''Subtotals''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportSubTotals]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Group by===
 
===Group by===
The field name or expression that data will be grouped by for sub totalling
+
The '''Group by''' attribute specifies the name of the field or the expression that the report data will be grouped by for sub-totalling.
 +
 
 +
e.g.
 +
 
 +
<pre>state</pre>
 +
 
 +
The '''Group by''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportGroupBy]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Hyperlinks===
 
===Hyperlinks===
A comma separated list of field names to render as hyperlinks for searching
+
The '''Hyperlinks''' attribute specifies the field or fields that will be rendered as hyperlinks for searching.  This should be a comma separated list of field names.
 +
 
 +
The '''Hyperlinks''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportHyperlink]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Show grid lines===
 
===Show grid lines===
Show grid lines for each row of the report (True &#124; False).
+
The '''Show grid lines''' attribute specifies whether grid lines should be displayed for each row of the report (True &#124; False). Grid lines are currently always shown.
 +
 
 +
The '''Show grid lines''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportGridLines]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
  
 
===Pagination===
 
===Pagination===
Paginate the rows displayed (True &#124; False).
+
The '''Pagination''' attribute specifies whether the rows displayed should be paginated (True &#124; False).
 +
 
 +
Pagination is not currently implemented.
  
 
===Pagination size===
 
===Pagination size===
The number of rows to paginate
+
The '''Pagination size''' attribute specifies the number of rows to display per page.
 +
 
 +
Pagination is not currently implemented.
  
 
===Other options===
 
===Other options===
Other report options
+
The '''Other report options''' attribute specifies additional option=value pairs to be passed to the report.  These should be specified as an ampersand (&) separated list.
 +
 
 +
Note: to access these options within library:/report.rsp, add a getParameter() for each additional option.
 +
 
 +
If 'Other options' is set to:
 +
 
 +
username={username()}&myparam=some text
 +
 
 +
Library:/report.rsp should include:
 +
 
 +
private username = getParameter("username","")
 +
 +
private myparam = getParameter("myparam","")
 +
 
 +
The '''Other options''' attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportOtherOptions]].
 +
 
 +
[[#Notes on Client Support|Notes on Client Support]]
 +
 
 +
==Delegate Behavior==
 +
 
 +
===Delegate hyperlinks===
 +
Delegate hyperlinks in page to page and/or section (True &#124; False).
 +
 
 +
===Delegate page===
 +
Delegate page name to search (leave blank if current page).
 +
 
 +
===Delegate section===
 +
Delegate section name (leave blank if default searchkey section on page).
 +
 
 +
===Delegate script===
 +
Delegate script name (URL is passed as character string).
  
 
==Notes on Client Support==
 
==Notes on Client Support==
Line 68: Line 208:
 
|valign="top"|Report type||-
 
|valign="top"|Report type||-
 
|-
 
|-
|valign="top"|Heading||-
+
|valign="top"|Heading||Lianja.getElementByID("page.section").reportHeading is exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Filter||-
+
|valign="top"|Filter||Lianja.getElementByID("page.section").reportFilter is exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Fields||-
+
|valign="top"|Fields||Lianja.getElementByID("page.section").reportFields is exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Columns||-
+
|valign="top"|Columns||Lianja.getElementByID("page.section").reportColumns is exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Column headings||-
+
|valign="top"|Column headings||Lianja.getElementByID("page.section").reportColumnHeadings and Lianja.getElementByID("page.section").reportHeadings are exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Subtotals||-
+
|valign="top"|Subtotals||Lianja.getElementByID("page.section").reportSubTotals is exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Group by||-
+
|valign="top"|Group by||Lianja.getElementByID("page.section").reportGroupBy is exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Hyperlinks||-
+
|valign="top"|Hyperlinks||Lianja.getElementByID("page.section").reportHyperlink is exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Show grid lines||-
+
|valign="top"|Show grid lines||Grid lines are currently always shown.<br>Lianja.getElementByID("page.section").reportGridLines is exposed on the Desktop client only (Lianja/VFP).
 
|-
 
|-
|valign="top"|Pagination||-
+
|valign="top"|Pagination||Pagination is not currently implemented.
 
|-
 
|-
|valign="top"|Pagination size||-
+
|valign="top"|Pagination size||Pagination is not currently implemented.
 
|-
 
|-
|valign="top"|Other options||-
+
|valign="top"|Other options||Lianja.getElementByID("page.section").reportOtherOptions is exposed on the Desktop client only (Lianja/VFP).
 +
|-
 +
|valign="top"|Delegate hyperlinks||
 +
|-
 +
|valign="top"|Delegate page||
 +
|-
 +
|valign="top"|Delegate section||
 +
|-
 +
|valign="top"|Delegate script||
 
|-
 
|-
 
|}
 
|}
 +
 +
==report.rsp==
 +
The rsp Lianja Server Page script (report.rsp) used by the Report Section WebViewWidget is located in the Lianja Library directory.
 +
 +
{| class="wikitable" width="100%"
 +
!width="20%"|Client||Location
 +
|-
 +
|valign="top"|App Builder||\lianja\library\
 +
|-
 +
|valign="top"|App Center||\lianja\cloudserver\tenants\public\library
 +
|-
 +
|valign="top"|Web/Mobile Clients||\lianja\cloudserver\tenants\public\wwwroot\library
 +
|-
 +
|}
 +
 +
It can be customized if required, but proceed with caution, as the modifications will apply to all Report Sections and will be overwritten by product upgrades.
 +
 +
Alternatively, report.rsp could be used as a template for your own rsp and specified as the URL/source for a WebView Section.
 +
 +
The Reports in the 'Lianja Demo' (lianjademo) App use ''quickreport.rsp'' in this way, e.g. the ''Report overdue payments'' report:
 +
 +
<pre>URL:quickreport.rsp?database=southwind&table=example&fields=*&groupby=state
 +
    &filter=available<0&heading=Customer Credit List (over limit)
 +
    &columns=2,4,3,5,6,7,8,9,10,11,12&subtotals=9,10,11&gridlines=true</pre>
 +
 +
==Reporting Alternatives==
 +
The Lianja ODBC Driver, in conjunction with the Lianja SQL Server, can be used with third party report writers such as Crystal Reports or Microsoft Report Builder.
  
 
[[Category:Attribute Categories]]
 
[[Category:Attribute Categories]]
 +
[[Category:Sections]]

Revision as of 08:50, 6 December 2019