AX1740

Fixed Report component for Axiom forms

Using the Fixed Report component, you can query data from the Axiom Budgeting and Performance Reporting database and display that data in a fixed-row report structure, within an Axiom form. The Fixed Report component can be used to display an income statement or any other report that uses a fixed format, including headers, subheaders, subtotals, and totals.

The Fixed Report component queries the data directly from the database, using the primary table defined in the component properties, and the column and row information defined in the associated data sources. The resulting data is not returned into the spreadsheet source file; it is only returned into the form. This provides a more efficient and performant method of displaying data in an Axiom form, as compared to querying data into the spreadsheet source file and then tagging it for display in a Formatted Grid component.

The Fixed Report component also supports the following reporting features:

  • Drilling: You can optionally enable drilling for the report. Users can drill down any data row in the report, to see the data at a different level of detail.

  • Icons and commands: You can optionally display icons in the report. The icons can be used simply as informational signals, or they can be used to trigger a command or open a designated URL. The icons can be persistent in the report, or they can display on hover only. Conditions can be defined for the icons, so that the icons only display when certain conditions are met.

  • Excel export: You can optionally enable the ability to export the report contents to an Excel spreadsheet.

  • Save-to-database: You can configure a report to allow users to edit certain column values and then save the changed data to the database.

Generally speaking, the Fixed Report component does not support user-definable formatting options. The various components of the report are automatically formatted (such as shading and borders on subtotal and total rows). This default formatting cannot be customized.

Defining a fixed report is a multiple-step process that requires the following:

  • Creation of a FixedReportConfig data source in the spreadsheet that defines the row structure of the report, including headers, subheaders, data row sections, subtotals, and totals. This process may include creation of one or more optional FixedReportSectionConfig data sources, to individually define the rows in a section, as opposed to dynamically generating the rows based on the values in a specified table column.

  • Creation of a FixedReportColumns data source in the spreadsheet that defines the columns to display in the report, as well as various display properties for those columns.

  • Placement and configuration of a Fixed Report component on the Axiom form canvas. The primary table for the query and the overall data filter are defined in the component properties.

How the sections in a Fixed Report component correspond to its various data sources

The Fixed Report component is one of several options that can be used to display reporting data in an Axiom form, along with the Data Grid component and the Formatted Grid component. For more information on the differences between these components and when to use each, see Displaying reporting data in an Axiom form.

NOTE: The Fixed Report component has special update behavior that does not follow the same rules as other form components. If you want the data in the report to change based on changes made to other components, you must be aware of this behavior and design accordingly. For more information, see Update behavior.

Data source tags: FixedReportConfig

A Fixed Report component must have a defined FixedReportConfig data source within the file, to define the row structure of the report. The tags for the data source are as follows:

Primary tag

[FixedReportConfig;DataSourceName]

The DataSourceName identifies this data source so that it can be assigned to a Fixed Report component. (missing or bad snippet)

(missing or bad snippet)

Row tags

[Header]

Each row with this tag defines top-level header text to be displayed in the report column that contains the row labels.

[SubHeader]

Each row with this tag defines sub-header text to be displayed in the report column that contains the row labels.

TIP: If you want to display a subheader for a data row section, it is not necessary to use a separate [Subheader] row tag. Instead, you can define header text on the {DataRowSection] row tag. Header text defined on the [DatarowSection] tag displays directly above the rows in the data section

NOTE: Currently, [Header] and [Subheader] rows use the same formatting. Although you can use subheader rows now, they are mostly intended as a placeholder feature for formatting enhancements in future versions.

[DataRowSection]

Each row with this tag defines a data row section in the report. This section displays one or more data rows.

[SectionSubTotal]

Each row with this tag defines a subtotal row for an adjacent data row section. The calculation is based on the data rows in the section. By default, [SectionSubTotal] rows are placed directly underneath [DataRowSection] rows, to automatically subtotal the above data row sections.

[SubTotal]

Each row with this tag defines a subtotal row. This is intended to be used when you want to subtotal two or more data row sections.

[Total]

Each row with this tag defines a total row. This is intended to be used to provide an overall total, based on all relevant data row sections.

Column tags

This section provides reference information for each column tag. However, each row type uses the column tags differently. For more detailed instructions on how to create each type of row, see Defining report sections for a Fixed Report.

[HeaderText]

Defines header text to be displayed on the report row.

  • Required for [Header] and [Subheader] rows, to define the text for the header.

  • Optional for [DataRowSection] rows. If defined, the header text displays as a subheader directly above the data rows in the section.

  • Optional for [SectionSubTotal], [SubTotal] and [Total] rows. If defined, the header text displays within the subtotal/total row, to provide a label for that row (such as "Total" or "Total Expenses").

