Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports
Crystal Reports Forum d'entraide sur Crystal Reports. Avant de poster --> FAQ Crystal, Tutoriels Crystal
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/12/2007, 11h45   #1
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2007, 12h32   #2
Membre habitué
 
Homme Fred
Inscription : juillet 2007
Messages : 136
Détails du profil
Informations personnelles :
Nom : Homme Fred
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2007
Messages : 136
Points : 122
Points : 122
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

Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2007, 16h16   #3
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2008, 18h43   #4
Membre habitué
 
Homme Fred
Inscription : juillet 2007
Messages : 136
Détails du profil
Informations personnelles :
Nom : Homme Fred
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2007
Messages : 136
Points : 122
Points : 122
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.
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2008, 20h27   #5
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
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 ?

Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 16h54   #6
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 17h07   #7
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
Bonjour,

Perso je ferai deux paramètres : datedeb et datefin et je ferai un groupe sur la date avec changement par mois...
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 17h13   #8
Membre habitué
 
Homme Fred
Inscription : juillet 2007
Messages : 136
Détails du profil
Informations personnelles :
Nom : Homme Fred
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2007
Messages : 136
Points : 122
Points : 122
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.
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 18h08   #9
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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)
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 18h37   #10
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
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..
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 18h52   #11
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 18h57   #12
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 19h19   #13
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
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 ?
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 19h20   #14
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 19h28   #15
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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)
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 19h59   #16
Inactif
 
Avatar de Aitone
 
Inscription : novembre 2006
Messages : 3 569
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3 569
Points : 3 291
Points : 3 291
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é
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 22h02   #17
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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!?
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 10h29   #18
Membre habitué
 
Homme Fred
Inscription : juillet 2007
Messages : 136
Détails du profil
Informations personnelles :
Nom : Homme Fred
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2007
Messages : 136
Points : 122
Points : 122
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 :
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 :
{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.
Coocky10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 11h21   #19
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 15h16   #20
Invité régulier
 
Inscription : décembre 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 28
Points : 6
Points : 6
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?
smartsorft est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h02.


 
 
 
 
Partenaires

Hébergement Web