# Default value in parameters linked to OLAP cube

I'm using SQL Server Reporting Services 2000 on an Analysis 2000 Cube.

I have a sales report which I want, by default, to show figures for last month.  Thus I can setup subscriptions for the start of each month which will show the values for last month.  The time dimension ([Time].[Fiscal]) is based on fiscal year, from 1st July - 30th June.

I've followed a tutorial from Databasejournal.com which establishes a date parameter as a string.  Excluding the default value, this works fine.

In the default value I've entered the following formula:

I have very little knowledge of MDX and less still of VB Script.  Do I need to change the formula to something more like "=[Time].[Fiscal].[" + Year(DateAdd("m",-1,Now())) + "].[" + Month(DateAdd("m",-1,Now())) + "]""?  If so, how can I tell the Year to be a derivative of financial year rather than calendar year?
###### Who is Participating?

Commented:
hmm... it can grow pretty complex... In this particular situation if you still want to have everything dynamic (not hardcoded), then I'd create another parameter, say prmFiscalYear, and the formula for this one is:

=CDate( Year( DateAdd( DateInterval.Month, - ( Month( Today()) - 7 ), Today())) & "/" &
Month( DateAdd( DateInterval.Month, - ( Month( Today()) - 7 ), Today())) & "/1" )

Parameters!prmFiscalYear.Value

Another thing - do you need to convert it into the << ="[Time]..."  >> format? Can't you just pass a date to your Cube?

Regards,
Yurich

0

Commented:
If I got you right, you want to set the default value of your parameter in MS Reporting Services to the first of the last month, e.g. 1st of September, 2006 as of today.

You can use this formula for this:

=CDate( Year( Today()).ToString() & "/" & Month( DateAdd( DateInterval.Month, -1, Today())).ToString() & "/1" )

Good luck,
Yurich
0

Author Commented:
Hi Yurich,

That's very close and certainly gives me something to work with.  The report takes a month, in Analysis cube syntax ([Time].[Fiscal].[20xx].[Quarter x].[Monthname]).  I'll modify your formula to return this string.

Thanks,

Sam
0

Commented:
To get the name of the previous month in Reporting Services for my first expression:

=MonthName( Month( CDate( Year( Today()).ToString() & "/" & Month( DateAdd(
DateInterval.Month, -1, Today())).ToString() & "/1" )))

Regards,
Yurich
0

Author Commented:
Thanks Yurich,

So the formula I need is something like this?

="[Time].[Fiscal].[" & Year(DateAdd(DateInterval.Month, -1, Today())).ToString() & "].[Quarter " & Quarter(DateAdd(DateInterval.Month, -1, Today())).ToString() & "].[" & MonthName( Month( CDate( Year( Today()).ToString() & "/" & Month( DateAdd(DateInterval.Month, -1, Today())).ToString() & "/1" )))" & "]"

The only issue I see here is that Year and Quarter (I'm only guessing this function exists!) are based on calendar year.  Can I make these based on financial year (starting 1st July)?

Thanks again,

Sam
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.