Overflow behavior for header text depends on whether columns are frozen. If columns are not frozen, then header text overflows into the adjacent column. If columns are frozen, then header text wraps. In that case, you must set the width of the [HeaderColumn] row as appropriate to fit the header text, within the FixedReportColumns data source.

[RowData]

Defines the data for the row or for the data row section. Does not apply to [Header] or [Subheader] rows. Valid entries depend on the row type as follows:

DataRowSection

Required to define the rows in the section. Rows can be generated dynamically, or you can define a fixed set of rows.

(missing or bad snippet)

SectionSubTotal

Optional to specify the section to subtotal. Enter the ID of the data row section that you want to subtotal, as defined in the [ID] column. [SectionSubTotal] rows must be placed directly underneath or directly above the [DataRowSection] that you want to subtotal.

By default, if a [SectionSubTotal] row is directly underneath a [DataRowSection] row, then the subtotal adds all rows in that section. It is not necessary to enter the ID of the section in this case.

However, if you want a section subtotal to display above a data row section, then you must place the [SectionSubTotal] row directly above the [DataRowSection] section, and then enter the ID of the data row section.

If the data row section that is being subtotaled contains exactly two rows, then you can enter the keyword Subtract here in order to subtract the 2nd row from the 1st row (instead of adding the rows). If the subtotal row is underneath the data row section, then you can enter the Subtract keyword by itself. If the subtotal row is above the data row section, then you can append the keyword to the section ID with a semicolon—for example: Section1;Subtract.

SubTotal and Total

Required to specify the sections or subtotals to include in the calculation, and the type of calculation.

Enter an expression that adds and/or subtracts two or more data row sections or subtotals, referenced by their ID as defined in the [ID] column. For example:

Section1 + Section2

Subtotal1 - Subtotal2

Subtotal1 + Subtotal2 - Subtotal3

Each expression can use addition (+) and/or subtraction (-). Parentheses cannot be used in the expression.

[SectionFilter]

Specifies a filter to limit the data brought into a section. Only applies to [DataRowSection] rows.

If the data row section uses a Table.Column to define the rows in the section, then the section filter impacts both the data to be brought into the section and the rows to display in the section. For example, if [RowData] is set to Acct.Acct and the section filter is Acct.Category='Marketing', then the section will only contain rows for accounts assigned to the Marketing category.

If the data row section uses a FixedReportSectionConfig data source to define the rows, then the section will always contain a row for each row defined in the data source. If the section filter means that no data is available for a particular row, then that row is not omitted—instead, it will display with zero values.

NOTE: Section filters should be specific to the rows in each particular section. If you want to apply an overall filter to the entire report, then you should define a filter at the component level instead, using the Data Filter in the component properties.

[ID]

Defines an ID for [DataRowSection] and [SubTotal] rows, so that they can be referenced in subtotals and totals. Does not apply to other row types.

IDs are required in order to use data row sections and subtotals within subtotal and total calculations. IDs can also be used to associate a section subtotal with the data row section below it, in order to display a section subtotal at the top of a section (instead of at the bottom of the section, which is the default behavior).

[InvertVarianceColumns]

Specifies whether to perform sign reversal on calculated columns that are designated as variance columns in the FixedReportColumns data source (using the [IsVarianceColumn] property). Does not apply to [Header] or [SubHeader] rows. For more information, see Using sign reversal for variance columns.

If set to True, then values in variance columns are multiplied by -1 to reverse the number sign from positive to negative (or vice versa)—within that section only. When enabled for a [DataRowSection], the sign reversal also automatically applies to the associated [SectionSubtotal] row (if present).

NOTES:  

  • [Total] and [Subtotal] rows that reference a section with an inverted variance are not automatically inverted. If necessary, you can also configure these rows to invert the variance. Generally speaking, this would only be needed for post-aggregation calculations. If a calculation is pre-aggregation, then the calculated values are summed in subtotal and total rows, which means the inverted sign is automatically honored.
  • If any other calculated columns reference the inverted variance column, those calculated columns do not use the inverted value.
  • If any contra accounts are present in the section, they are honored in the inversion. For example, if the section contains six rows and one of those rows is a contra account, the inversion will change the five "normal" rows from positive to negative and change the contra row from negative to positive. Basically, all row values are inverted to the opposite of their current sign.

NOTES:  

  • The primary tag must be placed in the first 500 rows of the sheet.
  • Formulas can be used to create the tags, as long as the initial bracket and identifying keyword are whole within the formula. For more information, see Using formulas with Axiom feature tags.

To use the Data Source Wizard to add the tags to a sheet, right-click in a cell and then select Create Axiom Form Data Source > Fixed Report. You can also highlight a range of data first and then use the wizard to add the tags around that data. The cells in the row above and the column to the left of the selected area must be blank in order for Axiom to place the tags in sheet.

