2010-04-29 10 views
0

Je souhaite afficher un diagramme à barres dans un rapport qui affiche la somme d'une mesure regroupée par mois pour les 24 derniers mois. Les mois qui n'ont pas de tuples n'apparaissent pas dans le graphique. Je ne veux pas ça. Je veux exactement 24 groupes/bars qui sont 0 s'il n'y a pas de tuples. Quelle est la meilleure façon de procéder?Comment définir un graphique d'historique dans Crystal Reports .net (2008)?

 thanks 
+0

C'est assez vague. Je voudrais créer un SP qui a fait tout le regroupement dont vous avez besoin. Il devrait y avoir beaucoup de docs sur la façon d'utiliser le contrôle graphique de cristal. – Jeremy

+0

Merci pour la réponse, mais pourriez-vous développer le terme SP? :-) –

+0

ok, désolé, je viens de l'obtenir, procédure stockée. Je voudrais cependant le faire sans programmation côté serveur. J'ai essayé d'ajouter une vue qui ajoutait des tuples factices qui datent toujours de 24 mois à la source de données et la performance des rapports de cristal dégradée jusqu'à un point où elle n'était plus utilisable. Je pense qu'ajouter des objets à la base de données uniquement pour que Crystal Reports affiche ce que je veux est une conception très moche. –

Répondre

1
--oracle-specific syntax 
with MONTHS as (

    --current month 
    SELECT TO_DATE(to_char(sysdate,'mm') || '/1/' || to_char(sysdate,'yyyy'),'mm/dd/yyyy') date_field, 0 measure_value 
    FROM DUAL 

    UNION 

    --prior month 
    SELECT add_months(TO_DATE(TO_CHAR(SYSDATE,'mm') || '/1/' || TO_CHAR(SYSDATE,'yyyy'),'mm/dd/yyyy'),-1) date_field, 0 measure_value 
    FROM DUAL 

    --continue for remaining 22 months 
), 

DATA AS (

    SELECT date_field, COUNT(measure_field) measure_value 
    FROM table 
    GROUP BY date_field 

) 

SELECT * 
from data 

UNION 

SELECT * 
FROM MONTHS m 
WHERE NOT EXISTS (
    SELECT 1 
    FROM data d 
    where m.date_field=d.date_field 
) 

Il serait logique pour vous de créer une fonction définie par l'utilisateur qui renvoie un tableau des valeurs de date, plutôt que toutes les déclarations de l'Union.

Utilisez cette requête dans l'objet Command du rapport.

Questions connexes