Page 1 sur 1

[Résolu][SRB] Diagramme camembert

MessagePublié: 26 Avr 2010 09:23
par gulie22
Bonjour,

J'ai besoin de votre aide concernant l'extension Sun Report Builder. Dans mon application openOffice Base, j'ai crée une requête qui calcul des pourcentages avec les chiffres qui sont enregistrer dans mes tables. Dans mon rapport je veux afficher un diagramme (camembert de préférence) qui m'affiche seulement un pourcentage.

Un exemple, j'ai un pourcentage de Production concernant le client X. Comment je peux faire pour afficher un diagramme qui m'affiche mon pourcentage pour ce client qui est de 44% !!

Merci d'avance pour vos réponses. :)

Le Modérateur a écrit: :alerte: En plus, fournissez avec un fichier complet. Cela augmentera vos chances de réponse en évitant d'avoir à recréer quelque chose qui au final, pourrait ne pas convenir.

Re: [SRB] Diagramme camembert

MessagePublié: 26 Avr 2010 13:16
par jeanmimi
Bonjour,
Sans voir le document, il est difficile de trouver où tu bloques.
Pour avoir ce que tu veux, il faut insérer le diagramme dans le rapport, et choisir le type de diagramme. Le diagramme affichera alors tous tes clients, avec les valeurs ou les pourcentages de chacun puisque dans OOo, le diagramme peut être paramétré pour afficher les étiquettes des pourcentages même si la source est en valeurs Nombre.
Pour te donner une idée, voici une base simple trouvée sur le forum, avec sa requête des sommes calculées pour chaque rubrique et dans le rapport, deux diagrammes : barre et camembert.
Diagrammes dans Rapport.jpg

Re: [SRB] Diagramme camembert

MessagePublié: 26 Avr 2010 13:59
par gulie22
J'ai une fonction Production. Avec l'aide d'une requête je calcul un pourcentage associé à la fonction production.

J'ai une requête qui m'affiche ceci :

NomClient : Durand
%Production : 44

Et je veux que dans mon rapport, il y a un diagramme camembert qui m'affiche en bleu(par exemple) une portion du camembert qui représenterais 44% et une autre portion en blanc qui représente une partie vide qui est donc de 56% ! Pour cela j'ai crée une requête qui affiche ceci une fois executé :

NomClient : Durand
%Production : 44
%NProduction : 56

Et ainsi utiliser les données %Production et %NProduction dans mon camembert. C'est pas évident ce que je demande, mais je ne peux pas envoyer ma base de donnée, elle est trop en bordel, je ne pense pas que ca puisse plus aider.

Re: [SRB] Diagramme camembert

MessagePublié: 26 Avr 2010 16:21
par Pierre-Yves Samyn
Bonjour

gulie22 a écrit:je ne peux pas envoyer ma base de donnée, elle est trop en bordel, je ne pense pas que ca puisse plus aider.


Ben désolé, moi je dois ranger mes partitions et n'ai donc pas le temps de créer une base, une table correspondant à la tienne, saisir des données, faire la requête, faire un rapport avec le diagramme. Quant à rédiger une explication / mode d'emploi...

Re: [SRB] Diagramme camembert

MessagePublié: 03 Mai 2010 15:06
par gulie22
Je n'ai toujours pas trouvé comment faire un diagramme en camembert pour chaque pourcentage...
J'ai joint un fichier d'exemple.
Merci d'avance pour vos réponses

Re: [SRB] Diagramme camembert

MessagePublié: 03 Mai 2010 18:26
par jeanmimi
Le faire, il n'y a pas de problème, il apparait bien en mode Création/Modification du Rapport. Mais par contre, je n'arrive plus à le voir si je lance la création.

Diagramme section dans SRB.jpg

Re: [SRB] Diagramme camembert

MessagePublié: 03 Mai 2010 21:33
par Pierre-Yves Samyn
jeanmimi a écrit:Le faire, il n'y a pas de problème


Au vu de la copie d'écran il semble pourtant qu'il y en ait... :)

