• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 520
  • Last Modified:

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:
=Month(DateAdd("m",-1,Now()))

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?
0
bevco7
Asked:
bevco7
  • 3
  • 2
1 Solution
 
YurichCommented:
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
 
bevco7Author 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
 
YurichCommented:
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
 
bevco7Author 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
 
YurichCommented:
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" )

Then instead of Today() in your main formula, I'd use

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

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now