2010-04-15 10 views
1

Je crée un rapport dans Reporting Services 2005 basé sur un cube SSAS 2005. L'idée de base du rapport est qu'ils veulent voir les ventes pour l'exercice en cours à ce jour par rapport aux ventes de l'année dernière à ce jour. Cela semble simple, mais étant donné que c'est mon premier "vrai" rapport basé sur SSAS, je vais avoir un sacré moment. En premier lieu, comment calculer l'exercice, le trimestre ou le mois en cours? J'ai une hiérarchie des dates fiscales avec toutes ces informations, mais je n'arrive pas à comprendre comment dire: «Sur la base de la date d'aujourd'hui, trouvez l'année fiscale, le trimestre et le mois en cours».Obtention de l'exercice en cours à partir de la hiérarchie avec MDX

Mon deuxième problème, mais un peu moins important, concerne les ventes des dernières années par rapport aux ventes de cette année. J'ai vu BEAUCOUP d'exemples sur la façon de le faire, mais ils supposent tous que vous sélectionnez la date manuellement. Comme il s'agit d'un rapport qui fonctionnera à peu près de lui-même, j'ai besoin d'un moyen d'insérer l'exercice, le trimestre et le mois «en cours» dans les fonctions PERIODSTODATE ou PARALLELPERIOD pour obtenir ce que je veux. Donc, je vous demande votre aide sur celui-ci.

Répondre

0

Vous devrez probablement modifier manuellement le SSX MDX pour ce faire. Il est possible d'obtenir SSAS d'utiliser « Aujourd'hui », il se fait habituellement quelque chose comme ceci:

WITH 
MEMBER [Today] 
AS { 
StrToMember("[Date].[Date Key].&[" + Format(now(), "yyyyMMdd") + "]") 
} 


SELECT 
    [Measures].[Some Measure] 
ON COLUMNS 
FROM  
    [Cube] 
WHERE 
    {[Today]} 

Vous aurez besoin de changer cela pour adapter votre propre structure de cube bien sûr. Donc, étant donné que vous avez un exercice fiscal, et que vous voulez ajouter des valeurs, modifiez ce qui précède pour l'adapter? Mettre en place une chaîne comme je vous l'ai montré qui équivaut aux valeurs que vous voulez utiliser. On dirait que tu vas bien après ça?

0

Je sais qu'il est un « peu » trop tard, mais pour les personnes atteignant cette page question cela pourrait aider:

IIF(Month(Now()) > MonthOffSetNumber, Year(Now()) + 1,Year(Now())) 

Ceci est pour obtenir l'exercice en cours. Cela sera appliqué dans quelque chose comme ceci:

SET CurrentFiscalYear AS 
(
    StrToSet("[Dim Date Name].[Fiscal Year].&[" + Format(IIF(Month(Now()) > MonthOffSetNumber, Year(Now()) + 1,Year(Now()))) + "]") 
) 

Cela vous aidera à vous joindre ultérieurement à la requête.

0

Nous trouvons un moyen facile de calmer la période fiscale en date en mdx en utilisant des paramètres. Imaginons que nous ayons BeginDate (01/04/2014) et EndDate (31/03/2015). Voici les formulaires. Cliquez sur le paramètre « beginDate » dans le rapport de données - clic droit paramètres - Spécifier les valeurs - ajouter de la valeur d'expression:

=DATEADD 
("M" 
,IIF(Month(Today())<4 
,-Month(Today())-8 
,-Month(Today())+4 
) 
,DATEADD("D",0-DATEPART("D",Today())+1,Today())) 

Faites la même chose pour le second paramètre « EndDate » et définir les valeurs defualt - Spécifier les valeurs et ajouter de la valeur d'expression :

=DATEADD("D",-1,DATEADD("M",12,DATEADD 
("M" 
,IIF(Month(Today())<4 
,-Month(Today())-8 
,-Month(Today())+4 
) 
,DATEADD("D",0-DATEPART("D",Today())+1,Today())))) 

Votre rapport SSR aura désormais l'exercice comme période par défaut. Moise Kabongo