Database Journal
MS SQL Oracle DB2 Access MySQL PostgreSQL Sybase PHP SQL Etc SQL Scripts & Samples Links Database Forum

» Database Journal Home
» Database Articles
» Database Tutorials
MS SQL
Oracle
DB2
MS Access
MySQL
» RESOURCES
Database Tools
SQL Scripts & Samples
Links
» Database Forum
» Sitemap
Free Newsletters:
DatabaseDaily  
News Via RSS Feed


follow us on Twitter
Database Journal |DBA Support |SQLCourse |SQLCourse2
 

Featured Database Articles

MS SQL

Posted May 16, 2005

MSSQL Server Reporting Services : Mastering OLAP Reporting: Ad Hoc TopCount and BottomCount Parameters - Page 4

By William Pearson

Enhance the Foodmart Sales Cube to Support a Hierarchical Date Picklist in Reporting Services

1.  Right-click the new Param_Support_Sales cube.

2.  Select Edit ... from the context menu that appears, as shown in Illustration 5.

Click for larger image

Illustration 5: Select Edit from the Context Menu

The Cube Editor opens.

3.  Right-click the Calculated Members folder within Cube Editor.

4.  Select New Calculated Member ... from the context menu that appears, as depicted in Illustration 6.


Illustration 6: Select New Calculated Member from the Context Menu

The Calculated Member Builder opens.

5.  Type the following into the Member name box:

RS_pX_TimePLDispName_Hier

While the name of the calculated member can obviously be anything useful in the environment in which we are creating it, I typically use a name similar to the above, in order to make it apparent, both inside Analysis Services and in the reporting application (Reporting Services in this article), that the calculated member exists for use in the reporting ("RS") application. In addition, it makes it apparent that it has been created to support picklists ("pX"), and that this particular calculated member exists to generate a picklist display name ("PLDispName") in our report(s) for the various levels of the Time dimension. The specific convention we use in our own business environments should conform to the needs and conventions of the respective environment, of course.

6.  Type the following MDX into the Value Expression section of the Calculated Member Builder:

Space([Time].Currentmember.Level.Ordinal * 3) + [Time].CurrentMember.Name

The MDX expression above returns, via our calculated member, a display name. We will use this expression to generate the picklist that the information consumers see, as selection options upon being prompted, each time they attempt to generate a report in which we insert the picklist to support a parameter. An explanation of the components of the above expression appears in Table 2.

Expression

Meaning

Space([Time].Currentmember.Level.Ordinal * 3)

The Space() VBA function is used together with the level ordinal property of the current member to generate a "space size." We then multiply that size value by three (3).

Our objective here is cosmetic - we are simply making the levels of the Time dimension appear more intuitively hierarchical for the consumers, by "indenting" (by the assigned space size) each of the various levels of the Time dimension in accordance with its levels in the hierarchy.

+ [Time].CurrentMember.Name

This section of our expression actually generates the name of the current member ...


Table 2: Expression Components Summary

NOTE: For an explanation of the .CurrentMember function, see my article MDX Essentials: MDX Member Functions: "Relative" Member Functions in the MDX Essentials series at Database Journal.

The Calculated Member Builder appears with our input, as partially shown in Illustration 7.


Illustration 7: Calculated Member Builder (Partial View) with Complete MDX Expression

7.  Click OK to close the Calculated Member Builder.

The new Calculated Member appears in the tree within the Calculated Members folder.

8.  Right-click the Calculated Members folder within Cube Editor, once again.

9.  Select New Calculated Member ... again, from the context menu that appears.

The Calculated Member Builder opens.

10.  Type the following into the Member name box:

RS_pX_TimeMSASName_Hier

We are again using a naming convention for the member to make it apparent, both inside Analysis Services and in the reporting application, that the calculated member exists for use in the reporting ("RS") application, that it has been created to support picklists ("pX"), and that this particular calculated member exists to generate a "qualified name" (the Unique Name) within MDX.

11.  Type the following MDX into the Value Expression section of the Calculated Member Builder:

[Time].CurrentMember.UniqueName