The following example shows a sample FixedReportConfig data source tagged in a sheet:

Example FixedReportConfig data source

Note the following about this example:

  • Most of the data row sections in this example are configured to automatically generate the rows based on a specified Table.Column and section filter. For example, the data row section for Payroll has defined row data of Acct.Acct;Acct.Description, and a section filter of Acct.Category='Payroll'. This means that the section will be automatically populated with account-level rows that belong to the category Payroll. Additionally, instead of showing the account code on each row, the report will use the account description as the row label.

  • The data row section for Marketing uses a data source name instead of a Table.Column. This means that the rows in this section are defined in the referenced FixedReportSectionConfig data source.

  • The section subtotal rows in this example immediately follow their corresponding data row sections, so they will automatically subtotal the rows in that section. In this case, it is not necessary to specify anything in the [RowData] field for the section subtotal rows. If instead you wanted the subtotal rows to display above their corresponding sections, then you would need to specify the data row section name as the row data for the section subtotal.

  • On the subtotal and total rows, ID names are referenced to indicate what should be included in the subtotal and total.

The resulting report for the example data source shown above looks as follows. In this example, you can see the various headers, sections, subtotals, and totals that were mapped out in the data source.

Example row structure generated from the FixedReportConfig data source

Data source tags: FixedReportSectionConfig

A Fixed Report component can optionally use one or more defined FixedReportSectionConfig data sources within the file, to define the individual rows within a data row section. You can specify the name of a FixedReportSectionConfig data source in the [RowData] field of a [DataRowSection], in the FixedReportConfig data source.

The tags for the FixedReportSectionConfig data source are as follows:

Primary tag

[FixedReportSectionConfig;DataSourceName]

The DataSourceName identifies this data source so that it can be referenced in the [RowData] field of the FixedReportConfig data source. (missing or bad snippet)

(missing or bad snippet)

Row tags

[FixedRow]

Each row with this tag defines a row to display in the data row section.

Column tags

[Label]

Defines the label text for the row.

[FixedRowFilter]

Specifies a filter to determine the data to be shown in that row. For example, if you say Acct.Category='Revenue', then the row shows data for all accounts that belong to the category of Revenue.

This is essentially the same as specifying a "sum by" level for an Axiom query, except that now you are defining the sum by at the individual row level. The Table.Column used in the filter must be valid for use as the sum by, based upon the primary table specified in the component properties. The same columns that would be valid to use as the sum by for an Axiom query are valid here. For more information, see Defining the sum level for an Axiom query.

Fixed row filters should be specific to each individual row. If you want to apply an overall filter to the entire report, then you should define a filter at the component level, using the Data Filter in the component properties.

[IsContraAccount]

Optional. Specifies whether the row should be treated as a "contra account." This is intended to be used in cases where a section contains both debit and credit rows.

If True, then the row values are subtracted from the section subtotal instead of added. If False or blank, or if the column is omitted, then the row values are subtotaled as normal. For more information, see Designating certain rows as "contra accounts".

NOTES:  

  • The primary tag must be placed in the first 500 rows of the sheet.
  • Formulas can be used to create the tags, as long as the initial bracket and identifying keyword are whole within the formula. For more information, see Using formulas with Axiom feature tags.

To use the Data Source Wizard to add the tags to a sheet, right-click in a cell and then select Create Axiom Form Data Source > Fixed Report Row Section. You can also highlight a range of data first and then use the wizard to add the tags around that data. The cells in the row above and the column to the left of the selected area must be blank in order for Axiom to place the tags in sheet.

The following example shows a sample FixedReportSectionConfig data source tagged in a sheet:

Example FixedReportSectionConfig data source

This section will contain two rows with the labels specified in the data source. The first row contains data for account 5700 and the second row contains data for account 5800. The intent of this data source is to allow you to precisely define both the label text and data for each row. It is most useful when you want to display row data that does not directly correspond with a particular grouping—for example, if you want to display row data at different grouping levels within the same section.

The following example shows the rows generated from the FixedReportSectionConfig data source (within the context of the FixedReportConfig data source shown in the previous section):

Example rows generated from FixedReportSectionConfig data source

Data source tags: FixedReportColumns

A Fixed Report component must have a defined FixedReportColumns data source within the file, to indicate the columns of data to display in the report. The tags for the data source are as follows:

Primary tag

[FixedReportColumns;DataSourceName]

The DataSourceName identifies this data source so that it can be assigned to a Fixed Report component. (missing or bad snippet)

(missing or bad snippet)

Row tags

[HeaderColumn]

The row with this tag defines column properties for the column that contains the row headers and dimension values (the initial column of the report). The data source must only contain one row with this tag, and it must be the first row in the data source.

