public void DefineFilterDumpMeasure(TreeViewTable item, bool allTables) { if (item == null) { return; } string measureName = string.Format("'{0}'[{1}]", item.Caption, "DumpFilters" + (allTables ? "" : " " + item.Caption)); try { var model = Connection.Database.Models.BaseModel; var distinctColumns = (from t in model.Tables from c in t.Columns where c.ColumnType == ADOTabularColumnType.Column && (allTables || t.Caption == item.Caption) select c).Distinct().ToList(); string measureExpression = "\r\nVAR MaxFilters = 3\r\nRETURN\r\n"; bool firstMeasure = true; foreach (var c in distinctColumns) { if (!firstMeasure) { measureExpression += "\r\n & "; } measureExpression += string.Format(@"IF ( ISFILTERED ( {0}[{1}] ), VAR ___f = FILTERS ( {0}[{1}] ) VAR ___r = COUNTROWS ( ___f ) VAR ___t = TOPN ( MaxFilters, ___f, {0}[{1}] ) VAR ___d = CONCATENATEX ( ___t, {0}[{1}], "", "" ) VAR ___x = ""{0}[{1}] = "" & ___d & IF(___r > MaxFilters, "", ... ["" & ___r & "" items selected]"") & "" "" RETURN ___x & UNICHAR(13) & UNICHAR(10) )", c.Table.DaxName, c.Name); firstMeasure = false; } EventAggregator.PublishOnUIThread(new DefineMeasureOnEditor(measureName, measureExpression)); } catch (System.Exception ex) { Log.Error("{class} {method} {message} {stacktrace}", "ToolPaneBaseViewModel", "DefineFilterDumpMeasure", ex.Message, ex.StackTrace); } }
public void DefineAllMeasures(TreeViewTable item, string filterTable, IEventAggregator eventAggregator) { if (item == null) { return; } try { var measures = GetAllMeasures(filterTable); foreach (var measure in measures) { eventAggregator.PublishOnUIThread(new DefineMeasureOnEditor(measure.DaxName, measure.Expression)); } } catch (System.Exception ex) { Log.Error("{class} {method} {message} {stacktrace}", "ToolPaneBaseViewModel", "DefineMeasureTree", ex.Message, ex.StackTrace); } }
public void DefineFilterDumpMeasureOneTable(TreeViewTable item) { DefineFilterDumpMeasure(item, false); }
public void DefineFilterDumpMeasureAllTables(TreeViewTable item) { DefineFilterDumpMeasure(item, true); }
public void DefineAllMeasuresOneTable(TreeViewTable item, IEventAggregator eventAggregator) { DefineAllMeasures(item, item.Caption, eventAggregator); }
public void DefineAllMeasuresAllTables(TreeViewTable item, IEventAggregator eventAggregator) { DefineAllMeasures(item, null, eventAggregator); }
public void DefineAllMeasuresOneTable(TreeViewTable item) { DefineAllMeasures(item, item.Caption); }
public void DefineAllMeasuresAllTables(TreeViewTable item) { DefineAllMeasures(item, null); }