- Created by Lango: Language and translation manager on Aug 28, 2024
-
Translations
You are viewing an old version of this content. View the current version.
Compare with Current View Version History
Version 1 Current »
Difficulty: novice
Content
Learning Objectives
After reading this article, you’ll be able to:
Create new report
Understand and make some changes to reports
Set the general settings
Add totals/sorting to reports
Basics
If you have not read the articles under Reporting basics be sure to check those out beforehand. In this article we will go over some of the basics and go more into detail.
A report consists out of three components:
The report definition (NB: objectReport): here the report settings are made and the other two report components are linked (the filter and list page)
The filter page: the filtering determined what results are displayed
The list page: on the list page we determine what fields should be shown when running the report
Creating a new report
Navigate to the reports module in the navigationmenu.
Click on ‘Folder’
Click on the folder in which you want to create the report. The name of that folder is now highlighted. The report can easily be moved to another folder at a later stage.
Click: new report
What you have now created is an empty report. We first have to give it a name using Languages and translation strings. After that we can decide the filters which will be explained using an example.
Note: Alternatively REPORTS > Reports > new report can be used. We do not advise this becaeue than the report is not linked to a folder making it more difficult to find.
Example: create a report that searches for all cars
Before adding any filters or list items you have to decide what the main object of your report will be. The first field you add to the filter and list page should ALWAYS be from the same object.
In this example we want to see the number of cars per property. The car will be the main object and since car are added as asset, we add fields from the Asset object as filtering.
This is the main object since 1 car (1 Asset) only has 1 property linked to it. While 1 property has multiple cars that could be linked to it. So by using the asset as the main object we make sure we know for each car what property is linked to it (in the propertyId field).
Create filter page
To create the filter page, click add filter:
First select the object we want to filter on: “Asset” > Search
Select asset in the list of results > OK
Now al the fields of the object ‘Assets’ are shown. Select the fields that you want to show on the filter page. In this example, we select: categoryFolderId, propertyId, purchaseDate > now click 'Ok' to add the fields.
The filterpage is now automatically created (the name of the page is based on the report reference). The filter fields are shown at the bottom of the report.
When you want to add more fields, repeat the steps above.
If you want to delete a field: select the field in the ‘Filter fields’ include > Selection > Delete selected objects
Create list page
These steps are pretty much the same as for creating the filter page:
To create the list page, click add field.
First select the object we want to show: “Asset” > Search
Select asset from the list of results > Ok
Now al the fields of the object ‘Assets’ are shown. Select the fields that you want to show on the filter page. For this example we select: propertyId, reference, name, puchaseDate, originalValue, and description > now click 'Ok' to add the fields.
The list page is then automatically created after adding the fields. The list fields are shown at the bottom of the report.
When you want to add more fields, repeat the steps above.
If you want to delete a field: select the field in the ‘Page fields’ include > Selection > Delete selected objects
Keep in mind: you can use the filterbox on the top right of the page when selecting fields (step 4. of the description above). However, before clicking ‘Ok’ make sure that you empty the filter box on the top right. Only the fields that are visible will be added to the report!

Changing the order of the fields
After adding all the filter and list fields you can change the order of the fields. To do this simply change the values in “row” and “Col” (see screenshot).
We advise to use tens (so 10, 20, 30). This make it easy to insert additional fields at a later stage.

View the report
The report is now created. To view it click: “view”. To see all the cars we have to fill in Car in the Category drop down.
Keep reading this article to find out how you can optimize your report.

Filter and show field from objects than the main object
Until now all the filter field that we added where from the main object (Asset). It is however, also possible to filter other objects. The logic behind this is fairly easy to understand.
Before you can add fields from another object, you first need to setup the proper link to that object using an id-field. After that you can add fields from other objects. This is easiest to understand by looking at these example:
Example 1 (filter):
The main object is ‘Asset’
After adding the field asset.propertyId a link is made to the property object.
So now you can add a filter field from the property object. In this case the property.ownerContactId.
This added filters now, not only allow you to find cars that are linked to a certain property. But also filter on properties that are owned by a specific contact.

Example 2 (list page):
The same logic that goes for the filter pages also applies for your list page
The main object is ‘Request’
After adding the field request.fromContactId, a link exists to the Contact object. So you can now add a field from the Contact object.
In this example, the cost center and phone number of the from contact of the request are shown

Copy and change an existing report
When creating reports you can use an existing reports. We often choose a report that partially shows what we already want to see and add on to that.
Both client specific and baseline reports can be copied.
Baseline reports always need to be copied to be able to make changes to it.
To change an existing report we first have to make a copy of it. To copy the report click the copy button at the top right.