[Column]
(missing or bad snippet)
[CalculatedColumn]
(missing or bad snippet)
[ColumnGroup]
(missing or bad snippet)
[EndGroup]
(missing or bad snippet)

Column tags

[ColumnName]
(missing or bad snippet)
[IsVisible]
(missing or bad snippet)
[IsFrozen]
(missing or bad snippet)
[IsEditable]
(missing or bad snippet)
[DisplayFormat]
(missing or bad snippet)

NOTE: This field does not apply to the [HeaderColumn] row. If a data section has dynamically generated rows, a display format can be defined in the second parameter of the [RowData] syntax for the section. If a data section has fixed rows, then each row has a uniquely defined row label so a display format is not necessary.

[Total]

Optional. Specifies whether columns are included in subtotal and total rows (True/False).

In most cases, you can leave this column blank to include all "data" columns by default. Numeric value columns and calculated columns are automatically included, while numeric dimension columns and other ineligible columns are omitted. If you do not want a data column to be included in subtotals and totals, then you can enter False into the [Total] column to omit it.

The following columns are included in subtotals and totals by default:

  • Any column using the following aggregation types: RowSum, LookupSum, and RowCount. This applies whether the column uses the aggregation type by default, or if you have assigned the aggregation in the [Aggregation] column. The total row uses the same aggregation as the column data.

    For example, a Numeric column with a column classification of Value uses RowSum aggregation by default and therefore will be included. An Integer column with a column classification of Dimension uses Max aggregation by default and therefore will be omitted. However, if you use the [Aggregation] column to set the Integer column to use RowCount aggregation instead, now it will be included by default.

  • All calculated columns defined in the report. If the calculation is post-aggregation (the default behavior), then the calculation is applied to the total row values. If the calculation is pre-aggregation, then the calculated column values are summed.

Columns using RowAvg, LookupAvg, Min, Max, or DistinctCount aggregation (whether by default or explicitly specified) are not eligible for inclusion in the total row.

Generally speaking, it is not necessary to flag any columns with True because all eligible columns are included by default. If an ineligible column is flagged as True, then an error occurs when attempting to render the grid.

Older fixed reports created before 2019.1 may use the deprecated [SubTotal] tag to define the contents of the total row. These grids should be converted to use the [Total] row instead. If a [SubTotal] tag is used, any eligible column that is not flagged with False is included in the total row, using the new total behavior.

[Width]
(missing or bad snippet)
[Header]
(missing or bad snippet)
[HeaderIcon]
(missing or bad snippet)
[HeaderAlignment]
(missing or bad snippet)
[Icon]
(missing or bad snippet)
[HoverActions]
(missing or bad snippet)
[SelectedRowValue]
(missing or bad snippet)
[ActionRowValue]
(missing or bad snippet)
[NumericFormat]
(missing or bad snippet)
[Alignment]
(missing or bad snippet)
[Aggregation]
(missing or bad snippet)
[ColumnFilter]
(missing or bad snippet)
[Calculation]
(missing or bad snippet)
[IsVarianceColumn]

Specifies whether the column is a variance column (True/False). False is assumed if blank or omitted.

Columns flagged as variance columns support features that can invert the values in the column, meaning the number sign is reversed from positive to negative (or vice versa):

  • If a row is designated as a contra account within a data row section, the variance column value for that row is inverted. Note that if the variance column is referenced in the calculation of another calculated column, the inverted value is not carried forward to the other calculated column (unless the calculated column is also flagged as a variance column).

  • If the [InvertVarianceColumns] property in the FixedReportConfig data source is set to True for a data row section, subtotal, or total, then the values in the variance column are inverted for that section, subtotal, or total. If the data row section also contains contra accounts, the contra account values are honored in the inversion. Essentially, the contra account value is restored to its original sign because the already-inverted contra value is inverted again.

[IsPreAggregationCalculation]
(missing or bad snippet)
[IsLiveUpdate]
(missing or bad snippet)
[Save;TABLENAME]
(missing or bad snippet)

NOTES:  

  • The primary tag must be placed in the first 500 rows of the sheet.
  • Formulas can be used to create the tags, as long as the initial bracket and identifying keyword are whole within the formula. For more information, see Using formulas with Axiom feature tags.

To use the Data Source Wizard to add the tags to a sheet, right-click in a cell and then select Create Axiom Form Data Source > Fixed Report Columns. You can also highlight a range of data first and then use the wizard to add the tags around that data. The cells in the row above and the column to the left of the selected area must be blank in order for Axiom to place the tags in sheet.

The following example shows a sample FixedReportColumns data source tagged in a sheet:

Example FixedReportColumns data source

The resulting report for the example data source shown above looks as follows:

Example columns generated from the FixedReportColumns data source

Component properties

