Table of Contents

Class ScriptHelper

Inheritance
ScriptHelper
Inherited Members
Namespace
TabularEditor.Shared.Scripting
Assembly
TabularEditor3.Shared.dll

Contains various extension methods which are commonly used in scripts

public static class ScriptHelper

Properties

WaitFormVisible

Toggle the "Please wait" spinner on/off. Useful if you want to display custom dialogs / UI to the end user.

public static bool WaitFormVisible { get; set; }

Property Value

Type Description
bool

Remarks

Built-in script UI such as the TabularEditor.Shared.Scripting.ScriptHelper.Info(System.String,System.Int32) and SelectMeasure(IEnumerable<Measure>, Measure, string) functionality will automatically hide the "Please wait" spinner.

Methods

CustomAction(IEnumerable<ITabularNamedObject>, int)

Run a macro on a selection of objects. Alias for Macro(IEnumerable<ITabularNamedObject>, int)

public static void CustomAction(this IEnumerable<ITabularNamedObject> selection, int macroId)

Parameters

Type Name Description
IEnumerable<ITabularNamedObject> selection

The object selection on which the macro should run.

int macroId

Id of the macro

CustomAction(IEnumerable<ITabularNamedObject>, string)

Run a macro on a selection of objects. Alias for Macro(IEnumerable<ITabularNamedObject>, string)

public static void CustomAction(this IEnumerable<ITabularNamedObject> selection, string macroName)

Parameters

Type Name Description
IEnumerable<ITabularNamedObject> selection

The object selection on which the macro should run.

string macroName

Name of the macro. Use fully path of macro in case of ambiguity.

CustomAction(ITabularNamedObject, int)

Run a macro on an object. Alias for Macro(ITabularNamedObject, int)

public static void CustomAction(this ITabularNamedObject selection, int macroId)

Parameters

Type Name Description
ITabularNamedObject selection

The object on which the macro should be run.

int macroId

Id of the macro

CustomAction(ITabularNamedObject, string)

Run a macro on an object. Alias for Macro(ITabularNamedObject, string)

public static void CustomAction(this ITabularNamedObject selection, string macroName)

Parameters

Type Name Description
ITabularNamedObject selection

The object on which the macro should be run.

string macroName

Name of the macro. Use fully path of macro in case of ambiguity.

ExportProperties(IEnumerable<ITabularNamedObject>, string)

Export properties of the specified set of objects to a TSV (tab-separated) string. Use ImportProperties(string) to import properties from a TSV string.

public static string ExportProperties(this IEnumerable<ITabularNamedObject> objects, string properties = "Name,Description,SourceColumn,Expression,FormatString,DataType")

Parameters

Type Name Description
IEnumerable<ITabularNamedObject> objects

Set of objects whose properties should be serialized

string properties

(Optional) Comma-separated list of properties to export. If omitted, a default set of properties are exported.

Returns

Type Description
string

FormatDax(IEnumerable<IDaxDependantObject>, bool?, bool?)

Formats the DAX on all the specified objects.

public static void FormatDax(this IEnumerable<IDaxDependantObject> objects, bool? shortFormat = null, bool? skipSpaceAfterFunctionName = null)

Parameters

Type Name Description
IEnumerable<IDaxDependantObject> objects

The list of objects to be formatted

bool? shortFormat

TRUE to use short DAX format, FALSE otherwise, null to use current Tabular Editor settings

bool? skipSpaceAfterFunctionName

FALSE to add a space after function names, TRUE otherwise, null to use current Tabular Editor settings

FormatDax(IDaxDependantObject)

Flags this object for DAX expression formatting at the end of script execution or when TabularEditor.Shared.Scripting.ScriptHelper.CallDaxFormatter(System.Nullable{System.Boolean},System.Nullable{System.Boolean}) is called.

public static void FormatDax(this IDaxDependantObject obj)

Parameters

Type Name Description
IDaxDependantObject obj

The object whose DAX expression needs to be formatted

GetCardinality(Column)