Il semble que les diagrammes soient prévus pour afficher des données détaillées par rapport à la ligne de détail (l'enregistrement courant) : version graphique d'un sous-formulaire autrement dit.

La conclusion s'impose donc : utiliser une table (requête / instruction SQL) reliée qui contiendra ces données ainsi bien sûr qu'un champ "clé externe" permettant de faire la liaison avec la source de données du rapport et un champ "étiquette".

Tout ceci en image :

Capture-1.png
Premier plan : la table "détaillée"; Arrière-plan : le mode ébauche avec l'instruction SQL et les champs "liens" ; Milieu : l'aperçu du résultat

Re: [SRB] Diagramme camembert

MessagePublié: 04 Mai 2010 08:50
par gulie22
Je ne comprend pas comment tu fais ... car tu as mis les pourcentages en durs dans une table. Hors moi, les pourcentages se calcul dans une requête avec les valeurs de la table.
Je te joins mon projet, si tu peux essayer de refaire ce que tu viens de faire mais avec ma requête tu me dépannerais bien :D
Le diagramme doit être fait dans le rapport "fiche de synthèse". Et pour exécuter le rapport il demande un nom, tapez "piscine"
Merci d'avance

Re: [SRB] Diagramme camembert

MessagePublié: 05 Mai 2010 11:45
par gulie22
Personne ne peut me venir en aide alors ... :(

Re: [SRB] Diagramme camembert

MessagePublié: 05 Mai 2010 13:33
par Pierre-Yves Samyn
gulie22 a écrit:Personne ne peut me venir en aide alors ... :(



Si, par exemple en te suggèrant cette saine lecture viewtopic.php?p=2620#p2620 :)

Egalement en t'indiquant que si tu avais dès le début envoyé ta base je n'aurais pas dû travailler sur mon exemple qui, par définition, ne correspondait pas à ton besoin.

Sinon, comme indiqué précédemment :

Pierre-Yves Samyn a écrit:utiliser une table (requête / instruction SQL)


Au lieu de mettre les données "en dur" dans une table, il suffit de génerer ces dernières par des requêtes SQL du type :

Capture-1.png
Capture-1.png (4.47 Kio) Consulté 19344 fois


Code : Tout sélectionner   AgrandirRéduire
SELECT 'Production' AS "Légende", "%Production", "Nom" FROM ( SELECT "Batiment"."Nom", "Batiment"."Client", "Note Production" * 100 / "MaximumP" AS "%Production", "Note Transport" * 100 / "MaximumT" AS "%Transport", "Note Distribution" * 100 / "MaximumD" AS "%Distribution", "Note Installation" * 100 / "MaximumI" AS "%Installation", "Note Risque" * 100 / "MaximumR" AS "%Risque" FROM "Batiment", "Client", ( SELECT "Batiment"."Nom", "Batiment"."Client", "Batiment"."Niveaux" * 1 + "Batiment"."TypeProd" * 1 + "Batiment"."SurveillanceParamTemp" * 3 + "Batiment"."TempSurveillee" * 1 + "Batiment"."TempProd60" * 3 + "Batiment"."VanneDepurage" * 2 + "Batiment"."NettoyageProd" * 1 + "Batiment"."Ballon" * 2 AS "Note Production", 29 AS "MaximumP", "Batiment"."NatureReseau" * 2 + "Batiment"."TypeReseau" * 1 + "Batiment"."Longueur" * 2 + "Batiment"."TempReseau55" * 2 + "Batiment"."BrasMorts" * 3 + "Batiment"."TEauChaude60" * 1 + "Batiment"."EauFroideCanaux" * 1 + "Batiment"."DiffTempBoucle5" * 2 + "Batiment"."DebitObserve" * 1 + "Batiment"."DebitMesure" * 1 + "Batiment"."Entartrage" * 1 + "Batiment"."Corrosion" * 1 + "Batiment"."FuiteReseau" * 1 + "Batiment"."ManqueDebit" * 1 + "Batiment"."Canalisation" * 2 AS "Note Transport", 40 AS "MaximumT", "Batiment"."EtatPuisage" * 3 + "Batiment"."PuisageRisque" * 2 + "Batiment"."PuisageNonUtilise" * 3 + "Batiment"."TempPuisage50" * 2 + "Batiment"."MitigeagePuisage" * 2 + "Batiment"."SurveillanceParamTempPuisage" * 2 AS "Note Distribution", 28 AS "MaximumD", "Batiment"."CarnetSanitaire" * 1 + "Batiment"."SuiviAnalytique" * 3 + "Batiment"."Resulat3Annees" * 3 + "Batiment"."ResulatDerniereAnnee" * 3 + "Batiment"."PHDurete" * 1 + "Batiment"."VerifOrganesManoeuvre" * 2 + "Batiment"."TraitementEau" * 1 AS "Note Installation", 27 AS "MaximumI", "Batiment"."TraitementPreventif" * 1 + "Batiment"."FormationPersonnel" * 1 + "Batiment"."Manchette" * 1 + "Batiment"."TraitementsChocs" * 1 + "Batiment"."PatientRisque" * 1 + "Batiment"."SurveillanceConsoEau" * 1 + "Batiment"."NettoyageOrganesTerminaux" * 2 + "Batiment"."ChasseRegulière" * 3 AS "Note Risque", 16 AS "MaximumR" FROM "Batiment", "Client" WHERE "Batiment"."Client" = "Client"."Nom" ) AS "NotesFonctions" WHERE "Batiment"."Client" = "Client"."Nom" AND "Batiment"."Nom" = "NotesFonctions"."Nom" ) AS "%Fonctions"



Capture-2.png
Capture-2.png (4.47 Kio) Consulté 19344 fois


Code : Tout sélectionner   AgrandirRéduire
SELECT 'Non Production' AS "Légende", 100 - "%Production" AS "%Production", "Nom" FROM ( SELECT "Batiment"."Nom", "Batiment"."Client", "Note Production" * 100 / "MaximumP" AS "%Production", "Note Transport" * 100 / "MaximumT" AS "%Transport", "Note Distribution" * 100 / "MaximumD" AS "%Distribution", "Note Installation" * 100 / "MaximumI" AS "%Installation", "Note Risque" * 100 / "MaximumR" AS "%Risque" FROM "Batiment", "Client", ( SELECT "Batiment"."Nom", "Batiment"."Client", "Batiment"."Niveaux" * 1 + "Batiment"."TypeProd" * 1 + "Batiment"."SurveillanceParamTemp" * 3 + "Batiment"."TempSurveillee" * 1 + "Batiment"."TempProd60" * 3 + "Batiment"."VanneDepurage" * 2 + "Batiment"."NettoyageProd" * 1 + "Batiment"."Ballon" * 2 AS "Note Production", 29 AS "MaximumP", "Batiment"."NatureReseau" * 2 + "Batiment"."TypeReseau" * 1 + "Batiment"."Longueur" * 2 + "Batiment"."TempReseau55" * 2 + "Batiment"."BrasMorts" * 3 + "Batiment"."TEauChaude60" * 1 + "Batiment"."EauFroideCanaux" * 1 + "Batiment"."DiffTempBoucle5" * 2 + "Batiment"."DebitObserve" * 1 + "Batiment"."DebitMesure" * 1 + "Batiment"."Entartrage" * 1 + "Batiment"."Corrosion" * 1 + "Batiment"."FuiteReseau" * 1 + "Batiment"."ManqueDebit" * 1 + "Batiment"."Canalisation" * 2 AS "Note Transport", 40 AS "MaximumT", "Batiment"."EtatPuisage" * 3 + "Batiment"."PuisageRisque" * 2 + "Batiment"."PuisageNonUtilise" * 3 + "Batiment"."TempPuisage50" * 2 + "Batiment"."MitigeagePuisage" * 2 + "Batiment"."SurveillanceParamTempPuisage" * 2 AS "Note Distribution", 28 AS "MaximumD", "Batiment"."CarnetSanitaire" * 1 + "Batiment"."SuiviAnalytique" * 3 + "Batiment"."Resulat3Annees" * 3 + "Batiment"."ResulatDerniereAnnee" * 3 + "Batiment"."PHDurete" * 1 + "Batiment"."VerifOrganesManoeuvre" * 2 + "Batiment"."TraitementEau" * 1 AS "Note Installation", 27 AS "MaximumI", "Batiment"."TraitementPreventif" * 1 + "Batiment"."FormationPersonnel" * 1 + "Batiment"."Manchette" * 1 + "Batiment"."TraitementsChocs" * 1 + "Batiment"."PatientRisque" * 1 + "Batiment"."SurveillanceConsoEau" * 1 + "Batiment"."NettoyageOrganesTerminaux" * 2 + "Batiment"."ChasseRegulière" * 3 AS "Note Risque", 16 AS "MaximumR" FROM "Batiment", "Client" WHERE "Batiment"."Client" = "Client"."Nom" ) AS "NotesFonctions" WHERE "Batiment"."Client" = "Client"."Nom" AND "Batiment"."Nom" = "NotesFonctions"."Nom" ) AS "%Fonctions"

et de réunir les deux par :

Code : Tout sélectionner   AgrandirRéduire
SELECT "Légende", "%Production", "Nom"  FROM "Pys1"
UNION
SELECT "Légende", "%Production", "Nom"  FROM "Pys2"


L'union réclame des vues, raison pour laquelle ce sont des vues et non des requêtes qui sont utilisées

Re: [SRB] Diagramme camembert

MessagePublié: 05 Mai 2010 14:17
par gulie22
Merki beaucoup pour avoir trouver la solution. Mais ... et oui il y a un mais. Moi ça ne marche pas quand je créer les vues et je fais un copier coller de ton code pourtant...
Voilà ce que ca m'affiche !

Re: [SRB] Diagramme camembert

MessagePublié: 05 Mai 2010 14:27
par Pierre-Yves Samyn
gulie22 a écrit:Moi ça ne marche pas quand je créer les vues et je fais un copier coller de ton code pourtant...
Voilà ce que ca m'affiche !


D'après la copie d'écran il semble que tu n'aies pas cliqué sur le bouton Exécuter directement l'instruction SQL :

Capture-1.png
Capture-1.png (3.48 Kio) Consulté 19336 fois

Re: [SRB] Diagramme camembert

MessagePublié: 05 Mai 2010 15:04
par gulie22
MERCI ca marche très bien. :D
Merci d'avoir passée du temps à chercher la solution, car ca me dépanne bien. !!!
J'ai encore une dernière question, mais rien d'important, juste si vous savez si on peut changer les couleurs du diagramme !
Merci encore
Bonne journée

Re: [SRB] Diagramme camembert

MessagePublié: 05 Mai 2010 19:58
par Oukcha
Bonjour,

gulie22 a écrit:J'ai encore une dernière question


Nous vous rappelons que la règle n° 7 stipule qu'il ne faut mettre qu'une question par fil.
ftopic1.html

Poser plusieurs questions complique la compréhension et n'encourage pas les réponses : il vaut donc mieux découper votre problème.

Afin que nous puissions avoir une base de connaissance efficace lors d'une recherche sur un seul de vos problèmes, nous vous prions de créer autant de fil que de questions.

Merci de votre collaboration.