You can define the following properties for a Fixed Report component.

Component properties can be configured using the Form Assistant task pane or the Form Designer unless otherwise noted. All properties can also be defined on the Form Control Sheet directly if desired. For example, if you want a property to be dynamic depending on the result of a formula, you can define that formula in the control sheet. To access the control sheet settings for the component, double-click any property name to go to that property in the Form Control Sheet.

Component behavior properties

The following properties control the display and behavior of this particular component type.

Item Description

Title Text

The title text for the component. This text displays in the title bar for the component within the Axiom form, if the title bar is enabled.

Show Title Bar

Specifies whether the title bar is visible. By default this option is enabled, which means that the component will display in a bordered box with a title bar across the top. The defined title text displays within the bar. The formatting of the title bar and its border are determined by the skin specified for the form.

If disabled, then the title bar and its border will not display on the component.

If the title bar is enabled and the component also has a separately defined border (either via a style or by using the formatting overrides in the advanced component settings), then both borders will display on the component. In some cases this effect may be desired; in other cases one of the borders should be disabled.

Primary Table

(missing or bad snippet)

Data Filter

(missing or bad snippet)

Suppress Zeros in Data Rows

Optional. If enabled, then data rows that contain all zeroes are suppressed from showing in the fixed report.

Non-key columns that meet both of the following criteria are evaluated to determine whether a row should be hidden:

  • The column data type is Integer (all types) or Numeric.
  • The column is from the primary table or an additional data table.

If the primary table is a data table, Integer and Numeric columns on lookup reference tables are ignored—meaning these columns may have values, but the row is still suppressed if all applicable data table columns have zero values. There is one exception: reference table columns are considered if the column classification is Values and the numeric type is Currency.

Calculated columns defined in the fixed report are not evaluated for this purpose and do not prevent a row from being hidden.

If all rows in a particular section are zero-data rows, the associated section header and subtotal row (if present) are not automatically hidden. You can enable the separate option Hide Empty Sections to hide these items.

Columns Data Source

The FixedReportColumns data source for the report. You must have defined the data source within the file using the appropriate tags in order to select it.

NOTE: In the Form Control Sheet, the selected data source is written as SheetName!DataSourceName. The sheet name is the sheet where the selected data source is located.

If a data source is already specified and you want to locate it within the file, click the Show location button to the right of the drop-down list. This will move your cursor to the associated data source tag in the file.

Fixed Report Data Source

The FixedReportConfig data source for the report. You must have defined the data source within the file using the appropriate tags in order to select it.

NOTE: In the Form Control Sheet, the selected data source is written as SheetName!DataSourceName. The sheet name is the sheet where the selected data source is located.

If a data source is already specified and you want to locate it within the file, click the Show location button to the right of the drop-down list. This will move your cursor to the associated data source tag in the file.

Component Dependencies

Optional. Specifies one or more components that the Fixed Report component is dependent on.

If you want the report to dynamically update based on changes made to other components, list one or more component names in this field. Separate multiple component names with commas.

If a component name is listed here, then the report is refreshed when a form update submits a change to the listed component. If no component names are listed here, or if the listed components are unchanged, then the report is not refreshed when a form update occurs.

Components listed as component dependencies must be interactive components, such as Combo Box components, Check Box components, and so on. The purpose of this option is that you want to enable refreshing the report based on a change a user made to an interactive component. Non-interactive components, such as Label components, cannot submit values back to the source file and cannot trigger form updates. Therefore, non-interactive components cannot cause the report to refresh.

NOTE: Standard Button components can be used as component dependencies. If a button uses the default Command behavior, then whenever the listed button triggers a form update, the report will be refreshed. However, if the button uses a specialized button behavior, or if the button uses a command that alters the normal form update behavior, then the button may not cause the report to refresh.

For more information, see Update behavior.

Hide Empty Sections

Optional. Specifies whether data row sections with no rows are hidden in the fixed report.

By default, this option is disabled, which means that all data row sections defined in the FixedReportConfig data source are shown in the report, regardless of whether any data rows were returned for the section.

If this option is enabled, then data row sections with no data rows are hidden, including any associated section header text and section subtotal row. Additionally, if all of the data row sections referenced by a [Subtotal] or [Total] row are hidden, then that subtotal or total row is automatically hidden as well.

Whether a data row section is considered to be empty depends on how the row data is defined:

  • If a data row section uses a Table.Column to dynamically generate the rows, then the section is empty if no matching rows are returned from the database, or if no rows are visible due to Suppress Zeros in Data Rows.

  • If a data row section uses a FixedReportSectionConfig data source to define individual rows, then the section is never empty by default. If no matching data is returned from the database, the defined rows display with zeros. However, if Suppress Zeros in Data Rows is also enabled, then the section is considered empty if all of the defined rows are hidden due to zero suppression.

