Table Designer User Interface
When the Table designer is first opened on a new design the editor will look as follows:
This editor has five main areas.
The Design surface
The Output area
The Feature List Panel
The Property Panel
The DataSource Panel
The Design surface
This area allows a User to build up a table design. A Table design is comprised of a Table, Rows, Columns, Cells and Cell Elements.
The user can interact with this area to add new elements, such as rows and columns. They can create cell elements by dragging Features from the Feature List Panel and dropping them into a cell.
Adding and Removing Rows and Columns
Mouse click on a column or row to select it. When focused, it is possible to add columns and rows via the toolbar and also to delete rows or columns.
Insert column to the left
Insert column to the right
Insert row above
Insert row below
Delete column
Delete row
Splitting and merging cells
Mouse click on a cell to select it. When focused, it is possible to split a cell vertically or horizontally via the toolbar.
Split a cell horizontally
Split a cell vertically
To merge a cell, first select the cell you wish to remain after the merge, then control select the other cell. When both selected, it is possible to merge the cells via the toolbar.
Merge two cells
When a cell has been split vertically or horizontally it is not possible to delete the row or column containing the split cell. If delete of split cells is to be done the split cells can be merged – the cell to keep is selected and push CTRL + select the cell to merge (delete), selecting merge will merge the cells keeping the first cell and deleting the last cell. After merging all split cells the column/row can be deleted.
Working with a Cell Type
It is possible to alter a cell’s type via the context menu.
A Cell can have four types
Static (Blue)
Value (White)
Dynamic (Green)
Crossed (Red)
A static cell is a cell that does not project its values in a direction. They are all laid out into a single cell.
The typical purpose of a static cell is to output captions or static values that are not expected to project into multiple values.
A value cell is a cell that projects its values in a direction. The results of the projection get a row each.
A dynamic cell is a cell that projects features in a direction. The features are retrieved through a ‘Feature Feature’ or an expression.
Dynamic cells are discussed later in their own section.
A crossed cell is treated exactly the same as a Value cell.
Working with Cell Direction
A Cell direction can by altered for a cell through the context menu. Cell direction is appropriate for Value and Dynamic cells. The cell direction is the direction that values will be projected into the output results.
Working with Element Property
Cells Element can have the following properties:
Value
The default value of the feature of the element
Caption
The Caption of the feature of the element
Caption Alternative
The Caption Alternative of the feature of the element
Name
The unique name of the feature of the element
Unit
The Unit of the feature of the element
Abbr
The Abbreviation of the feature of the element
Variant
The variant value for the feature of the element. This is typically a remote value that has variant values. The variant is also normally formatted with an expression : @FormatVariantTitle({Value}|)
A Cell Elements property type can be changed via the context menu.
Adding Special Cell Values
It is possible to add the following special Cell Element types via the context menu:
Static Value
Some static text, the value of the static text can be altered via the property grid for the Cell Element.
Item Value
A Base Value for the rows of the primary data source.
Dynamic Value
Projects the value of a Dynamic Cell in a direction.
Working with Cell Output Merge
Cell Output Merge is a context menu option that merges cells together under certain situations. The merge is only a visual one, and as such is only shown in Internal Reporting with the PerfionTable control. The InBetween output is not affected by this directive.
The options for Cell Output Merge are:
None
Within Group
Beyond Group
Consider the following design and output:
Material, WeightKG and DishwasherSafe have been set with Cell Output Merge as None. This tells the rendering engine not to merge cells. The effect of this is that Material entries are repeated. Changing Material to Within Group will affect the output to:
If DishwasherSafe is changed to Within Group, then there is no change to the output. This is because the DishwasherSafe Set are grouped against each WeightKG. So, the groups in this case only end up with one value for each.
If we change DishwasherSafe to Beyond Group, then the values will be merged together as such:
The Output area
This area shows rendered output of the table. Pressing F5 or the refresh button will render the table to the output area.
The Data Source Panel
The queries that provide data to the table are configured through the data source panel.
All the queries for the table are listed by name in this panel.
Through a context menu it is possible to edit and add new queries.
Establishing a Primary query
By default table designer will setup a primary query for you. However, it is necessary to check the query that it makes to be sure you are only querying the exact data you need and not more or less.
If you right-click on “Primary” in the data source panel, you can choose “edit” and then you will be presented with the API Query tool.
The example above is showing a context specific query. It is context specific because it is using a variable @CURRENT.ID so that it is specific to the point where the table is being referenced.
The variables available are as follows:
@LANGUAGES | The languages selected by the user when running a report |
@CURRENT.ID | The Item ID of the Row where the table is used |
@CURRENT.ParentID | The Parent ID of the row where the table is used |
@RELATED.ID | When a table is used on the right hand side, the related ID is the ID of row of the categorizing item. |
@RELATED.ParentID | When a table is used on the right hand side, the related ParentID is the id of the parent row of the categorizing item. |
Pressing F5 in the API Query tool will show the query results. Pressing OK, will save the query into the data source.
See the Perfion API for a full description of the query language.
The focused data source item is the active data source. The Feature List Panel will update to reflect the available features in the selected data source. After editing a query it is necessary to press F5 to refresh the data and the features in the Feature List Panel.
The Feature List Panel
The shows all the available features for the selected data source. Features can be dragged into cells on the table design surface.
When there are many features, it is useful to narrow the choice by entering a name or ID into the Feature filter that is available at the bottom of the list.
The Property List Panel
The property list panel displays the properties for the elements of the table design that are currently focused.
Cells that have focus in the table design area are indicated by a blue border:
When a column or row is focused, there is not a visible border drawn. However, the property for the column or row are shown in the property list panel.
Table Properties
ColumnsToRepeat | Not used |
Height | The forced height of the table in milliliters |
Name | This name of the table. The name of the table is available in the InBetween Table XML output |
RowsToRepeat | Header Mechanism; Used by PerfionTable in internal reporting. When a page is thrown, then the table on the subsequent page will start by repeating a number of rows from the result. |
SearchFeature | Not Used |
Style | Name of the style that is applied to the table. |
Width | The forced width of the table in millimeters. |
Column Properties
Collapse | Property that controls when a column is removed from the visual output. The choices are Never – No effect WhenEmpty – Will remove the column when there are no values in it Always – Will remove the column regardless of the values in it. |
Style | Name of the style that is applied to this column. |
Width | Set a fixed with for the column. The default is blank which indicates that the columns width is auto calculated. |
Row Properties
Collapse | Property that controls when a row is removed from the visual output. The choices are Never – No effect WhenEmpty – Will remove the row when there are no values in it Always – Will remove the row regardless of the values in it. |
Height | Set a fixed height for the row. The default is blank which indicates that the rows height is auto calculated. |
Style | Name of the style that is applied to this row. |
Cell Properties
CellMerge | Directive that controls how results can be merged together in the visual output The choices are None WithinGroup BeyondGroup |
FeatureFeatures | The Feature ID of the element in the cell that is generating dynamic features. The cell must be of type dynamic: This property is deprecated and the FeatureList property should be used instead. |
FeatureList | If FeatureList is used then FeatureFeatures should be blank. 110,114 This resolves to features 110 (Engine power) and 114 (Acceleration) in the demo database. @FEATURES( id or name ) @FEATURES( 145 ) @FEATURES( S.145 ) @LIST The resolves to a list of all features that are available across the data source. @GROUP( infoGroupID ) This resolved to all features on an infogroup that have data. @SHARED This resolves a list of features that contain only common values across the data source. Feature Subtractions Features can be remove from the results of a function by using the minus delimiter @GROUP(6dac7e5a-769f-40db-99a7-305b7404edd3)-104,110 @LIST-@SHARED,165,148 |
FeatureListOrder | Not used |
FlowDirection | The direction that the cell will project results into the output |
Orders | Order by feature value. Scenarios for a cell outputting a products ItemNumber: 104.Order.Asc Sort ItemNumbers by the order on products imposed by Section. 100.Value.Desc Sort ItemNumber by the Products name in a descending order
Sorting is normally applied to the first cell in a column/row and controls the overall sorting. Sorting can be done using any feature in the features available. When sorting on other cell than first in column/row the sorting specified is only applied to possible several values within the cell; i.e. if first cell has two values in second cell for a first cell value it is only the two second cell values which are sorted. |
Style | Name of the style that is applied to this Cell. |
Cell Element Properties
DataSource | The datasource name associated with the element |
ElementType | Values can be Feature or Static. Reference is not supported |
Expression | See expressions factsheet for details |
FeatureID | Feature ID or feature name can be entered. This is identified the feature that will be projected from the table cell. |
LangIndex | When multiple languages are included be reporting, entering a zero based index here will scope the language. For example 0 will take the first language. |
Property | Values can be Value, Caption, Caption Alternative, Name, Unit and Abbr. This property identifies what aspect of the feature that should be projected into the output. |
ImageFit | Details the sizing algorithm for the Image. Choices are: Exact Fit Crop Smart This is only present for image features. |
ImageHeight | Fixed height in millimeters. This is only present for image features. |
ImageWidth | Fixed width in millimeters This is only present for image features. |
Style | Name of the style that is applied to the Cell Element. |