Exemplo n.º 1
0
        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);
                    }
                }
            }
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 internal Measure(Dax.Metadata.Measure measure)
 {
     this._Measure = measure;
 }
Exemplo n.º 4
0
 internal VpaMeasure(Dax.Metadata.Measure measure)
 {
     this.Measure = measure;
 }