Enable Row Selection

(missing or bad snippet)

Auto Submit

Specifies whether the Axiom form automatically updates when a user selects a row in the report. This option only applies if Enable Row Selection is enabled.

By default, auto submit is disabled. You should leave this option disabled if you have not enabled row selection. However, if you have enabled row selection, then in most cases you will want to enable auto submit as well.

If both auto submit and row selection are enabled, then the form automatically updates when the user selects a row in the report (by clicking on it). If auto submit is disabled but row selection is enabled, then the user must use a separate Button component (or a different auto-submit component) in order to update the form for the selected row.

Enable Excel Export

Specifies whether users can export the report contents to an Excel spreadsheet (XLSX).

  • If enabled, an Export to Excel button displays over the top right corner of the report, so that users can export the report contents.
  • If disabled (default), the button does not display.

When a user clicks the Export to Excel button, the contents of the report are exported to an Excel spreadsheet. Configured number formats are not preserved, but default number formatting is applied based on the column data type.

The name of the exported file is the Title Text for the component, if defined. Otherwise, a system generated name is used. It is recommended to define title text for this purpose when using the export feature, even if the title bar is not enabled.

The following features are not supported with the export feature:

  • Icons: Icons are omitted from the export.
  • Column group headers: Column group headers are omitted from the export.

For more information, see Exporting Fixed Report contents to a spreadsheet.

Enable Saving

(missing or bad snippet)

Enable Drilling

Optional. Select this check box to enable drilling for the report. If enabled, users can "drill down" a row in the report to see the data in that row at a different level of detail.

The remaining properties in this section, such as Drill Button Tooltip and Drilling Hierarchies, only apply if drilling is enabled. For more information about setting up and using drilling for a Fixed Report component, see Setting up drilling for Fixed Report components in Axiom forms.

Selected Row Filter

A filter statement representing the currently selected row, based on the row data definition. This system-controlled field is automatically populated when a user selects a row in the report. This field is only located on the Form Control Sheet, and only applies when Enable Row Selection is enabled. You can optionally reference this value when setting up form interactivity based on the selected row.

NOTE: This property is only available on the Form Control Sheet; it does not display in the Form Assistant or in the Form Designer.

Action Row Filter

A filter statement representing the icon action row, based on the row data definition. This system-controlled field is automatically populated when a user clicks on an action icon in the report. This field is only located on the Form Control Sheet. You can optionally reference this value when setting up form interactivity based on the action row.

NOTE: This property is only available on the Form Control Sheet; it does not display in the Form Assistant or in the Form Designer.

General properties

The following general properties are available for all components:

Item Description

Component Name

The name of the component. This is for identification in the file; this name does not display on the Axiom form canvas.

The name of the component identifies the corresponding settings for the component on the Form Control Sheet. The component names are also useful if you have multiple types of the same component within an Axiom form, so that you can tell which component you are currently editing.

Component names must be unique within a file and must start with a letter. Names can only contain letters, numbers, and underscores. Names are validated when the file is saved; an invalid name will prevent the save.

NOTE: Spaces are not allowed in component names and will be automatically removed by Axiom Budgeting and Performance Reporting. For example, if you enter "My Component" as the component name, it will be automatically adjusted to "MyComponent".

Visible

Specifies whether the component is visible on the Axiom form (On/Off). By default this is set to On.

This setting can be used to dynamically show or hide the component using a formula. Keep in mind that if you have multiple components that you need to dynamically show or hide based on the same condition, then it is preferable to place those components on a dedicated layer and then show or hide the entire layer instead of the individual components.

NOTE: This setting is only available on the Form Control Sheet; it cannot be set in the Form Assistant or in the Form Designer.

Layer

The layer that the component belongs to on the Axiom form canvas. In the Form Assistant and the Form Designer, this displays as the layer name (for example: Layer 1). In the Form Control Sheet, this is recorded as the layer ID (for example: 1).

If the canvas only has one layer, then the component is automatically assigned to that layer and cannot be changed. If the canvas has multiple layers, you can assign the component to any layer using the drop-down list. By default, the component will be assigned to whichever layer is selected in the Layers box when you initially drag the component onto the canvas. For more information on layers, see Using multiple layers on the canvas.

If desired, you can jump to the applicable layer settings on the Form Control Sheet by clicking the binoculars icon next to the drop-down list.

Parent

The parent component that this component is assigned to. If blank, then the component does not have an assigned parent. Currently, only Panel components can be designated as parents.

If a component has an assigned parent, then that component is positioned within the parent instead of within the canvas at large. If the parent is hidden, all "child" components of that parent are also hidden.