Gets the cardinality (unique value count) of the specified column, assuming VertiPaq Analyzer stats have been collected. Call CollectVertiPaqAnalyzerStats() to collect VertiPaq Analyzer stats.

public static long GetCardinality(this Column column)

Parameters

Type Name Description
Column column

Returns

Type Description
long

GetCardinality(Table)

Gets the cardinality (row count) of the specified table, assuming VertiPaq Analyzer stats have been collected. Call CollectVertiPaqAnalyzerStats() to collect VertiPaq Analyzer stats.

public static long GetCardinality(this Table table)

Parameters

Type Name Description
Table table

Returns

Type Description
long

GetTotalSize(Column)

Gets the total size (in bytes) of the specified column, assuming VertiPaq Analyzer stats have been collected. Call CollectVertiPaqAnalyzerStats() to collect VertiPaq Analyzer stats.

public static long GetTotalSize(this Column column)

Parameters

Type Name Description
Column column

Returns

Type Description
long

GetTotalSize(Table)

Gets the total size (in bytes) of the specified table, assuming VertiPaq Analyzer stats have been collected. Call CollectVertiPaqAnalyzerStats() to collect VertiPaq Analyzer stats.

public static long GetTotalSize(this Table table)

Parameters

Type Name Description
Table table

Returns

Type Description
long

Macro(IEnumerable<ITabularNamedObject>, int)

Run a macro on a selection of objects.

public static void Macro(this IEnumerable<ITabularNamedObject> selection, int macroId)

Parameters

Type Name Description
IEnumerable<ITabularNamedObject> selection

The object selection on which the macro should run.

int macroId

Id of the macro

Macro(IEnumerable<ITabularNamedObject>, string)

Run a macro on a selection of objects.

public static void Macro(this IEnumerable<ITabularNamedObject> selection, string macroName)

Parameters

Type Name Description
IEnumerable<ITabularNamedObject> selection

The object selection on which the macro should run.

string macroName

Name of the macro. Use fully path of macro in case of ambiguity.

Macro(ITabularNamedObject, int)

Run a macro on an object.

public static void Macro(this ITabularNamedObject selection, int macroId)

Parameters

Type Name Description
ITabularNamedObject selection

The object on which the macro should be run.

int macroId

Id of the macro

Macro(ITabularNamedObject, string)

Run a macro on an object.

public static void Macro(this ITabularNamedObject selection, string macroName)

Parameters

Type Name Description
ITabularNamedObject selection

The object on which the macro should be run.

string macroName

Name of the macro. Use fully path of macro in case of ambiguity.

Output(object)

Displays detailed information about the specified object or collection of objects in a popup dialog. When executed through the UI, the user has an option to ignore additional popups. When the script is running in the CLI, the information is written to the console.

public static void Output(this object value)

Parameters

Type Name Description
object value

SelectColumn(IEnumerable<Column>, Column, string)

Displays a dialog that allows the user to select a column from the specified collection.

public static Column SelectColumn(this IEnumerable<Column> columns, Column preselect = null, string label = "Select column:")

Parameters

Type Name Description
IEnumerable<Column> columns

A list of columns to be shown to the user

Column preselect

(Optional) A column from the list of columns, which is preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
Column

The selected column or null if the user cancels out of the dialog

SelectColumn(Table, Column, string)

Displays a dialog that allows the user to select a column from the specified table.

public static Column SelectColumn(this Table table, Column preselect = null, string label = "Select column:")

Parameters

Type Name Description
Table table

The table from which the user should select a column

Column preselect

(Optional) A column from the list of columns, which is preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
Column

The selected column or null if the user cancels out of the dialog

SelectMeasure(IEnumerable<Measure>, Measure, string)

Displays a dialog that allows the user to select a measure from the specified list of measures.

public static Measure SelectMeasure(this IEnumerable<Measure> measures, Measure preselect = null, string label = "Select measure:")

Parameters

Type Name Description
IEnumerable<Measure> measures

A list of measures to be shown to the user

Measure preselect

