public void PopulateMeasures() { const string QUERY_MEASURES = @" SELECT MEASUREGROUP_NAME AS TABLE_NAME, MEASURE_NAME, DATA_TYPE, EXPRESSION, DEFAULT_FORMAT_STRING, MEASURE_IS_VISIBLE, MEASURE_DISPLAY_FOLDER, [DESCRIPTION] FROM $SYSTEM.MDSCHEMA_MEASURES WHERE MEASURE_NAME <> '__Default measure' ORDER BY MEASUREGROUP_NAME"; var cmd = CreateCommand(QUERY_MEASURES); cmd.CommandTimeout = CommandTimeout; using (var rdr = cmd.ExecuteReader()) { while (rdr.Read()) { string tableName = (rdr.GetValue(0) as string) ?? string.Empty; string measureName = rdr.GetString(1); int dataType = rdr.GetInt32(2); string measureExpression = rdr.GetValue(3)?.ToString() ?? string.Empty; string defaultFormatString = rdr.GetValue(4)?.ToString() ?? string.Empty; bool measureVisible = rdr.GetBoolean(5); string measureDisplayFolder = rdr.GetString(6).ToString(); string measureDescription = rdr.GetString(7).ToString(); Table daxTable = GetDaxTable(tableName); var daxMeasure = daxTable.Measures.Where(m => m.MeasureName.Name == measureName).FirstOrDefault(); if (daxMeasure == null) { daxMeasure = new Dax.Metadata.Measure() { Table = daxTable, MeasureName = new DaxName(measureName), // dataType not set? MeasureExpression = new DaxExpression(measureExpression), FormatString = defaultFormatString, // TODO - this might change to DaxExpression with dynamic format strings IsHidden = !measureVisible, DisplayFolder = measureDisplayFolder, // TODO - DisplayFolder should be a DaxName? Description = measureDescription }; daxTable.Measures.Add(daxMeasure); } } } }
private void AddMeasure(Table daxTable, Tom.Measure measure) { Dax.Metadata.Measure daxMeasure = new Dax.Metadata.Measure { Table = daxTable, MeasureName = new Dax.Metadata.DaxName(measure.Name), MeasureExpression = Dax.Metadata.DaxExpression.GetExpression(measure?.Expression), DisplayFolder = measure.DisplayFolder, Description = measure.Description, IsHidden = measure.IsHidden, DataType = measure.DataType.ToString(), DetailRowsExpression = Dax.Metadata.DaxExpression.GetExpression(measure.DetailRowsDefinition?.Expression), FormatString = measure.FormatString, KpiStatusExpression = Dax.Metadata.DaxExpression.GetExpression(measure.KPI?.StatusExpression), KpiTargetExpression = Dax.Metadata.DaxExpression.GetExpression(measure.KPI?.TargetExpression), KpiTargetFormatString = measure.KPI?.TargetFormatString, KpiTrendExpression = Dax.Metadata.DaxExpression.GetExpression(measure.KPI?.TrendExpression) }; daxTable.Measures.Add(daxMeasure); }
internal Measure(Dax.Metadata.Measure measure) { this._Measure = measure; }
internal VpaMeasure(Dax.Metadata.Measure measure) { this.Measure = measure; }