The parent assignment is automatically completed when a component is dragged into a panel in the Form Designer, and automatically cleared when a component is dragged out of a panel. In most cases, you should not need to manually assign a parent.

For more information, see Using panels to group and position components.

Style and formatting properties

To define the component formatting, you can assign one or more styles to the component. Styles can impact formatting properties such as fonts, borders, and colors.

If you do not want to apply a style to this component, or if you want to override one or more formatting properties in an assigned style, click the Show Advanced Settings link underneath the Style box to display the individual formatting properties. For more information on defining individual formatting properties for a component, see Formatting overrides for Axiom form components.

For Fixed Report components, the component-level style only impacts the external report container; it does not affect the internal report contents.

Item Description

Style

Optional. The styles used to determine the formatting of the component. You can assign one or more styles.

Click the Select component styles button [...] to open the Choose Style dialog. Using this dialog, you can select one or more styles to apply to the component. The available styles depend on the component type and the skin assigned to the form. For more information, see Using component styles.

Some components have several styles that are specifically designed for that component type, while other components may only have the "generic" styles that are available to all components. When using a generic style, keep in mind that they may not be useful for all components. You can view a description of each style and view the effective formatting applied by the selected styles within the Choose Style dialog.

Component Theme

(Deprecated.) The theme to use for the component instead of the form-level theme. If left blank, the component uses the form-level theme.

This setting should be left blank unless you need to override the form theme. Generally speaking, themes should be set at the form level and only overridden at the component level when necessary.

This setting is available in the advanced component properties (click Show Advanced Settings under the Style box). On the Form Control Sheet, the setting displays using the name Theme Override.

NOTE: This setting only applies if your form uses a legacy skin (any skin except the default Axiom2018). The Axiom2018 skin does not use themes.

Position and size properties

