从微软访问属性.AnalysisServices类
本文关键字:AnalysisServices 属性 访问 微软 | 更新日期: 2023-09-27 18:03:54
我一直在尝试从以下链接访问SSAS测量组的属性。我不擅长编程。
https://msdn.microsoft.com/en-us/library/ms154309 (v = sql.120) . aspx
My Expected Output is
MeasureGroupName (String) , Source (string)
我可以把一些代码如下…请帮助我完成这项工作。
Cube cube = database.Cubes.FindByName(cubeName);
MeasureGroup sampleMeasureGroup = cube.MeasureGroups[0];
var measures = sampleMeasureGroup.Source;
如果您只需要DSV名称,那么多维数据集中的每个度量组都是相同的。下面的代码将得到它:
Cube cube = database.Cubes.FindByName(cubeName);
string sDSV = cube.DataSourceView.Name;
获取表名:
Cube cube = database.Cubes.FindByName(cubeName);
MeasureGroup sampleMeasureGroup = cube.MeasureGroups[0];
DataItem di = sampleMeasureGroup.Measures[0].Source;
if (di == null) return null;
ColumnBinding cb = di.Source as ColumnBinding;
RowBinding rb = di.Source as RowBinding;
string sTableID = (cb != null ? cb.TableID : (rb != null ? rb.TableID : null));
if (sTableID == null) return null;
if (cube.DataSourceView.Schema.Tables[sTableID] != null)
{
if (cube.DataSourceView.Schema.Tables[sTableID].ExtendedProperties.ContainsKey("FriendlyName"))
{
return cube.DataSourceView.Schema.Tables[sTableID].ExtendedProperties["FriendlyName"].ToString();
}
else
{
return cube.DataSourceView.Schema.Tables[sTableID].TableName;
}
}
else
{
return sTableID;
}
如果您需要为度量组列出DSV表名,那么您可以尝试使用这个BIDS Helper报告。
或者BIDS Helper是一个开源项目,因此您可以在这里看到它是如何导航度量和DSV表的