Cube Views

CubeView Extender Business Rules

CubeView Extender Business Rules apply advanced formatting to Cube Views in Report view — dynamic headers, logos, page numbering, and conditional styling that goes beyond the built-in formatting properties. This guide covers configuration, common use cases, substitution variables, and code examples.

What CubeView Extender Rules Do

CubeView Extender rules run when a Cube View renders in Report view (PDF-style output). They do not affect the Data Explorer grid view. The rule receives the rendered report object and can modify headers, footers, cell formatting, and layout before the final output is generated.
Use CubeView Extender rules when you need formatting that:
  • Changes dynamically based on the POV (different logo per entity, different title per scenario)
  • Requires logic (conditional styling based on data values or user context)
  • Involves report elements not available in built-in properties (custom page numbering, footer fields)

Configuration

Setting Up a CubeView Extender Rule

  1. Create a Business Rule of type Finance (CubeView Extender is a Finance rule sub-type)
  2. On the Cube View's General Settings, under Report properties, set:
    • CustomReportTask = ExecuteCubeViewExtenderBusinessRule
    • CubeViewExtenderBusinessRuleName = the name of your Business Rule

Inline Formula Alternative

For simple expressions that don't require a full Business Rule, use the inline formula approach:
  • CustomReportTask = ExecuteCubeViewExtenderInlineFormula
  • InlineFormula = the expression to evaluate
Inline formulas are limited to simple property assignments. Use a full Business Rule for anything involving conditional logic, loops, or multiple formatting changes.

Substitution Variables in Cube Views

Cube Views support substitution variables in report headers, footers, and other text fields. Variables resolve at runtime based on the current context.

Variable Categories

CategoryPrefixExampleResolves To
POVPOV.POV.Entity, POV.Scenario, POV.TimeCurrent POV member name
WorkflowWF.WF.ProfileName, WF.ScenarioNameCurrent workflow context
GlobalGlobal.Global.AppNameApplication-level settings
CVCV.CV.Name, CV.GroupNameCube View properties
MFMF.MF.RowName, MF.ColNameMember filter properties
GeneralCurrentDate, PageNumber, TotalPagesGeneral report variables

Using Variables in Headers and Footers

The Cube View designer provides Report Header and Report Footer sliders for adding header and footer fields. Each field can contain substitution variables:
plaintext
1Header Left:   POV.Entity - POV.Scenario
2Header Center: CV.Name
3Header Right:  CurrentDate
4
5Footer Left:   Confidential
6Footer Center: Page PageNumber of TotalPages
7Footer Right:  WF.ProfileName

Common Use Cases

Dynamic Logos Based on Entity

Display a different company logo based on the selected entity:
1Public Overrides Function Main(ByVal si As SessionInfo, _
2  ByVal globals As BRGlobals, _
3  ByVal api As Object, _
4  ByVal args As CubeViewExtenderArgs) As Object
5
6  Dim entityName As String = args.PointOfView.Entity.Name
7
8  Select Case entityName
9      Case "CorpHQ"
10          args.ReportHeader.LogoImageName = "CorpLogo"
11      Case "EuropeSub"
12          args.ReportHeader.LogoImageName = "EuropeLogo"
13      Case Else
14          args.ReportHeader.LogoImageName = "DefaultLogo"
15  End Select
16
17  Return Nothing
18End Function

Custom Page Numbering and Subtitle

1Public Overrides Function Main(ByVal si As SessionInfo, _
2  ByVal globals As BRGlobals, _
3  ByVal api As Object, _
4  ByVal args As CubeViewExtenderArgs) As Object
5
6  ' Set custom subtitle based on POV
7  Dim scenario As String = args.PointOfView.Scenario.Name
8  Dim timePeriod As String = args.PointOfView.Time.Name
9  args.ReportHeader.SubTitle = scenario & " - " & timePeriod
10
11  ' Customize subtitle formatting
12  args.ReportHeader.SubTitleFontSize = 12
13  args.ReportHeader.SubTitleFontBold = True
14
15  ' Set footer with page numbers
16  args.ReportFooter.LeftText = "Generated: " & DateTime.Now.ToString("yyyy-MM-dd")
17  args.ReportFooter.CenterText = "Page " & args.PageNumber.ToString() & _
18      " of " & args.TotalPages.ToString()
19  args.ReportFooter.RightText = "Confidential"
20
21  Return Nothing
22End Function

Alter Column and Row Headers Dynamically

Change header labels based on the POV context — useful when the same Cube View is used across different scenarios or time periods:
1Public Overrides Function Main(ByVal si As SessionInfo, _
2  ByVal globals As BRGlobals, _
3  ByVal api As Object, _
4  ByVal args As CubeViewExtenderArgs) As Object
5
6  Dim scenario As String = args.PointOfView.Scenario.Name
7
8  ' Rename column headers based on scenario
9  For Each col In args.Columns
10      If col.HeaderText = "Amount" Then
11          col.HeaderText = scenario & " Amount"
12      End If
13  Next
14
15  Return Nothing
16End Function
ℹ️Info
CubeView Extender rules only affect Report view output. If you need dynamic formatting in the Data Explorer grid view, use conditional formatting in the Cube View properties instead, or apply formatting via a Dashboard Business Rule when the Cube View is embedded in a dashboard.