You can view the position and size properties for a component by clicking the Show Advanced Settings link under the Style box. If necessary, you can edit these properties directly (instead of automatically modifying them by adjusting the component's position and size on the canvas). For more information on using these settings, see Controlling component positioning and size.

Item Description

Reference Location

The reference location determines how the x-position and y-position of a component are evaluated. By default the reference location is UpperLeft.

NOTE: This setting is not exposed in the advanced component settings. It can be changed on the canvas by double-clicking the corner selection handles of a component, or you can edit the setting on the Form Control Sheet directly.

X Position

Y Position

The x-position determines the component's position along the horizontal axis, and the y-position determines the component's position along the vertical axis. Both are evaluated relative to the reference location. Positions can be set in pixels (default) or percentages.

Width

Height

The width and height determine the size of the component. The width and height can be set in pixels (default) or percentages. Size keywords are also available to support special behavior.

Rendering Order

The order in which the component is rendered in the layer. A component with a larger order number will display above a component with a smaller order number.

For components that support tab navigation (tabbing to the next editable component), the rendering order also determines the tabbing order.

NOTE: On the Form Control Sheet, this setting is labeled as Z-Index.

Lock Layout

If enabled, the component size and position are locked and cannot be changed by dragging and dropping on the canvas. This optional setting is intended to protect against accidentally moving or resizing a component while working on the canvas.

Update behavior

(missing or bad snippet)

Interactive behavior

If Enable Row Selection is enabled for the Fixed Report component, users can select a data row in the report. The values in the selected row are submitted back to the source file, and written to the SelectedRowValue column of the FixedReportColumns data source. A filter representing the current row is also written back to the Selected Row Filter field in the Form Control Sheet.

If you want the Axiom form to respond to the currently selected row, then you must set up the file so that another component references one or more of the selected values (or the filter), and changes based on those values. For example, you could have a chart that updates to show information about the department for the currently selected row. For general information on setting up interactive components for an Axiom form, see Using interactive components in an Axiom form.

The row selection feature is the primary means of impacting the form based on user interaction in the report. However, you can also set up interactive behavior for icons displayed in the report, to execute a command when a user clicks on an icon. For more information on using actions with icons, see Using the IconConfig data source with Fixed Report components.

Example

A fixed report could display a summary income statement:

If a user selects the Revenue row, then the values in that row are submitted back to the source file and written to the SelectedRowValue column in the FixedReportColumns data source:

The filter for the current row is also written to the Selected Row Filter in the Form Control Sheet:

There are a number of ways that the form could respond to the selected value in the report. For example, you might want to display detailed information about the selected row in a chart. The chart would need to be set up with formulas that look to the appropriate cells of the SelectedRowValue column (or to the Selected Row Filter field), so that the data in the chart changes based on the currently selected value.

Creating column groups for the report header

(missing or bad snippet)

Using sign reversal for variance columns

You can perform sign reversal on certain calculated columns in a Fixed Report component, on a section by section basis. This is intended for cases where the column contains a variance calculation, and the variance needs to be shown differently for different sections in the report. For example, when comparing budget to actuals in a report, you may want revenue sections to show positive variance (Actuals-Budget) while expense sections show negative variance (Budget-Actuals).

Sign reversal can be enabled using the following columns in the FixedReportColumns data source and the FixedReportConfig data source:

  • For calculated columns where you want to enable sign reversal, enter True into the [IsVarianceColumn] field of the FixedReportColumns data source.

  • Then for each section where you want the sign to be reversed, enter True into the [InvertVarianceColumns] field of the FixedReportConfig data source. You can enable this option on [DataRowSection] rows to reverse the sign on all data rows in the section, including the associated section subtotal row (if present). If you want to reverse the sign on separate [Subtotal] or [Total] rows, you must separately enable the option on those rows.

    In this example, the variance calculation is defined as Budget-Actuals, so the sign reversal should be performed on the Revenue section and on the Net Income total row. If instead the variance calculation was defined as Actuals-Budget, then the sign reversal should be performed on the Expenses sections and their separate subtotal.

The Fixed Report component in this example looks as follows:

Designating certain rows as "contra accounts"

You can optionally designate certain rows in a data row section as "contra accounts," so that the row values are subtracted from the section subtotal instead of added. This feature can be used to accommodate a section that contains both debit and credit accounts.

Contra account rows also have special treatment in calculated columns designated as variance columns using [IsVarianceColumn]. If a row is designated as a contra account within a data row section, the variance column value for that row is inverted (meaning the number sign is reversed). Additionally, if the variance column is itself inverted using the [InvertVarianceColumns] property, then the inverted contra value is inverted again (so that it continues to use the opposite sign of non-contra rows).

Dynamic data row sections

When configuring a dynamic data row section, you can designate contra account rows by defining a conditional expression within the [RowData] syntax. Any row in the section that matches this expression is flagged as a contra row and subtracted from the section subtotal. The [RowData] syntax supports an optional fourth parameter for this expression:

ValueColumn;LabelColumnOrDisplayFormat;SortColumn;ContraExpression

For example, the following configuration creates a data row section showing fixed asset accounts. Any account with C in the Acct.Credit column is subtracted from the section subtotal.

Fixed data row sections

When using a fixed data row section, the FixedReportSectionConfig data source supports an optional column tag of [IsContraAccount]. If a row is flagged as True in this column, that row will be subtracted from the section subtotal instead of added. If the column tag is not present, or if a row is blank or flagged as False, it is treated as normal and added to the section subtotal.

The following screenshot shows the Non-Interest Income row in the previous example being subtracted from the section subtotal.

Treatment of pre-aggregation calculations for contra account rows

Pre-aggregation calculations have special treatment on subtotal rows. Instead of applying the calculation to the subtotal, the values in the column are added. Pre-aggregation calculations are treated as follows for contra account rows:

  • If the calculation is not a variance column, then the calculation is treated the same way as normal columns on the row—meaning, the contra values are subtracted instead of added.
  • If the calculation is a variance column, then the sign on the calculated value is reversed, and the contra values are still subtracted instead of added.
  • If the calculation is an inverted variance column, then the reversed sign on the calculated value is reversed again, and the contra values are added instead of subtracted.

PDF design considerations

The following design considerations apply when generating a PDF of an Axiom form with a Fixed Report component:

  • The report is automatically extended to show all rows in the PDF. It does not matter which rows are currently visible in the form.

  • Report columns are resized to fit the component width in the PDF, regardless of their configured column size. If the columns exceed the page width, the remaining columns are omitted from the PDF. You should set the PDF page size and orientation as needed to fit the columns. For example, a wide report with many columns should be set to Landscape.

  • Header groups are all shown in the same shade of gray in the PDF, instead of the varying shades shown in the report.

  • Any unsaved edits made to editable columns in the report are not reflected in the PDF. The PDF displays the data as it was originally queried.

Design alternatives

The Fixed Report component is designed to handle a very specific purpose, to display reporting data using a fixed-row format. If the fixed-row format is a requirement, but you need more flexibility in the report design, you can use a Formatted Grid component. For example, you might use a Formatted Grid component in the following cases:

  • When you need to use more advanced data query configurations or features. You can use Axiom queries to bring data into the source file, and then use the Formatted Grid component to display that data in the form.

  • When you need to provide more advanced user input controls and save-to-database options. Formatted Grid components support many options for editing data.

  • When you need the ability to format the report contents at a more granular level. Formatted Grid components support a variety of formatting options to format grid contents, including fonts, colors, and borders.

If the fixed-row format is not a requirement, and you want users to be able to have more features to explore data, then you can use a Data Grid component. The Data Grid component provides built-in sorting, filtering, and grouping tools.

Video: How to create a fixed report in an Axiom form