Difference between revisions of "Report Options"
From Lianjapedia
Redirect page
Yvonne.milne (Talk | contribs) |
Yvonne.milne (Talk | contribs) (Redirected page to Lianja 5 Report Options) |
||
(21 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | #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. | ||
− | + | <br clear=all> | |
− | The | + | 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=== | ||
− | + | 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. |
− | The Heading attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportHeading]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
===Filter=== | ===Filter=== | ||
− | The | + | 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]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
===Fields=== | ===Fields=== | ||
− | + | The '''Fields''' attribute specifies the fields to be included in the report. This should be a comma separated list of field names or expressions. | |
− | The Fields attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportFields]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
+ | |||
===Columns=== | ===Columns=== | ||
− | + | 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]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
===Column headings=== | ===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. | |
− | 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]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
===Subtotals=== | ===Subtotals=== | ||
− | + | 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. | |
− | The Subtotals attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportSubTotals]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
+ | |||
===Group by=== | ===Group by=== | ||
− | The | + | 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]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
===Hyperlinks=== | ===Hyperlinks=== | ||
− | + | 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]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
===Show grid lines=== | ===Show grid lines=== | ||
− | Show grid lines for each row of the report (True | False). | + | The '''Show grid lines''' attribute specifies whether grid lines should be displayed for each row of the report (True | 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]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
===Pagination=== | ===Pagination=== | ||
− | + | The '''Pagination''' attribute specifies whether the rows displayed should be paginated (True | False). | |
+ | |||
+ | Pagination is not currently implemented. | ||
===Pagination size=== | ===Pagination size=== | ||
− | The number of rows to | + | 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. |
− | The Other options attribute can be queried or changed programmatically using [[Working with the Lianja Object Model|Lianja.getElementByID("page.section").reportOtherOptions]]. | + | 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]] | [[#Notes on Client Support|Notes on Client Support]] | ||
+ | |||
+ | ==Delegate Behavior== | ||
+ | |||
+ | ===Delegate hyperlinks=== | ||
+ | Delegate hyperlinks in page to page and/or section (True | 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 122: | Line 224: | ||
|valign="top"|Hyperlinks||Lianja.getElementByID("page.section").reportHyperlink is exposed on the Desktop client only (Lianja/VFP). | |valign="top"|Hyperlinks||Lianja.getElementByID("page.section").reportHyperlink is exposed on the Desktop client only (Lianja/VFP). | ||
|- | |- | ||
− | |valign="top"|Show grid lines||Lianja.getElementByID("page.section").reportGridLines is exposed on the Desktop client only (Lianja/VFP). | + | |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||Lianja.getElementByID("page.section").reportOtherOptions is exposed on the Desktop client only (Lianja/VFP). | |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]] |