-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathEncontrar relaciones invalidas en todo el modelo.
38 lines (31 loc) · 1.25 KB
/
Encontrar relaciones invalidas en todo el modelo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//Author: Michael Kovalsky
//Publicado en https://www.elegantbi.com/post/findblankrows
//Fuente: https://github.com/m-kovalsky/Tabular/blob/master/BlankRowFinder.cs
// Gracias a Francisco Mullor(PowerBISP.com) por compartirlo conmigo y a Rubén Llorens Alonso por descubrirlo
var sb = new System.Text.StringBuilder();
sb.Append("FromTable" + '\t' + "ToTable" + '\t' + "BlankRowCount");
sb.Append(Environment.NewLine);
foreach (var r in Model.Relationships.ToList())
{
bool act = r.IsActive;
string fromTable = r.FromTable.Name;
string fromColumn = r.FromColumn.Name;
string toTable = r.ToTable.Name;
string toColumn = r.ToColumn.Name;
string dax;
if (act)
{
dax = "SUMMARIZECOLUMNS(\"test\",CALCULATE(COUNTROWS('"+fromTable+"'),ISBLANK('"+toTable+"'["+toColumn+"])))";
}
else
{
dax = "SUMMARIZECOLUMNS(\"test\",CALCULATE(COUNTROWS('"+fromTable+"'),USERELATIONSHIP('"+fromTable+"'["+fromColumn+"],'"+toTable+"'["+toColumn+"]),ISBLANK('"+toTable+"'["+toColumn+"])))";
}
var daxResult = EvaluateDax(dax);
if (daxResult.ToString() != "Table")
{
sb.Append(fromTable + '\t' + toTable + '\t' + daxResult.ToString());
sb.Append(Environment.NewLine);
}
}
sb.Output();