Operators
For each filter that is added to the report we can change the operator. Operators are characters that represent a specific action or process. In Workplace Management operators are mainly used for reporting purposes.
Most operators like =, >, <, are fairly straightforward. We can compare two dates or characters. The ones that need more explanation are discussed in this section
![]() | = Equals =| Pipe equal operator (see additional explanation below) < Smaller than <= Smaller or equal to <> Not equal >= Bigger or equal to > Bigger than = (exact) Equals exactly Set and Special are not used in reporting. |
!= Pipe operator
=| Pipe operator: The pipe operator is easily explained by using an example. When we use the pipe operator we look for objects that are either equal, or have sub-objects that are equal.
Take a problemtree for example with problemtype-1.0 Facility request and problemtype 1.1 Coffee machine. Problemtype 1.1 has a parent: problemtype-1, say we are looking for all requests that are within problemtype-1 the operator will look like this:
![]() | ![]() |
This will return all the requests that are either problemtype 1.0, 1.1 and every other problemtype that has 1.0 as a parent problemtype.
Adding the same filterfield twice
Using operators on date fields: In the screenshot below the field startDate is added twice as a filter, but with differente operators. This allows a user to for example search for reservation that started within a specific time span.

Contains, not contains, Starts, Ends, Matches
When using any of the operators Contains, not contains, Starts, Ends or Matches we assume to be comparing a set of characters. Contains can be compared to the = operator. When looking for names typing in “Spacew”, will result in finding the organisation “Spacewell”.
This works when using contains, =, Starts and Matches.
= (exact): When looking for names using the = (exact) operator only returns the names that are exactly equal. When looking for “Spacew” the report will not return organisation “Spacewell”.
A default operator that is very often used is for the field: closeTime. When this field is filled in it means the object that you are looking for is closed (Requests, reservations etc.). When we use this field with the operator “Empty” we only look for those objects that are not yet closed.
Hide operator
An operator can be hidden in case you don’t want users to be able to change the operator.
click on the magnifying glas of the filterfield in the ‘Filter field’ include
Change the setiting “Visible = no'

AND / OR logic
By default the operator AND is set when adding a filter field. This makes sure that all filter values are met when running the report.
When using the option ‘Or’ multiple values in the same field are allowed. In the example below, defaults are set on the categoryFolderId field (default are also explained in this article).
So when running this report, assets with the category ‘Car’ (row 10) or with the category ‘Car training' (row 20) will be returned.
If the ‘And’ operator would have been used on row 20, the report would not return any results, because an asset cannot have the category ‘Car’ AND the category ‘Car training'. An asset only has one value set in the field 'categoryFolderId’

Set default values
In reports we can set default values:
To make your reports easier to execute
To use a report as a list on a page
Fixed value
When we look for a a assets within a specific category we can set the category by default:
Navigate to the ‘categoryFolderId’ filter by clicking on the magnifying glass in the ‘Filter field’ include
Click: Set default
Select the default value in the drop down
Save and return
To delete click ‘'Delete default. Changing the field ‘Value’ to empty does not delete the default and can cause to unexpected report result! So always make sure to use 'Delete default’.
Initialization value
When we want to set default dynamic values, like dates or user contacts we use initialization scripts. This works in the same way. We use these when we for example look for all requests that have been created today.
Navigate to the category filter
Click: Set default
Select the default value in the drop down
Select the Value, 0 means today +/- 0 days (So the date of today at 00:00). When you change the value to 1 the date will be changed to tomorrow at 00:00.
Save and return
To delete click ‘'Delete default. Changing the field ‘Value’ to empty does not delete the default and can cause to unexpected report result! So always make sure to use 'Delete default’.
About the initialization scripts
The available initialization scripts are mostly self-explanatory.
All script are selectable for all fields, but not all scripts will work of course. You can, for example, apply the ‘Today (+/- days) script to the categoryFolderId field, but that won’t work. Initialization script regarding date/ time only work for date/ time fields like startDate, approveDate, and cancelDate.
Hiding filters
When setting default values we can hide these filters. Since there is already a default value set, the user does not need to see the filter anymore. When all filters are set by default and hidden the user will be shown a list. To hide a filter:
Open the filter field using the magnifying glass
Set 'Filter = Hidden'
Save and return
This setting is also available via the filter include in the report overview:

Sorting
After you have created a report or changed an existing report we are still able to change some of the basic settings. For explaining the sorting, we will continue with the Asset report we created earlier in this article.

Default sorting order
By default, results are sorted based on the first column in the list. So if reference is the first column in your list page, the results will be sorted based on their reference.
Change sorting
We can change this by referring to field (left example) or column (right example). Do not combine these two options. Use either the fields or the column numbers.
A maximum of 3 sorting columns can be defined. This for example allows you to first sort on property, and then on reference.
![]() We can directly link the sorting to a specific field from the result list. This method is best practice | ![]() We can also define a column from the result list. So if ‘Name’ is the third column, set 3 as 'Sort column 1. |
When the ‘sorting column 1 = propertyId’ and ‘sorting column 2 = reference’ the report would look like this:

