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 :

[XI] Problème de sous rapport


Sujet :

SAP Crystal Reports

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut [XI] Problème de sous rapport
    bonjour,
    mon pb est le suivant:
    j'ai un état, je travaille sous crystal reports XI, qui affiche le total des volumes de transactions pour un mois donné, je lui passe le mois comme parametre et il me renvoie le total et pour se faire, j'ai créé une fonction derrière qui prend comme paramétre le mois. jusqu'à là tt fonctionne bien (pour un mois) mais mon pb c'est que je veux afficher les résultats pour six mois sans refaire le même état six fois. j'ai pensé à faire un autre rapport dont j'insere mon état comme sous rapport de façon que je lui passe le semestre comme parametre mais j'arrive pas à le faire.

    j'attend avec impatience vos idées et suggestions.
    Merci d'avance

  2. #2
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    Bon alors si j'ai bien suivi il suffit à la place d'avoir un mois en paramètre, il te faut avoir une plage de date (soit une période de 6 mois en l'occurence)

    Quand tu dis que tu as creer une fonction tenant compte du mois en paramètre, est ce une fonction de sélection ?

    si oui il suffit allors de remplacer ton champs paramètre par un champs paramètre de type date autorisant les valeur de plage.

    et ensuite d'écrire une formule de sélection dans le genre


  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut re
    je te remercie pour ta réponse, en fait mon champ paramétre, pour le sous rapport, est déjà une date mais mon deuxième champ paramètre, pour le rapport principal, est une plage de dates, alors je vois pas comment faire pour segmenter la plage en mois et la faire passer au sous rapport.
    j'espère que j' ai été clair pour l'explication.
    Merci d'avance

  4. #4
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    En fait non je comprend pas bien, tu veux passer un mois à ton sous rapport en paramètre, mais tu veux tout un semestre à l'affichage.

    Donc c'est soit tu insère 6 sous rapport et tu transmet à chacun un mois différent avec un saut de page entre par exemple, soit tu transmet directement le semestre à ton sous rapport avec un affichage adapté pour les 6 mois (en créant 6 sections différentes pour chaque mois, par exemple) et là du coup c'est plus la peine de passer par des sous rapport.

    Mais si l'idée était de passer mois par mois (donc en 6 fois) à un unique sous rapport, et qu'au finale tu arrive avec un état qui contient à l'affichage tout le semestre, cela me parais totalement impossible.

  5. #5
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Bonsoir,

    Je viens de lire plusieurs fois ce topic et je ne comprens vraiment pas ce que tu souhaite faire.

    Peux-tu détaillé stp ?


  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    ok, je suis désolé de ne pas avoir bien expliqué! je vous explique:

    en fait, mon pb c'est que je dois afficher les volumes des transactions pour chaque semestre, càd je dois renseigner la date de début du semestre et il doit me renvoyer finalement les volumes détaillés par mois ( un tableau par mois, 6mois au total). j'ai commencé par faire un état qui affiche les volumes détaillés pour un mois donné, pr celui là je lui passe en paramètre le mois é alors il m affiche les volumes des transactions correspondant à ce mois, jusqu'à là tout est bon (pour un seul mois ça fonctionne très bien), mais pour avoir les volumes des six mois je voudrais pas refaire l'état ( et ts les calculs derrière!) six fois !!! vous voyez

    c'est pour cela que j'ai pensé au sous état, je pense passer mon état (que j'ai fait pour un mois) comme sous état dans un rapport principal, pour ce dernier je lui passe le début de semestre comme paramètre et à lui de segmenter le semestre en mois et les faire passer au sous état.
    Pour segmenter le semestre, j'ai créé, dans le rapport principal, une commande qui me renvoie les six mois de semestre:

    voilà ma commande : (?date_deb c'est le début de semestre)

    select (select {?date_deb} from dual union
    select add_months({?date_deb},1) from dual union
    select add_months({?date_deb},2) from dual union
    select add_months({?date_deb},3) from dual union
    select add_months({?date_deb},4) from dual union
    select add_months({?date_deb},5) from dual) data from dual

    et maintenant je voudrais lier les deux rapports par le résultat de ma commande et c'est là où j'ai le problème, il ne me prend pas en compte le paramètre que je lui passe (?date_deb), il prend toujours la valeur par défaut.

    alors comment faire pr résoudre ce pb? ensuite j'aimerais savoir si je peux mettre le résultat de ma commande dans une variable

    j'espère que j'ai été clair et merci d'avance

  7. #7
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Bonjour,

    Perso je ferai deux paramètres : datedeb et datefin et je ferai un groupe sur la date avec changement par mois...

  8. #8
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    Ba oui parceque si j'ai bien compris la variable paramètre de réception dans ton sous état n'est pas une plage de date, et ce que tu souhaite faire ne peut pas marché (en fonction de ce que j'ai dis plus haut).

    Moi je reprendrais mon état qui fonctionne avec un mois et je le modiefierais pour qu'il puisse fonctionner avec une plage de date en paramètre.
    Avec en groupe le paramètre qui contient la plage de date, et ta présentation en pied de page de ce groupe, ca dois fonctionner sans aucun problème.

    Mais je le répète tu ne peut pas transmettre 6 fois un mois à ton sous rapport, il n'y a pas de boucle pour faire cela.

  9. #9
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    non ça va pas marché, pour mon cas, le groupe parce que je n'ai pas un champ que je peux regrouper avec (sont des dates à extraire de la date de début et date de fin)

  10. #10
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Citation Envoyé par smartsorft Voir le message
    non ça va pas marché, pour mon cas, le groupe parce que je n'ai pas un champ que je peux regrouper avec (sont des dates à extraire de la date de début et date de fin)

    Tu as forcément un champ de date pour afficher tes semestres..

  11. #11
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    mais moi je ne souhaite pas transmettre 6 fois le mois à mon sous état, en fait j'ai créé une commande qui me renvoie la plage des date et je souhaite tout simplement lier mes rapports par cette commande (qui est une plage de dates), en fait je suis débutant en crystal mais d'après que j'ai après si je lie les deux rapports par cette commande il va m afficher pour chaque date, de la plage, un état (qui est le sous rapport) est ce c pas possible?

    sinon pr ta proposition, quel sera le type de parametre que je dois mettre, puisque c'est une plage de date, normalement il doit contenir plusieurs enregistrements, est ce qu il va etre tableau de date ou quoi exactement, normalement il doit etre un conteneur sinon je vois pas comment faire le regroupement par le parametre

  12. #12
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    non je n 'ai pas un champ date, c'est dans le code où je calcule les volumes, en fait j'ai le champ date_operation et avec ça que je m en sers pour faire les calculs dans le code mais mais je peux pas faire le regroupement avec

  13. #13
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Citation Envoyé par smartsorft Voir le message
    en fait j'ai le champ date_operation et avec ça que je m en sers pour faire les calculs dans le code mais mais je peux pas faire le regroupement avec
    pourquoi ?

  14. #14
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    j'aimerais bien que vous me confirmiez est ce que cette requête est juste ou pas :
    select (select {?date_deb} from dual union
    select add_months({?date_deb},1) from dual union
    select add_months({?date_deb},2) from dual union
    select add_months({?date_deb},3) from dual union
    select add_months({?date_deb},4) from dual union
    select add_months({?date_deb},5) from dual) data from dual

    en fait, je veux récuperer les six mois dans la variable data, est c possible? parce qu il ne m affiche pas les mois qd j insére data dans le rapport

  15. #15
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    parce que ça va pa me servir cette date, en fait, je prend la date de début de mois et je calcule la somme de toutes les opérations qui se sont passées dans ce mois ( date_operation =mois), et en plus je ne fais pas les calculs pour toutes les dates que j'ai dans la table ( y a des condions et des jointures que je fais auniveau du code)

  16. #16
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Mais bien sûr que si elle va servir cette date ! Puisque tu t'appuies dessus...
    Si tu mets un code dans l'expert selection, les calculs ne seront fait que sur ce qui est sélectionné

  17. #17
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    en fait, sur l expert selection je n'ai mis que de requêtes qui font appel à la fonction de calcul que j'ai developpé sur sql navigator, mais en tout cas comme je t ai expliqué, ça va pas me servir ce champ

    mais dites moi svp est c la requête que j'ai mentionné dans mon msg précedent est juste!?

  18. #18
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    Le truc c'est qu'avec Crystal Report, moi je ne suis pas expert en code SQL, puisque l'avantage de l'expert de sélection c'est d'éviter d'écrire du SQL.

    Donc moi j'avourerais que ta requête me parles pas beaucoup, toutefois si tu veux bien l'expliquer que je me couche moins bete ce soir, je dis pas non.

    Tu écris ce code dans un champs d'expression SQL (parceque j'ai pas encore compris à quoi servais ces champs ) ou dans une commande ?

    Maintenant pour ce qui est de la philosophie Crystal Report :

    Si tu creer un champs de formule qu'on appelera Mois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cstr({date_operation , "MMMM") + " " + Cstr({date_operation}, "yyyy")
    Que tu creer un champs de paramètre de type date, avec valeur de plage, qu'on appelera Date

    Que tu creer un groupe avec le champs @Mois, et que tu creer une sélection sur ce groupe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {date_operation}in {?Date}
    Et qu'ensuite tu met ton tableau dans le groupe, on devrais pas être loin de ce que tu souhaite faire, ou en tout cas essai de t'en inspirer.

  19. #19
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    oui c bein d utiliser l expert selection mais parfois on se trouve devant l obligation de faire des requêtes manuellement qu on ne peut pas les avoir avec expert selection.

    en fait, le but de ma requête c'est d'avoir plusieurs dates à partir du parametre ?date_deb (qui est la date de début de mon semestre) et c'est pour cela que j'ai fait des "union" afin d'avoir plusieurs enregistrements:

    le premier "select {?date_deb} from dual" va mettre la date de départ (le parametre) dans le premier enregistrement,
    le deuxième "select add_months({?date_deb},1) from dual" va mettre le deuxième mois du semestre dans le deuxième enregistrement,
    et ainsi de suite jusqu'à la sixième date et comme ça j aurais à la fin six enregistrements (six lignes).

    mais en fait, j'ai procédé ainsi parce que je savais pas l'option "valeur de plage"

    merci, je vais essayer en utilisant "valeur de plage"

    ah oui, pour ma requête, je l ai fait dans une commande

  20. #20
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    en fait j'ai opté pour la plage de valeurs mais je dois en fait selectionner les données en fonction du parametre plage de valeur, càd que je dois avoir dans ma formule

    {?madate} in [{?plage_de_dates}]

    mais ça ne marche pas, il ne prend pas {?plage_de_dates} comme une liste des dates!

    est c possible de faire cette formule?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème exécution sous-rapport
    Par rockyangel dans le forum Microsoft Dynamics CRM
    Réponses: 0
    Dernier message: 04/10/2012, 12h23
  2. [CR XI] Problème affichage-sous rapport+Groupes
    Par ReiviloH dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 07/07/2010, 12h35
  3. Problème de sous rapport
    Par thomasaubry dans le forum iReport
    Réponses: 2
    Dernier message: 08/10/2009, 11h37
  4. [CRXI] Problème de sous-rapport
    Par navis84 dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 21/11/2007, 09h28
  5. [CR XI+VS 2003] Probléme de sous-rapport
    Par Feilong dans le forum SDK
    Réponses: 1
    Dernier message: 07/12/2006, 18h00

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