How to get the filtered name in Silverlight OLAP Client?
You can get the filtered members unique name in column and row of OLAP Client using the following code example.
C#
public OlapManager()
{
string connectionString = "Data Source=http://bi.syncfusion.com/olap/msmdpump.dll; Initial Catalog=Adventure Works DW 2008 SE;";
_dataManager = new OlapDataProvider(connectionString);
_dataManager.BeforeMdxQueryExecute += new Syncfusion.Olap.Manager.QueryExecuteEventHandler(_dataManager_BeforeMdxQueryExecute);
}
void _dataManager_BeforeMdxQueryExecute(object sender, Syncfusion.Olap.Manager.QueryExecutingEventArgs e)
{
Syncfusion.Olap.Reports.Items categoricalItems = e.Report.CategoricalElements;
foreach (Syncfusion.Olap.Reports.Item categoricalItem in categoricalItems)
{
if (categoricalItem.ElementValue is Syncfusion.Olap.Reports.DimensionElement && categoricalItem.ExcludedElementValue != null)
{
Syncfusion.Olap.Reports.DimensionElement dimensionElem = categoricalItem.ExcludedElementValue as Syncfusion.Olap.Reports.DimensionElement;
//Dimension UniqueName
string filtrDimeUniqueName = dimensionElem.UniqueName;
Syncfusion.Olap.Reports.HierarchyElement hierElem = dimensionElem.Hierarchy;
//Hierarchy UniqueName
string filtrHierUniqueName = hierElem.UniqueName;
List<string> filtrLevUniqueNames = new List<string>();
List<string> memElemtUniqueNames = new List<string>();
foreach (LevelElement levElmt in hierElem.LevelElements)
{
//Level UniqueName
filtrLevUniqueNames.Add(levElmt.UniqueName);
foreach (MemberElement memElmt in levElmt.MemberElements)
{
//Filtered Member UniqueName
memElemtUniqueNames.Add(memElmt.UniqueName);
}
}
}
}
}
VB
Private Function OlapManager() As Public Dim connectionString As String = "Data Source=http://bi.syncfusion.com/olap/msmdpump.dll; Initial Catalog=Adventure Works DW 2008 SE;" _dataManager = New OlapDataProvider(connectionString) _dataManager.BeforeMdxQueryExecute += New Syncfusion.Olap.Manager.QueryExecuteEventHandler(_dataManager_BeforeMdxQueryExecute) End Function Private Sub _dataManager_BeforeMdxQueryExecute(ByVal sender As Object, ByVal e As Syncfusion.Olap.Manager.QueryExecutingEventArgs) Dim categoricalItems As Syncfusion.Olap.Reports.Items = e.Report.CategoricalElements Dim categoricalItem As Syncfusion.Olap.Reports.Item For Each categoricalItem In categoricalItems If Not TypeOf categoricalItem.ElementValue Is Syncfusion.Olap.Reports.DimensionElement And categoricalItem.ExcludedElementValue Is Nothing Then Dim dimensionElem As Syncfusion.Olap.Reports.DimensionElement = categoricalItem.ExcludedElementValue as Syncfusion.Olap.Reports.DimensionElement 'Dimension UniqueName Dim filtrDimeUniqueName As String = dimensionElem.UniqueName Dim hierElem As Syncfusion.Olap.Reports.HierarchyElement = dimensionElem.Hierarchy 'Hierarchy UniqueName Dim filtrHierUniqueName As String = hierElem.UniqueName Dim filtrLevUniqueNames As List<string> = New List<string>() Dim memElemtUniqueNames As List<string> = New List<string>() Dim levElmt As LevelElement For Each levElmt In hierElem.LevelElements 'Level UniqueName filtrLevUniqueNames.Add(levElmt.UniqueName) Dim memElmt As MemberElement For Each memElmt In levElmt.MemberElements 'Filtered Member UniqueName memElemtUniqueNames.Add(memElmt.UniqueName) Next Next End Sub