Although the sorting now makes sense, say we want to see the total car prices per property. Keep reading!
Subtotals
To be able to represent the car prices we have to use subtotals.
1. Because subtotals work together with sorting we first define our SORTING to be based on propertyId.
2. When this is done change the setting subtotals 1 = yes.

3. Then we define what subtotals we want to see, in this case the originalValue. To configure this find the field in the ‘Page fields' include’and set the “Totals = Sum”.
Info: aside from the sum we could also decide to show the average, maximum, minimum and many others.

4. The results will come out like this:

Collapse/ expand and bold totals
In this example we only want to know the total price per property, to do so we can change the sub totals field to: “Collapsed level 1” and for good measure we set the Totals style to bold.
When we set the sub totals to Collapsed level 1, the user is always able to see the full list by clicking on expand.
![]() In the subtotals we can also decide the subtotals look, these can also be set to: Normal, bold or suppressed (suppressing the subtotal all together). | ![]() |
Object counter
Aside from using existing fields to sum up we could also be interested in the amount of cars per property, this is not a field that is readily available. To do this we use a field called: objectCounter. Up until this point we used fields from the object Asset only, the objectCounter however is a field on the Client object.
Info: The objectCounter can be used for any object, in all cases the field comes from the client object as shown below.
We add a field like we normally would:
Click ‘Add field’
First select the object “client” > Search
Select ‘Client’ from the list of results > Ok
Select the field ‘objectCounter’ > Ok
the field client.objectCounter is now added to the include ‘Page fields’include
In this include, set the totals column to sum (same as for the originalValue)
The finished report will then look like this:
![]() | ![]() |
Other settings
In the table below we go over some other general settings that can be set in reports.
Field | Description |
---|---|
Section | This specifies the section (which top or side menu) the report belongs to. |
Concerns | The section object. |
Maximum find | Maximum number of rows that the filter page may find. If more rows are found an error message is displayed. The number is determined before filtering on access rights. F.e. searching all request would not show all request for every user (because of limited access per user) but might still throw an error when searching since the total amount of requests is used. This field is often used as a security measure. |
File name | The JSP file name or Java class that is used to generate the report. |
Report script | A report script allows to create the report in an Axxerion Script. The script determines the contents of the report. |
Logging | Whether or not to turn on logging for the current report. If logging is turned on, then all views of the report data will be logged as object history items. |
Hyperlinks | Whether hyperlinks should be shown for the first column of the report. |
Empty filter | If not legal values have been set for a filter, then this field determines what will happen. The report can show all data (the default behavior) or an empty list. It is also possible to show an error message. |
Pivot | Should the report be displayed as a pivot table? Pivot tables have fixed layouts. |
Heading style | Heading style of pivot table. |
Header formula | The header formula can be made by using the Word template syntax. |
Hide empty rows | Whether or not to hide rows for which all floating point columns have empty values. |
Resorting | Should the report be resorted. When set to yes the user can resort by clicking on the column header. |
Resort column | Column number of the report, that should be used to resort the report before it is being cropped. You must take collapse into account. |
Hierarchy | Hierarchy can be shown as collapsed or expanded. For large hierarchies you can select the option ‘incremental'. In this case the lower level objects are collected after the user has opened a certain level. This reduces the time to display the initial screen. |
Number of rows | Specifies the maximum number of rows that are displayed after sorting. You can create a list of the top ten items. |
Auto select | Setting to specify if items should be opened or not. ‘Single result’ means that auto select is only one row in the list. ‘Always’ means that auto select is done always, even if there is more than one row. |
Cover | You can select a template document here that will be used to create a nice cover page when a PDF is created for the report. |
Cover usage | Specify in which situation the cover page should be used. |
Move a report to another folder
Moving a report to a folder actually means linking the report that folder. The report will also still be linked to the folder it was created in. You can link one report to as many folders as you like.
Linking/ move a report to a folder
Navigate to the folder to which you want to move (of should we say link) the report to
Make sure you click the folder so it is highlighted
Click the little arrow pointing down on the top right of your screen
Click ‘Move to’
In the search screen that now appears type the reference of name of your report > Search
Select the report from the list
OK
The report is now added to the folder

If you are not able to find the report you want to move. First open the report and set the field ‘Section’ to empty. This section acts as a filter.

Unlink/ delete a report from a folder
Info: The objectReport object links a report to a folder | ![]() |
Summary
Search
- No labels