Fonctionnement du moteur des rapports: Difference between revisions

From Documentation de la solution web de gestion OpenFlyers
Jump to navigation Jump to search
imported>Jcheng
imported>Jcheng
Line 2: Line 2:


L'objet de cette page est de présenter le fonctionnement du moteur des [[rapports]].
L'objet de cette page est de présenter le fonctionnement du moteur des [[rapports]].
=Champ de saisie=
==Champ de type "dbObject"==
Dans le formulaire, le champs de type "dbObject" est représenté sous forme de liste déroulante où est proposé comme choix :
* "Pas de filtre" comme premier choix
* La liste des différents "objets" comme autre choix. Par exemple, un type "dbObject::Person" va donner la liste des utilisateurs
Une variable associé à ce type de champ recevra comme valeur possible :
* Lorsque "Pas de filtre" est sélectionné, le caractère : -
* Lorsqu'une valeur est sélectionné, un id sous forme de nombre
Exemple de prise en compte de la variable au niveau du rapport : Liste des utilisateurs actifs possédant le profil "$profileId"
<sql>SELECT person.*
FROM person
LEFT JOIN profile ON person.profile & profile.id
WHERE profile.id='$profileId'
  AND activated=1</sql>
Exemple de prise en compte de la variable au niveau du rapport : Liste des utilisateurs actifs avec ou non, un filtre sur le profil
<sql>SELECT *
FROM person
LEFT JOIN profile ON person.profile & profile.id
WHERE ( profile.id='$profileId' OR '-'='$profileId' )</sql>


=Visualisation de rapport=
=Visualisation de rapport=

Revision as of 12:10, 23 October 2017

Présentation

L'objet de cette page est de présenter le fonctionnement du moteur des rapports.

Champ de saisie

Champ de type "dbObject"

Dans le formulaire, le champs de type "dbObject" est représenté sous forme de liste déroulante où est proposé comme choix :

  • "Pas de filtre" comme premier choix
  • La liste des différents "objets" comme autre choix. Par exemple, un type "dbObject::Person" va donner la liste des utilisateurs

Une variable associé à ce type de champ recevra comme valeur possible :

  • Lorsque "Pas de filtre" est sélectionné, le caractère : -
  • Lorsqu'une valeur est sélectionné, un id sous forme de nombre

Exemple de prise en compte de la variable au niveau du rapport : Liste des utilisateurs actifs possédant le profil "$profileId" <sql>SELECT person.* FROM person LEFT JOIN profile ON person.profile & profile.id WHERE profile.id='$profileId'

 AND activated=1</sql>

Exemple de prise en compte de la variable au niveau du rapport : Liste des utilisateurs actifs avec ou non, un filtre sur le profil <sql>SELECT * FROM person LEFT JOIN profile ON person.profile & profile.id WHERE ( profile.id='$profileId' OR '-'='$profileId' )</sql>

Visualisation de rapport

Lors d'une demande de visualisation de rapport, le moteur des rapports :

  • Récupère les valeurs des champs de saisie affichées dans le formulaire et stocke ces valeurs dans les variables correspondantes à ces champs de saisie
  • Extrait la requête du rapport
  • Remplace dans la requête, chaque variable par leur valeur correspondante
  • Interprète la requête
  • Affiche le résultat sous forme de tableau