Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > Formules
Formules Forum sur l'utilisation des formules sous Crystal reports
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 20/06/2008, 16h52   #1
Invité de passage
 
Inscription : juin 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 8
Points : 1
Points : 1
Par défaut [CR XI] - Problème dans l'utilisation des variables partagées

BOnjour,

Je sais que ce sujet a souvent été discuté précédemment, mais suite à la lecture des précédents post, je n'ai toujours pas résolu mon problème.

J'ai un rapport pricipal et un sous-rapport. De ce dernier, je veux renvoyer une donnée nommée "Nombre_Interventions" pour l'afficher dans le rapport principal.

Voici comment j'ai déclaré mes variables "shared" dans mon rapport.

Dans l'entête du rapport principal:


Code :
1
2
3
4
//variable utilisée dans le sous-rapport pour compter le nombre d'interventions d'une requête.
shared numbervar Nombre_Interventions; 
 
Nombre_Interventions:=3;

Dans l'entête du sous-rapport:

*** Il est a noter que je fais afficher "Nombre_Interventions" dans l'entête du sous-rapport juste pour m'assurer que le nombre 3 s'y affichera... et ça fonctionne.
Code :
1
2
shared numbervar Nombre_Interventions;
Nombre_Interventions;

Dans le pied de page du rapport:

*** Je fais afficher le calcul de la vairable "Nombre_Interventions" + un compteur. Ex: 3+5=8. Jusque là, ça fonctionne bien.
Code :
1
2
shared numbervar Nombre_Interventions;
Nombre_Interventions:=Nombre_Interventions+{#RTotal0}

Lorsque je reviens à mon rapport principal:

*** Peu importe où je fais afficher ma formule indiquée plus bas (en pied de page, en fin de groupe ou en "détail d"), j'obtiens toujours "3", soit la valeur affectée au début du rapport. Je perd donc le résultat du précédent calcul. En passant, mon sous-rapport est lancé en "Détail c".
Code :
1
2
3
WhilePrintingRecords;
shared numbervar Nombre_Interventions;
Nombre_Interventions
Je ne comprend pas ce qui se passe. Pourriez-vous m'aider SVP?
J'ai même suivi le FAQ suivant (http://adrien-artero.developpez.com/...rts/sous-etat/). C'est bien expliqué, mais il y a quelque chose que je ne dois pas comprendre.

Merci,

Balises [Code] ajoutées par L.nico merci d'y penser à l'avenir
sep_ghis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 09h50   #2
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Bonjour et bienvenue sur le forum ,
et si en entête de chaque formule vous rajoutez WhilePrintingRecords;
comme dans la dernière formule
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 12h22   #3
Invité de passage
 
Inscription : juin 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 8
Points : 1
Points : 1
Bonjour,

Merci L.nico. Malheureusement, j'avais déjà essayé et ça ne fonctionne pas.

Avez-vous d'autres idées?

Merci à l'avance!
sep_ghis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 13h35   #4
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
A vrai dire pour l'instant je ne comprends pas comment ca pourrait fonctionner sans que l'on précise le moment d'evaluation (Whileprintingrecords) pour pouvoir respecter la continuité entre l'affichage et le contenu des variables partagées ...
De plus tu affiches le contenu de la variable dans le sous-rapport (8) qui est juste...
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 14h02   #5
Invité de passage
 
Inscription : juin 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 8
Points : 1
Points : 1
Bonjour,

J'ai mis WhilePrintingRecords; au début de chaque formule (autant dans le rapport principal que dans le sous-rapport) et le résultat ne revient pas au rapport principal.

Avez-vous d'autres idées?
sep_ghis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 16h49   #6
Membre habitué
 
Inscription : juin 2008
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 96
Points : 114
Points : 114
Ce n'est pas parce que le sous-rapport est en détail c que celui-ci est évalué avant le détail d .
GaelleH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 17h25   #7
Invité de passage
 
Inscription : juin 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 8
Points : 1
Points : 1
Alors, que me suggérez-vous? J'ai beau faire afficher le résultat de la formule n'importe où en fin de rapport (dans le détail ou en fin de groupe ou en fin de rapport), ça n'affiche pas le bon résultat.
sep_ghis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 17h37   #8
Membre habitué
 
Inscription : juin 2008
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 96
Points : 114
Points : 114
Je n'ai pas la réponse, et j'ai d'ailleurs un problème similaire au votre et c'est pour ca que je suis venu ici : Je n'arrive pas à forcer l'évaluation d'un sous état AVANT une formule de l'état principal située dans la meme section que le sous état... avoir une fonction evaluateafter(sous-état) en quelque sorte...
GaelleH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 17h44   #9
Invité de passage
 
Inscription : juin 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 8
Points : 1
Points : 1
Bonjour,

Je viens de trouver la source de mon problème. Ce que je n'avais pas mentionné, c'est que mon sous-rapport est un sous-rapport à la demande. Si je configure mon sous-rapport pour qu'il s'affiche tout le temps, ça fonctionne super bien.

Malheureusement, je dois absolument configurer mon sous-rapport à la demande, car mon sous-rapport est énorme. C'est pour cette raison que je demande de faire ressortir le sous-rapport seulement quand nous le voulons.

Que puis-je faire?

Merci, nous allons y arriver!!!
sep_ghis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 18h11   #10
Membre habitué
 
Inscription : juin 2008
Messages : 96
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 96
Points : 114
Points : 114
Je trouve que dans votre cas, il vaut mieux faire un sous état normal et inclure un nouveau paramètre à l'état principal pour demander à l'utilisateur si O ou N il veut que soit calculé le nombre d'interventions et de conditionner la suppression du détail c avec not({?paramètre}="O") .
Finalement je me rends compte que mon pb était différent du votre et je vous prie donc de m'excuser d'avoir soulevé un autre pb dans le fil que vous avez initié.
GaelleH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 17h19   #11
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,

Cela veut dire quoi le sous-état est énorme ? S'il n'est pas parcouru, il ne peut transmettre les infos...
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 17h36   #12
Invité de passage
 
Inscription : juin 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 8
Points : 1
Points : 1
Je veux dire que mon sous-rapport génère beaucoup de données. C'est pour cette raison que je le configure "À la demande" pour éviter de générer beaucoup de page pour rien. Par contre, j'aurais aimé quand même retourner certaines informations à mon rapport principal, même si le sous-rapport est configuré "À la demande".

D'après ce que je peux en conclure, c'est que le sous-rapport n'est pas du tout exécuté, tant que l'usager n'a pas cliqué sur le lien pour faire afficher le sous-rapport. C'est donc pour cette raison que mes calculs ne fonctionnes pas. Ai-je bien compris?

Alors, comment pourrais-je faire pour "simuler" des sous-rapport à la demande sans utiliser cette fonction. Autrement dit, comment pourrais-je faire pour cacher tous mes sous-rapports et faire apparaître celui que je veux quand j'en ai besoin?

Si on reprend mon exemple, mon sous-rapport est dans la section "Détail C". Si mon rapport principal génère, par exemple, 10 enregistrements, j'obtiens donc 10 fois le sous-rapport. Vrai? Bon. Comment pourrais-je faire pour cacher tous mes sous-rapports et au besoin, faire afficher, par exemple, le sous-rapport de l'enregistrement #4.

Question comme ça. Est-il possible d'ajouter un objet quelconque (lien, bouton, etc) pour que, lorsque l'usager clique dessus, ça fait apparaître le sous-rapport désiré?

Merci,
sep_ghis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 17h42   #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 sep_ghis Voir le message
D'après ce que je peux en conclure, c'est que le sous-rapport n'est pas du tout exécuté, tant que l'usager n'a pas cliqué sur le lien pour faire afficher le sous-rapport. C'est donc pour cette raison que mes calculs ne fonctionnes pas. Ai-je bien compris?
exactement
Citation:
Envoyé par sep_ghis Voir le message
Si on reprend mon exemple, mon sous-rapport est dans la section "Détail C". Si mon rapport principal génère, par exemple, 10 enregistrements, j'obtiens donc 10 fois le sous-rapport. Vrai?
vrai
Citation:
Envoyé par sep_ghis Voir le message
Bon. Comment pourrais-je faire pour cacher tous mes sous-rapports et au besoin, faire afficher, par exemple, le sous-rapport de l'enregistrement #4.
Pourquoi le #4 ? tu le définis toi même ?
tu as la possibilité de faire un clic droit sur ton sous-état, mettre en forme le sous-état puis mettre une formule de suppression genre
Citation:
Envoyé par sep_ghis Voir le message
Question comme ça. Est-il possible d'ajouter un objet quelconque (lien, bouton, etc) pour que, lorsque l'usager clique dessus, ça fait apparaître le sous-rapport désiré?
A vrai dire, je n'en ai pas la moindre idée
Aitone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 19h08   #14
Invité de passage
 
Inscription : juin 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 8
Points : 1
Points : 1
Merci pour les réponses.

Pourquoi l'enregistrement #4? C'est simplement un exemple. Le fait de vouloir utiliser les sous-rapports à la demande, c'est justement de vouloir faire afficher le sous-rapport qui nous intéresse.

Comment pourrais-je faire afficher le sous-rapport X (choisi par l'utilisateur une fois le rapport principal généré) tout en faissant fonctionner mes calculs dans mes sous-rapports, sans utiliser la fonction "Sous-rapport à la demande" qui, elle, m'empêche d'obtenir le résultat des formules?
sep_ghis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 16h32   #15
Invité de passage
 
Inscription : juin 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 8
Points : 1
Points : 1
Bonjour,

J'ai solutionné mon problème concernant ma dernière question. J'ai créé un 2e sous-rapport qui est simplement allé chercher le nombre d'interventions d'une requête. Ce sous-rapport est appellé en "Détail A". Une fois que j'ai ce nombre, s'il est plus grand que 0, je fais afficher mon autre sous-rapport qui fait le listing des interventions.

Merci,
sep_ghis 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 02h58.


 
 
 
 
Partenaires

Hébergement Web