Fonctionnement du moteur des rapports : Différence entre versions

Aller à : navigation, rechercher
(Visualisation de rapport)
m (Champ de saisie)
Ligne 2 : Ligne 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ée, 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>
 
 
==Champ de type "dbObjectMulti"==
 
 
Dans le formulaire, le champ de type "dbObjectMulti" est représenté sous forme de liste de cases à cocher où est proposé comme choix :
 
* La liste des différents "objets" comme autre choix. Par exemple, un type "dbObjectMulti::Profile" va donner la liste des profils
 
 
Une variable associé à ce type de champ recevra comme valeur possible :
 
* Lorsque rien n'est coché, la chaîne : '-'. Cela est considéré comme "Pas de filtre".
 
* Lorsqu'une valeur est cochée, un id sous forme de nombre
 
* Lorsque plusieurs valeurs sont cochées, plusieurs id sous forme de chaîne suivante : 1,2,3
 
 
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 IN ($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 IN ($profileId) OR '-' IN ($profileId) )</sql>
 
  
 
=Visualisation de rapport=
 
=Visualisation de rapport=

Version du 23 octobre 2017 à 13:36

Présentation

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

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

Exemple de rapport :

SELECT *
FROM ma_table
WHERE mon_champ='$maVariable'

Exemple de rapport après remplacement des variables :

SELECT *
FROM ma_table
WHERE mon_champ='1'
SELECT *
FROM ma_table
WHERE mon_champ='test'