An alternative, and sometimes better performing approach could be to add an attribute to your date dimension along the lines of "IsFuture".
Depending on your data load/processing schedule you could have a field in your datawarehouse or a calculated column in your dsv precalculating if the date is in the future or not.
Instead of performing an on the fly calculation with an IIF
in your MDX you could then create a calculated measure using SCOPE
like this (untested, from memory)
Scope
(
[Date].[IsFuture].&[0]
) ;
This = 1;
end scope;
Just an idea I'm offering, your question doesn't provide a lot of detail to create a working piece of sample code but this could be an alternative approach.
This would return empty if the date is in the future instead of 0 but depending on your requirements that could provide better results if your client is only returning NONEMPTY
/NONEMPTYCROSSJOIN
results.