Forum Discussion
Tabular Editor 2, C# Script - Movng created measures to a different table
Hello all,
Trying to accomplish what in theory seems like a simple mechanic, but I have not found a way to accomplish this in any of the resources for generates DAX measures via C# Scripts in Tabular Editor!
When generating a basic measure, say SUM of Sales Amount the C# Script is: (thank you dotykier )
/*
* Title: Auto-generate SUM measures from columns
*
* Author: Daniel Otykier, twitter.com/DOtykier
*
* This script, when executed, will loop through the currently selected columns,
* creating one SUM measure for each column and also hiding the column itself.
*/
// Loop through all currently selected columns:
foreach(var c in Selected.Columns)
{
var newMeasure = c.Table.AddMeasure(
"Sum of " + c.Name, // Name
"SUM(" + c.DaxObjectFullName + ")", // DAX expression
c.DisplayFolder // Display Folder
);
// Set the format string on the new measure:
newMeasure.FormatString = "0.00";
// Provide some documentation:
newMeasure.Description = "This measure is the sum of column " + c.DaxObjectFullName;
// Hide the base column:
c.IsHidden = true;
}
However, this code generates the measure within the Table of the selected column, i.e. the "Sales" table.
I would like to generate the Measure in a seperate table called "Calculations", or move it to a different table after it has been generated but I cannot crack how to achieve this.
Any help would be greatly appreciated.
Thanks.
Aaron
Hi,
Would this do the trick?var measureTable = Model.Tables["Measure Table"]; // Replace "Measure Table" with your desired table name foreach(var c in Selected.Columns) { var newMeasure = measureTable.AddMeasure( "Sum of " + c.Name, // Name "SUM(" + c.DaxObjectFullName + ")", // DAX expression c.DisplayFolder // Display Folder ); // Set the format string on the new measure: newMeasure.FormatString = "0.00"; // Provide some documentation: newMeasure.Description = "This measure is the sum of column " + c.DaxObjectFullName; // Optionally, hide the base column: c.IsHidden = true; }
2 Replies
- mariussve1Solution Sage
Hi,
Would this do the trick?var measureTable = Model.Tables["Measure Table"]; // Replace "Measure Table" with your desired table name foreach(var c in Selected.Columns) { var newMeasure = measureTable.AddMeasure( "Sum of " + c.Name, // Name "SUM(" + c.DaxObjectFullName + ")", // DAX expression c.DisplayFolder // Display Folder ); // Set the format string on the new measure: newMeasure.FormatString = "0.00"; // Provide some documentation: newMeasure.Description = "This measure is the sum of column " + c.DaxObjectFullName; // Optionally, hide the base column: c.IsHidden = true; }- Aaron_CFrequent Visitor
You godsend!
That's worth writing a small blog on now 🙂
Thank you!