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 22/06/2005, 17h10   #1
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
Par défaut [CR-subquery] faire un count...

bonjour,

je souhaiterais qu'on m'explique clairement (parce que pour le moment CR c'est pas ma tasse de thé et que le boukin "the complete reference" en anglais ne m'aide pas vraiment) comment on fait une sous requete dans un rapport crystal report.

j'ai donc une table facture (factureid,facturetype,montant,date,agence,projetid)
je fais une somme de facture par agence sur une date comprise entre date1 et date2.

chaque projet a [0..n] facture, et ses factures peuvent avoir des dates différentes.

j'ai crée des formules pour que selon certains cas on retranche 70euro du montant des factures pour un projet ou 30% de la facture selon son type.

En ce qui concerne les % il n'y a pas de soucis, par contre pour les 70euros le problème se pose.

1) je ne peux pas retrancher 70euros pour une facture parcouru, car je dois retrancher 70euro de la somme totale des factures pour un projet

2) je ne peux pas diviser 70euros par le nombre de facture pour un projet
et retrancher cette somme à chaque facture parcouru car je n'arrive pas a calculer le nombre de facture pour un projet sur cette periode de date.

3)j'ai fais une variable tableau et une formule qui evalue pour chaque enregistrement si le projetid est déja ds le tableau et ds le cas contraire retranche les 70euros a la facture actuelle. Mais le soucis c'est que un tableau ne peut contenir que 1000 enregistrements, et déclaré des 10zaine voire 20aine de tableau pour pallier a ce est surement a proscrire.


je veux donc pouvoir rajouter a ma requete construite par CR un champs
"nombrefac", qui serait une sous requete parcourant un 2e tableau "facture", la jointure se faisant sur le projetid, et les dates de factures.


au final on aurait une requete du style :

Code :
1
2
3
4
5
6
 
SELECT f.facturemontant, 
(SELECT count(f1.factureid) FROM facture f1 WHERE f1.date>date1 et f1.date<date2
AND f.projetid=f1.projetid) nombrefac
FROM facture f
WHERE f.date>date1 AND f.date<date2

merci a tous.
d@rthwing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2005, 09h55   #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,
Tu dois pouvoir y arriver avec un sous-etat en récupérant ta valeur avec une variable Shared !!
Renseigne toi sur les sous-etats !!
__________________
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/2005, 18h17   #3
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
merci pour m'avoir guidé.

voila j'ai fait le sous état qui calcule le nombre de facture pour chaque enregistrement.

je l'ai basculé en mode suppression ds mon etat principal pour ne pas l'afficher.

dans l'entete de groupe, j'ai mis une formule déclaration de shared variable :

Code :
1
2
 
shared numbervar nombrefac:=0;
dans le details a j'ai mis le sous état

dans le details b j'ai mes enregistrement qui sont parcourus

dans le sous états j'ai une formule pour évaluer le nombre de facture :
Code :
1
2
3
4
5
 
whilePrintingRecords;
shared numbervar nombrefac;
 
nombrefac:={@nbfac};
dans mon état pincipal j'ai une formule pour recupérer cette variable :
Code :
1
2
3
4
5
 
whilePrintingRecords;
shared numberVar nombrefac;
IF (nombrefac)>0 then nombrefac
else 0
voici l'erreur que ca me donne quand j'essaie d'utiliser la avriable dans un calcul :

un résumé a été specifié sur un champs non périodique


merci de votre aide
d@rthwing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2005, 16h36   #4
Invité de passage
 
Inscription : mai 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 16
Points : 3
Points : 3
bonjour,

j'ai réussi à résoudre mon problème. merci nico pour m'avoir guider au départ.

j'ai résolu le pb grace à un autre forum :

voici le lien de mon thread:

http://www.tek-tips.com/viewthread.cfm?qid=1083708&page=1

ce forum est top en ce qui concerne CR, mais faut prévoir le décalage horraire hélas!!!
d@rthwing 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 08h24.


 
 
 
 
Partenaires

Hébergement Web