The MDX expression will return, via our calculated member, the unique name (a member property) that we will use as the value field in a Dataset query, upon which we base our ultimate report. In other words, it generates the qualified / full name that corresponds to the "user-friendlier" picklist name that the user selects at runtime.

The Calculated Member Builder appears, with our input, as partially depicted in Illustration 8.


Illustration 8: Calculated Member Builder (Partial View) with Complete MDX Expression

12.  Click OK to close the Calculated Member Builder.

The new Calculated Members appear in the tree within the Calculated Members folder as shown in Illustration 9.


Illustration 9: Calculated Members in Place for Picklist Name and MSAS Name

(Compressed View)

13.  Select File -> Save to save our additions to the cube structure.

Now that we have the two calculated members in place, let's create a named set to contain them conveniently for use in the reporting application.

14.  Right-click the Named Sets folder within Cube Editor.

15.  Select New Named Set ... from the context menu that appears, as depicted in Illustration 10.


Illustration 10: Select New Named Set ... from the Context Menu

The Named Set Builder opens.

16.  Type the following into the Set name box:

RS_pX_Time_Hier

As we saw to be the case with the calculated members earlier, the name of the set can obviously be anything useful in the environment in which we are creating it. I typically use a name similar to the above, in order to make it apparent, both inside Analysis Services and from the reporting application (Reporting Services in this article), that the named set exists for use in the reporting ("RS") application. IN addition, it makes it apparent that it has been created to support picklists ("pX"), and that this particular named set exists to support picklists in our reports for the various hierarchical levels of the Time dimension.

17.  Type the following MDX (using the graphical design tools, if useful) into the Set Expression section of the Named Set Builder:

{[Measures].[RS_pX_TimePLDispName_Hier],[Measures].[RS_pX_TimeMSASName_Hier]}

The set we specify above will return, via our named set, both the picklist name (which the consumers will see) and the "qualified" MSAS name. The former name provides the list from which the intended audience can select the Time levels they wish to appear in the report; the latter name supplies the MDX- "qualified" name required to filter the report appropriately.

The Named Set Builder appears, with our input, as partially shown in Illustration 11.


Illustration 11: Named Set Builder (Partial View) with Complete MDX Expression

18.  Click the Check button to ascertain the correctness of the syntax.

A confirmation dialog should appear, indicating that Syntax is OK, as depicted in Illustration 12.


Illustration 12: Confirmation Dialog Indicates Syntax is Correct

19.  Click OK to close the confirmation dialog.

20.  Click OK to close the Named Set Builder, and to save our new named set.

The new named set appears in the tree as shown in Illustration 13.


Illustration 13: The New Named Set Appears

21.  Select File -> Save once again to save the cube with the new addition.

22.  Select Tools -> Process Cube to process the clone cube.

NOTE: The cube must be processed before we can designate it as a data source in the next section.

The Process a Cube dialog appears, as depicted in Illustration 14, with the processing method defaulted to Full Process. Full processing is the only option, as this is the first processing cycle of our cloned cube.


Illustration 14: Full Process Selected in the Process a Cube Dialog

23.  Click OK to begin processing.

Processing begins. The Process viewer displays various logged events, then presents a green Processing completed successfully message, as shown in Illustration 15.


Illustration 15: Indication of Successful Processing Appears

24.  Click Close to dismiss the viewer.

25.  Select File -> Exit to close the Cube Editor.

26.  Exit Analysis Services, as desired.



MS SQL Archives

Comment and Contribute

 


(Maximum characters: 1200). You have characters left.

 

 




Latest Forum Threads
MS SQL Forum
Topic By Replies Updated
SQL 2005: SSIS: Error using SQL Server credentials poverty 3 August 17th, 07:43 AM
Need help changing table contents nkawtg 1 August 17th, 03:02 AM
SQL Server Memory confifuration bhosalenarayan 2 August 14th, 05:33 AM
SQL Server Primary Key and a Unique Key katty.jonh 2 July 25th, 10:36 AM


















Thanks for your registration, follow us on our social networks to keep up-to-date