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 01/06/2004, 18h32   #1
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 22
Points : 22
Par défaut [CR8.5] Grouper des subreports ensembles

Salut à tous.

Je n'arrive pas (mais je ne sais pas sis c'est possible) à grouper des subreports entre-eux.
Je m'explique :
j'ai un rapport vide ou j'ai mis 4 subreports, dans 4 sections Detail différentes. Le premier subreport utilise 2 tables nommées Account et Activity, mon 2e subreport utilise 3 tables qui sont Account, Opportunity et Activity, mon 3e subreport utilise 4 tables (Account, Contact, Opportunity et Activity) et le 4e subreport utilise 3 tables (Account, Contact et Activity).
Mon but est d'afficher toutes les activity des account.
Je voudrais donc grouper les 4 subreports par account.
Seulement, je ne gère pas du tout les subreports et je ne sais pas comment les lier entre-eux.
Est-ce que j'aurait dû faire un premier rapport avec plusieurs tables et ajouter seulement 3 subreports ???

Merci de votre aide.
liberio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2004, 23h36   #2
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 22
Points : 22
Pour résumer, je voudrais savoir si il est possible de mettre les données (account) de 4 subreports dans un seul rapport commun et de grouper se rapport (par account). Car les données retournées par chacun des 4 subreports sont différentes. Et je pourrais donc avoir tous mes account différents dans un seul rapport qui sera trié.

J'espère avoir été plus clair et que vous aurez une idée sur le sujet.

Merci d'avance.
liberio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2004, 08h57   #3
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
si j'ai bien compris ton problème.
Il faut que dans ton état principal tu te bases sur la table Account et que tu fasses un groupe sur account
En début de groupe ou en fin de groupe dans 4 sections de groupe (#1A #1B #1C #1D) tu places tes
4 etats en faisant une jointure sur le champ concerné.
__________________
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 02/06/2004, 19h51   #4
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 22
Points : 22
Ca marche ! Merci beaucoup.

J'ai maintenant 2 petits problèmes concernant ce rapport :

1) Je voudrais désormais supprimer les GroupFooter (où se trouvent mes subreports) si ils sont vides (pas de valeurs). Seulement, lorsque je vais dans le Section Expert, que je coche la case Suppress en face d'un GroupFooter et que je veux faire un formula y correspondant, je n'ais pas accès à mes subreports et je ne peux donc pas faire de test comme ceci : if isnull(subreport) then true else false.

2) Je veux compter le nombre de données pour chaque groupe et pour le rapport entier également. Et quand j'insère un Summary ou bien un GrandTotal il me compte les account de mon état principal (et donc le nombre d'entête de groupe) mais pas ceux de mes sous-états.

Aurais-tu une petite idée sur ces 2 problèmes ?
Merci d'avance.
liberio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2004, 10h19   #5
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
1) en utilisant une variable shared qui totalise tes valeurs dans ton sous etat
Ensuite dans la condition de suppression de ton etat principal(pour le groupe), si cette variable est <> 0 alors False else True

2) Idem par une variable Shared Dans les groupes de ton sous etat tu peux compter
facilement le nombre d'enregistrement X=X+1 Pour chaque fin de groupe dans le sousEtat
Tu dois en utiliser 2 une que tu réinitialises avant chaque sous etat et l'autre qui totalise de
façon globale sans réinitialisation
__________________
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 03/06/2004, 21h37   #6
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 22
Points : 22
Citation:
1) en utilisant une variable shared qui totalise tes valeurs dans ton sous etat
Ensuite dans la condition de suppression de ton etat principal(pour le groupe), si cette variable est <> 0 alors False else True
Ca ne marche pas. Le rapport principal n'affiche plus du tout le sous-rapport. Pourtant j'ai créé un formula dans le GroupFooter de mon sous-rapport tel que :
Shared numberVar AccountNb := Count ({activity.objectname})

Et j'ai fais le test dans mon état principal (section expert) tel que :
Shared NumberVar AccountNb;
If AccountNb <> 0 then false else true

Je ne comprends pas pourquoi la valeur est égale à 0 dans mon rapport principal alors qu'elle est égale à 1 dans mon sous-rapport ...
liberio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2004, 01h48   #7
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 22
Points : 22
Je viens d'essayer de mettre un WhilePrintingRecords devant le code de la formule située dans le sous-rapport et également devant la condition du rapport principal mais ça ne marche toujours pas.

J'ai également créer une formule dans le rapport principal pour simplement afficher la variable partagée du sous-rapport mais il m'indique "0" au lieu de "1" (il y a une seule donnée dans le sous-rapport).
J'ai utiliser le code suivant :

Code :
1
2
3
WhilePrintingRecords; 
Shared NumberVar AccountNb;
AccountNb
Et j'ai bien pensé à placer cette formule après le sous-rapport dans le rapport principal (Report Footer). Et j'ai aussi essayer de donner le même nom à cette formule qu'à celle du sous-rapport mais rien à faire ...

Je ne vois pas du tout.
Un petit coup de puce me ferais plaisir.
Merci d'avance.
liberio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2004, 09h21   #8
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
Pour le 1)
Une manière plus simple, tu définis pour le sous-etat l'option d'etat "Suppression si aucun Enregistrement" puis dans ton etat principal sur la section concernée "supprimer si section Vide"

Pour le 2)
En utilisant des Shared Ca marche ou pas ??
__________________
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 08/06/2004, 01h44   #9
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 22
Points : 22
Bon, rien ne marche avec les shared dans mon cas
Je ne comprends pas tout ... pourtant mon lien entre ma table principale et ma sous-table est bon car j'ai des données du sous-rapport qui viennent se ranger automatiquement dans mes groupes ... j'ai même essayer de sauvegarder les noms des accounts de mon sous-rapport dans un String (variable shared) pour faire une condition dans mon rapport principal sur la suppression ou non des groupes à partir de ce String mais sa longueur dépasse vite les 254 caractères autorisés et je n'arrive de toute façon pas à récupérer n'importe quelle données de mon sous-rapport via une varible shared (le String est null dans mon rapport principal) ....

De ce fait, ni le 1) ni le 2) ne marchent !!!
Et le fait de dire
Citation:
"Suppression si aucun Enregistrement"
dans mon sous-état et
Citation:
"Suppression si section Vide"
dans mon état principal ne vas enlever les groupes vides que si mon sous-rapport est entièrement vide, alors que je veux supprimer les groupes vides de mon rapport principal même si il y a qu'une donnée dans mon sous-rapport. Pour résumer, j'ai un sous-rapport comme ceci par exemple :
- account1
- account2
- account4

j'ai un deuxième sous-rapport comme ceci:
- account2
- account4
- account6

et je veux que mon rapport principal soit comme ceci:
- account1
account1a
- account2
account2a
account2b
- account4
account4a
account4b
- account6
account6a

mais je ne veux surtout pas ceci comme état principal:
- account1
account1a
- account2
account2a
account2b
- account3
- account4
account4a
account4b
- account5
- account6
account6a

Ici, account3 et account5 sont des groupes qui doivent être supprimés.

Est-ce que tu as encore une idée sur le sujet ?
Merci d'avance.
liberio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h42.


 
 
 
 
Partenaires

Hébergement Web