Difference between revisions of "Report Options"

From Lianjapedia
Redirect page
Jump to: navigation, search
(Redirected page to Lianja 5 Report Options)
(24 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==
 +
 +
[[{{ns:file}}:report_options.png|450px|thumb|left|link={{filepath:report_options.png}}|Report Section options]]
 +
 +
 +
 +
 +
Double-click the Section header or click the cog icon to access the Section Attributes.
 +
 +
<br clear=all>
 +
 +
The Details section at the top of the attributes dialog holds the specification of the '''Database''' and '''Table'''.
 +
 +
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 55: 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