IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAP Crystal Reports Discussion :

Créer un rapport en deux parties en fonction d'une donnée précise


Sujet :

SAP Crystal Reports

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 44
    Points : 30
    Points
    30
    Par défaut Créer un rapport en deux parties en fonction d'une donnée précise
    Bonjour,

    je viens vous demander un petit coup de main pour un problème de requêtes.

    Alors voilà: je dois éditer un rapport qui sera en 2 parties:
    - une partie référençant les caractéristiques d'un moteur (dont le nom sera demandé à l'utilisateur via un prompt) : codeforme, vitesse, puissance, etc...
    - une partie référençant les moteurs ayant le même CODEFORME que le moteur précédent

    Ma question est : est ce que dans Crystal Report il y aurait possibilité de récupérer la liste des moteurs correspondants au moteur sélectionné par mon utilisateur en se basant sur le CODEFORME de celui-ci?

    Je ne fais que très peu de Crystal Reports du coup les 3/4 du temps je ne suis pas bien sûre de faire ce qu'il faut hélas...

    Ci joint un exemple de la forme finale du rapport:

    Nom : Exemple rapport.png
Affichages : 91
Taille : 8,7 Ko

    J'ai récupéré toutes mes données de tous les moteurs dans une requête sans variable liée, que je vous joins au cas où elle vous inspire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    SELECT 
        eo.mch_code AS moteur,
        eo.mch_name AS description,
        eo.sup_mch_code AS emplacement,
        MAX(CASE WHEN ts.attribute = 'CODEFORME' THEN ts.VALUE_TEXT END) AS codeforme,
        MAX(CASE WHEN ts.attribute = 'VITESSE' THEN ts.VALUE_TEXT END) AS vitesse,
        MAX(CASE WHEN ts.attribute = 'VITESSE1' THEN ts.VALUE_TEXT END) AS vitesse1,
        MAX(CASE WHEN ts.attribute = 'VITESSE2' THEN ts.VALUE_TEXT END) AS vitesse2,
        MAX(CASE WHEN ts.attribute = 'PUISSANCE1' THEN ts.VALUE_TEXT END) AS puissance1,
        MAX(CASE WHEN ts.attribute = 'PUISSANCE2' THEN ts.VALUE_TEXT END) AS puissance2,
        MAX(CASE WHEN ts.attribute = 'MARQUE' THEN ts.VALUE_TEXT END) AS marque,
        TO_CHAR(tor.rowversion,'YYYYMMDDHH24MISS') AS objversion
    FROM 
        IFSAPP.technical_object_reference_tab tor
        INNER JOIN IFSAPP.technical_specification_tab ts
            ON ts.technical_spec_no = tor.technical_spec_no 
            AND ts.technical_class = tor.technical_class
        INNER JOIN IFSAPP.equipment_object_tab eo 
            ON tor.key_ref = IFSAPP.Client_SYS.Get_Key_Reference('EquipmentObject', 'CONTRACT', eo.contract, 'MCH_CODE', eo.mch_code)
    WHERE eo.obj_level IS NULL
        AND EXISTS (SELECT 1 FROM IFSAPP.user_allowed_site_pub WHERE eo.contract = site)
    GROUP BY eo.mch_code, eo.mch_name, eo.sup_mch_code, tor.rowversion
    ORDER BY eo.mch_code
    Si vous avez la moindre idée je suis preneuse, parce-que là je suis bloquée complet, et vu que je suis la seule à faire du CR dans mon équipe, c'est compliqué.

    Merci beaucoup par avance en tout cas.

    Bonne journée à tous!

  2. #2
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 942
    Points : 2 720
    Points
    2 720
    Par défaut
    Bonjour

    En fait tu n'as qu'un seul rapport qui remonte les moteurs correspondants.
    Ta première partie ne sert qu'à afficher les paramètres saisis par l'utilisateur

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    tout d'abord merci pour la réponse!
    Effectivement, dans mon petit moment de stress j'ai zappé que tous les moteurs étaient récupérés dans ma vue IAL que j'utilise comme source de données.
    Par contre là (et c'est peut-être encore le stress qui m'aveugle, désolée si la question est donc stupide): comment je fais pour n'afficher que les moteurs ayant le même codeforme que le moteur demandé par mon utilisateur?
    Est-ce qu'il faut que je sauve la valeur du champ codeforme dans une variable et qu'après je la récupère quelque part dans une autre requête pour faire une sélection?
    Est-ce que c'est même possible de faire ça dans Crystal reports ?

  4. #4
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 942
    Points : 2 720
    Points
    2 720
    Par défaut
    Une fois que vous avez pris votre vue comme source de données, vous créez vos paramètres, et dans la sélection des enregistrements vous mettrez MAVUE.CODEFORME = MonparametreCodeFrome

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Mais ça ça implique que mon utilisateur connaisse le codeforme du moteur qui lui est demandé dans mon prompt {?Moteur} ça du coup.
    Mais s'il ne le connait pas, est-ce que je ne peux pas récupérer le codeforme de la première partie de mon rapport, le stocker quelque part (je ne sais pas trop où, mais quelque chose comme une variable) et ensuite générer la liste des moteurs de la seconde partie de mon rapport en fonction de cette donnée stockée?

  6. #6
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 942
    Points : 2 720
    Points
    2 720
    Par défaut
    OK,

    donc en fait le seul paramètre que vous passez est le code Moteur.
    Dans ce cas dans la premère partie du rapport, avec ce code moteur, vous remontez toutes les caractéristiques du moteur (codeforme, vitesse puissance, etc...)
    et dans un sous rapport basé sur la meêm vue, vous passez en paramètre le codeforme remonté dans le rapport principale, et vous faites afficher tout le reste (moteur, vitesse, etc....)

  7. #7
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Magnifique, ça marche aux petits oignons, merci beaucoup!

    Maintenant il faut juste que j'arrive à faire comprendre à CR que ce serait bien si mon tableau de mon sous-rapport pouvait s'afficher dès la première page et pas forcément sur une nouvelle page, mais ça c'est du bidouillage, je trouverai!

    Je laisse la conversation ouverte encore un petit peu au cas où une question me vienne, mais je passerai ce sujet en résolu cet après-midi!

    Encore merci Luc pour toute votre aide et votre temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2019] Rendre invisible un sous rapport en fonction d'une condition
    Par irimi54 dans le forum IHM
    Réponses: 2
    Dernier message: 08/10/2022, 11h23
  2. [Python 2.X] Découper un fichier json en fonction d'une donnée précise
    Par Xam29870 dans le forum Général Python
    Réponses: 4
    Dernier message: 30/07/2018, 10h00
  3. Créer Dossier + sous dossier en fonction de la valeur d'une textbox
    Par aurelu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/11/2017, 18h57
  4. Réponses: 3
    Dernier message: 11/10/2007, 14h03
  5. Réponses: 17
    Dernier message: 23/05/2007, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo