Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
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
Solved! Go to Solution.
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;
}
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;
}
You godsend!
That's worth writing a small blog on now 🙂
Thank you!
User | Count |
---|---|
9 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
11 | |
3 | |
2 | |
2 | |
2 |