Dashboards

Combo Boxes and List Boxes

ComboBoxes and ListBoxes are the primary selection components in OneStream dashboards. They let users choose from a list of values — entities, scenarios, accounts, or any custom set — and write the selection to a parameter that other components consume. The selection can also trigger server tasks and cascade to dependent components.

ComboBox Properties

PropertyDescription
BoundParameterThe parameter that receives the user's selection
MemberFilterDimension member filter expression that populates the dropdown (e.g., E#TotalCompany.Base)
AllowMultiselectWhen True, users can select multiple values (result is comma-separated)
SelectionChangedUserInterfaceActionUI action after selection: NoAction, Redraw, Refresh, CloseDialog, CloseDialogAsOK
SelectionChangedServerTaskServer task to execute on selection change
SelectionChangedServerTaskArgumentsCurly brace syntax for the server task
DashboardsToRedrawComma-separated list of dashboards to refresh after selection

ListBox Properties

ListBoxes have the same property set as ComboBoxes but display all options in a scrollable vertical list instead of a dropdown. This is useful when the user needs to see all options at once or when the option list is short enough to display in full.

The BoundParameter Concept

When a user selects a value in a ComboBox or ListBox, the component writes the selected value to the parameter named in BoundParameter. Any other component referencing |!BoundParamName!| will use that value on the next refresh or redraw.
diagramSelection to Parameter to Component Refresh

Loading diagram...

This is the fundamental pattern for interactive dashboards: user selects → parameter updates → components re-render with the new value.

Populating Lists

There are two approaches to populating a ComboBox or ListBox with options.

Approach 1: MemberFilter

Set the MemberFilter property to a dimension member filter expression. OneStream evaluates the expression and populates the list with the matching members. No data adapter is needed.
Common MemberFilter patterns:
ExpressionReturns
E#TotalCompany.BaseAll base (leaf) entities under TotalCompany
S#AllScenarios.ChildrenDirect children of AllScenarios
A#TotalRevenue.ChildrenDirect children of TotalRevenue
T#2026.BaseAll base time periods in 2026
E#TotalCompany.DescendantsAll descendants (all levels) under TotalCompany

Approach 2: Data Adapter

Bind a SQL or Custom data adapter to the component. The first column of the returned DataTable becomes the display values in the list. This approach is useful when the options do not map to a dimension hierarchy — for example, a list of report types, status values, or custom lookup data.

ComboBox Example: Entity Selector

An Entity selector ComboBox that drives a CubeView report.
ComboBox configuration:
plaintext
1BoundParameter:                          SelectedEntity
2MemberFilter:                            E#TotalCompany.Base
3AllowMultiselect:                        False
4SelectionChangedUserInterfaceAction:     Refresh
5DashboardsToRedraw:                      ReportDashboard
When the user selects an entity, the SelectedEntity parameter updates and ReportDashboard refreshes — any CubeView or adapter referencing |!SelectedEntity!| re-evaluates with the new entity.

ListBox Example: Multi-Select Accounts

A ListBox that allows multi-selecting accounts for a report filter.
ListBox configuration:
plaintext
1BoundParameter:                          SelectedAccounts
2MemberFilter:                            A#TotalRevenue.Children
3AllowMultiselect:                        True
4SelectionChangedUserInterfaceAction:     NoAction
When the user selects multiple accounts, the SelectedAccounts parameter receives a comma-separated value like Sales,Services,Licensing. A Business Rule or SQL adapter can then parse this list to filter data.

Cascading Selections

ComboBoxes can cascade — selecting a value in one ComboBox dynamically updates the available options in a dependent ComboBox. This is achieved by referencing the parent's BoundParameter in the child's MemberFilter.
diagramCascading Selection Chain

Loading diagram...

For cascading to work:
  1. The parent ComboBox must have SelectionChangedUserInterfaceAction set to Refresh
  2. The child ComboBox's MemberFilter or adapter query must reference the parent's BoundParameter using |!ParentParam!|
  3. On refresh, OneStream re-evaluates the child's options with the updated parent value

Triggering Server Tasks

ComboBoxes and ListBoxes support the same server task properties as Buttons. When a user's selection triggers a server task:
  1. The BoundParameter is updated with the selected value
  2. The server task executes (if configured)
  3. The UI action fires
  4. DashboardsToRedraw are refreshed
The SelectionChangedServerTaskArguments property uses the same curly brace syntax as Buttons:
plaintext
1{MyExtenderBR}{HandleSelection}{Source=EntityCombo}