Visualizer Pack formulas run in the DBForm script parser and can use the current DBForm's entry variables. Except for OnGetMarkText, their Result is ignored. Successful formulas save parser-side changes back to the DBForm; changes from a failed formula are discarded.
Availability: OnGetMarkText can also run in a standalone Visualizer. The other seven formulas require plugin mode and a DBForm owner. A valid OnSeriesClick formula is a special case: in standalone mode it cannot execute, but its presence can still suppress the standard drill-down.
Runs after the chart, series, labels and axes have been built. Argument_CurrentPackName is the Visualizer Pack name and Argument_DrillDownLevel is the current first-X-field hierarchy level, or -1 for a non-hierarchical X field. Argument_CurrentMinimumValue and Argument_CurrentMaximumValue contain the visible range of the bottom/X axis; these two runtime arguments are not declared in the formula's VarList.
Result: Ignored. Use the event for side effects that require the completed chart.
Example: Preserve the visible X-axis maximum.
CIP_SetRuntimeVariable("VisualizerXMaximum", Argument_CurrentMaximumValue);Runs only for a left-button click on a chart axis. Argument_AxisTitle, Argument_CurrentPackName, Argument_AxisOrientation (Horizontal or Vertical), Argument_AxisPosition and Argument_DrillDownLevel are populated. Orientation, position and drill-down level are runtime-only and missing from the VarList. Position is refreshed only for the standard Left, Bottom, Right and Top axes; a non-standard axis can expose an earlier parser value.
Result: Ignored.
Example: Preserve the clicked axis title.
CIP_SetRuntimeVariable("LastVisualizerAxis", Argument_AxisTitle);Runs during delayed mouse-over processing when an axis is found under the pointer. The runtime sets Argument_AxisTitle, Argument_AxisOrientation, Argument_AxisPosition and Argument_CurrentPackName. The declared Argument_AxisName is never populated. As with axis clicks, a non-standard axis can leave an earlier position value visible.
Result: Ignored.
Example: Preserve the hovered axis orientation.
CIP_SetRuntimeVariable("VisualizerAxisOrientation", Argument_AxisOrientation);Runs for a left-button click when a valid formula is configured, instead of the standard drill-down. It receives Argument_SeriesIndex, the clicked point's numeric Argument_SeriesValue, Argument_SeriesName, Argument_ValueIndex, Argument_ValueX, Argument_CurrentPackName and Argument_DrillDownLevel.
Result: Ignored. The formula's presence selects the custom click branch; returning a value cannot resume standard drill-down. In a standalone Visualizer the formula branch is selected but cannot execute because there is no DBForm owner, so drill-down is still suppressed.
Example: Preserve the clicked X label.
CIP_SetRuntimeVariable("LastVisualizerX", Argument_ValueX);Runs during delayed mouse-over processing for the point under the pointer. It receives Argument_SeriesIndex, Argument_SeriesValue, Argument_SeriesName, Argument_ValueIndex, Argument_ValueX, Argument_YValue and Argument_CurrentPackName. SeriesValue and SeriesName come from the first subset, or are empty without a subset; YValue is the actual hovered point's numeric value. The declared Argument_DrillDownLevel is not populated.
Result: Ignored.
Example: Preserve the hovered point value.
CIP_SetRuntimeVariable("LastVisualizerY", Argument_YValue);Runs after the internal filter and hierarchy level have already changed, but before the chart is refreshed. The word Before therefore refers to chart rebuilding, not to the level change itself. Argument_CurrentPackName and the already updated Argument_DrillDownLevel are populated.
For every Y field, Out_<YFieldName>_ColorField is created with the current ColorField value. A successfully modified value is written back to the Y field. The declared static Out_ColorField is only a metadata placeholder and is not created at runtime.
Result: Ignored; the dynamic Out_ variables are the actual outputs.
Example: For a Y field named Production, switch its color field before rebuilding the chart.
Out_Production_ColorField := "ProductionStateColor";Runs after the chart has been refreshed for the new hierarchy level, including drill-down, go-back and reset operations. It receives Argument_CurrentPackName, Argument_DrillDownLevel and the same dynamic Out_<YFieldName>_ColorField input/output variables described above.
Result: Ignored; successful changes to the dynamic ColorField variables are written back.
Example: Preserve the resulting drill-down level.
CIP_SetRuntimeVariable("VisualizerDrillDownLevel", Argument_DrillDownLevel);Runs when the chart requests the label of a series point. It receives Argument_SeriesIndex, Argument_SeriesValue, Argument_SeriesName, Argument_ValueIndex, Argument_ValueX, Argument_YValue, Argument_StackedPercent and Argument_CurrentPackName. StackedPercent is in the 0..1 range. The declared Argument_DrillDownLevel is not populated.
Result: Its text form becomes the point label; NeedResult=True. This is the only Visualizer event whose Result is used. In standalone mode a formula error can be followed by another exception because the error branch tries to release a parser through a missing DBForm owner.
Example: Use the numeric point value as its label. The existing Visualization page also contains a screenshot example for entry formatting.
Result := Argument_YValue;