QueryLabel object
Finds and returns a collection of members matching the Member argument.
Expression.Find(MemberName as String, IncludeSharedMembers as Boolean)
The "*" character may be used as a wild-card in the MemberName argument.
If an alias table is in use, the member may be specified using the aliases, for example, "Cola" instead of "100-10".
The IncludeSharedMembers argument specifies whether to include shared members in the results of the search or not.
This example shows how to determine which returned members to add using the Find (Method) and Add (Method):
var prodLabel = Sections["Query"].Rows["Product"]; // Find and add all instances of members starting with 100- to the Product label // Results are returned as an anonymous collection var results = prodLabel.Find("100-*, true); for (var i = 1; i <= results.Count; i++) { var m = results[i].Name; prodLabel.Add(m, bqOlapSelectorMember); }
This example shows how to use the Find (Method) with various control objects:
//Clear List Box ActiveDocument.Sections["QueryLabel - Find"].Shapes["ListBox1"].RemoveAll() //Get Dimension to search var DimSel = ActiveDocument.Sections["QueryLabel - Find"].Shapes["DropDown1"].SelectedIndex var strDimension = ActiveDocument.Sections["Query"].Catalog.Dimensions.Item(DimSel).Name //Get Include Shared Members Value var strIncludeSharedMembers = false if (ActiveDocument.Sections["QueryLabel - Find"].Shapes["RadioButton1"].Checked) strIncludeSharedMembers = true else if (ActiveDocument.Sections["QueryLabel - Find"].Shapes["RadioButton2"].Checked) strIncludeSharedMembers = false //Get Text to search for var strSearchMember = ActiveDocument.Sections["QueryLabel - Find"].Shapes["TextBox5"].Text //Find using user entered search string and write to Results set var Results = ActiveDocument.Sections["Query"].Rows[strDimension].Find(strSearchMember, strIncludeSharedMembers) //Get the hits from QueryLabel.FindResults collection var intNumOfHits = Results.Count //Set Counter var intCount = 1 //Loop throught Items() and populate listbox do { if (ActiveDocument.Sections["QueryLabel - Find"].Shapes["RadioButton3"].Checked) ActiveDocument.Sections["QueryLabel - Find"].Shapes["ListBox1"].Add(Results[intCount].Name) else if (ActiveDocument.Sections["QueryLabel - Find"].Shapes["RadioButton4"].Checked) ActiveDocument.Sections["QueryLabel - Find"].Shapes["ListBox1"].Add(Results[intCount].UniqueName) intCount ++ } while (intCount <= intNumOfHits );