(Optional) A measure from the list of measures, which is preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
Measure

The selected measure or null if the user cancels out of the dialog

SelectMeasure(Model, Measure, string)

Displays a dialog that allows the user to select a measure from the model.

public static Measure SelectMeasure(this Model model, Measure preselect = null, string label = "Select measure:")

Parameters

Type Name Description
Model model

The model from which a measure should be selected by the user

Measure preselect

(Optional) A measure from the model, which is preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
Measure

The selected measure or null if the user cancels out of the dialog

SelectMeasure(Table, Measure, string)

Displays a dialog that allows the user to select a measure from the specified table.

public static Measure SelectMeasure(this Table table, Measure preselect = null, string label = "Select measure:")

Parameters

Type Name Description
Table table

A table containing the measures that will be shown to the user

Measure preselect

(Optional) A measure from the table, which is preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
Measure

The selected measure or null if the user cancels out of the dialog

SelectObject<T>(IEnumerable<T>, T, string)

Displays a dialog that allows the user to select a model object from a list of objects.

public static T SelectObject<T>(this IEnumerable<T> objects, T preselect = null, string label = "Select object:") where T : TabularNamedObject

Parameters

Type Name Description
IEnumerable<T> objects

A list of objects to be shown to the user

T preselect

(Optional) An object from the list, which is preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
T

The selected object or null if the user cancels out of the dialog

Type Parameters

Name Description
T

The type of objects shown to the user

SelectObjects<T>(IEnumerable<T>, IEnumerable<T>, string)

Displays a dialog that allows the user to select one or more model objects from a list of objects.

public static IList<T> SelectObjects<T>(this IEnumerable<T> objects, IEnumerable<T> preselect = null, string label = "Select object(s):") where T : TabularNamedObject

Parameters

Type Name Description
IEnumerable<T> objects

A list of objects to be shown to the user

IEnumerable<T> preselect

(Optional) A list of objects which are preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
IList<T>

The selected object(s) or null if the user cancels out of the dialog

Type Parameters

Name Description
T

The type of objects shown to the user

SelectTable(IEnumerable<Table>, Table, string)

Displays a dialog that allows the user to select a table from the specified list of tables.

public static Table SelectTable(this IEnumerable<Table> tables, Table preselect = null, string label = "Select table:")

Parameters

Type Name Description
IEnumerable<Table> tables

A list of tables to be shown to the user

Table preselect

(Optional) A table from the list of tables, which is preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
Table

The selected table or null if the user cancels out of the dialog

SelectTable(Model, Table, string)

Displays a dialog that allows the user to select a table from the model.

public static Table SelectTable(this Model model, Table preselect = null, string label = "Select table:")

Parameters

Type Name Description
Model model

The model from which the user should select a table

Table preselect

(Optional) A table which is preselected when the dialog is shown

string label

(Optional) A label to be shown within the dialog

Returns

Type Description
Table

The selected table or null if the user cancels out of the dialog

SuspendWaitForm(Action)

Hides the "Please wait" spinner while performing the specified action. Useful if the action displays custom dialogs / UI to the end user.

public static void SuspendWaitForm(Action action)

Parameters

Type Name Description
Action action

Remarks

Built-in script UI such as the TabularEditor.Shared.Scripting.ScriptHelper.Info(System.String,System.Int32) and SelectMeasure(IEnumerable<Measure>, Measure, string) functionality will automatically hide the "Please wait" spinner.

SuspendWaitForm<T>(Func<T>)

Hides the "Please wait" spinner while performing the specified action. Useful if the action displays custom dialogs / UI to the end user.

public static T SuspendWaitForm<T>(Func<T> action)

Parameters

Type Name Description
Func<T> action

Returns

Type Description
T

Type Parameters

Name Description
T

Remarks

Built-in script UI such as the TabularEditor.Shared.Scripting.ScriptHelper.Info(System.String,System.Int32) and SelectMeasure(IEnumerable<Measure>, Measure, string) functionality will automatically hide the "Please wait" spinner.