Amélioration de la fonction "Reporting"
Envoyé par: MF ()
Date: jeudi 24 janvier 2008 20:57:54

La fonction "Reporting" est très pratique car elle permet au club d'en tirer de nombreuses informations, d'interfacer avec d'autres logiciels, et de fournir aussi les statistiques annuelles demandées par la FFA et la DGAC, voire ADP (nombre de mouvements).

Mais, pour en tirer tout le bénéfice, il serait nécessaire d'améliorer un peu le format des données pour faciliter le traitement qui en est fait après l'export de ces données :

1/ Toutes les informations Pilote, Statut, Type de vol, sont précédées d'informations entre crochets [] inutiles et qu'il est nécessaire d'éliminer ensuite

2/ Il manque certaines informations comme le nombre d'atterro, le sexe, le groupe

3/ Les caractères spéciaux et accentués (C cedille par ex.) posent toujours des problèmes de traduction

4/ Les compteurs avions en heures:minutes apparaissent en plus avec des secondes à 00 (information inutile et non gérée)

Ces petites améliorations faciliteraient grandement la vie.

Et par la suite, mais c'est sans doute un gros travail, l'idéal serait, à l'instar du logiciel SMILE que vient de mettre en place la FFA, de pouvoir choisir par clic tous les champs que l'on souhaite pour générer un fichier de reporting "sur mesure".

Merci à l'avance de ce que vous pourrez faire.

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: claratte ()
Date: jeudi 24 janvier 2008 23:40:22

Bonjour,

En fait, c'est fait : nous avons mis en place un outil de génération de statistique personnalisable.

Vous commencez par vous donner le droit "gérer les statistiques".

Ensuite, vous allez voir apparaître un menu "statistiques" avec 2 items : "critères" et "voir les statistiques".

Dans le premier item (critères) vous dessinez vos requêtes en fonction de ce que vous avez besoin. Par exemple vous pouvez taper : "select * from authentication" et sauver. Vous allez ensuite dans "voir les statistiques", vous sélectionnez cette requête et vous aurez un résultat.

Alors bien sûr, pour utiliser cet outil il faut maîtriser le language SQL (puisque les requêtes sont dans ce langage) et il faut également connaitre la structure de la base de données d'OF. Mais l'avantage par rapport à un "système de clics" c'est la puissance que vous pouvez en tirer.

Ainsi, nous avons rédigé la quasi-totalité des requêtes pour extraire les requêtes de la DGAC. Vous trouverez le résultat ici : http://wiki.openflyers.org/index.php/Stat_generator

Ainsi, vous avez plus que ce que vous souhaitez : les statistiques générées directement dans OF sans avoir à exporter.

Et en plus, vous avez la possibilité de faire absolument TOUT ce que vous souhaitez puisque vous avez accès en lecture à la base de données.

Il suffit juste de savoir écrire des requêtes SQL ;-)

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: MF ()
Date: vendredi 25 janvier 2008 13:18:56

Merci pour cette réponse rapide et complète.

Effectivement, la possibilité d'établir tout genre de requête rend ce système tre s puissant.

Je l'ai essayé avec les requêtes pré-établies sur le wiki, comme indiqué, et cela marche très bien.

Je vais donc m'employer à parfaire mes connaissances en SQL, et n'hésiterais pas à faire profiter la communauté de mes créations de requêtes sur le wiki.

2 questions :

1/ Y-a-t-il une page sur le wiki qui recense toutes les variables de champ que l'on peut utiliser pour les requêtes ? J'ai cherché sur le wiki sans trouver quelque chose d'exhaustif, mais je n'ai peut-être pas tout exploré !

2/ Y-a-t-il aussi possibilité dans la requête de programmer une sortie de fichier en complément de l'affichage à l'écran du résultat, afin de récupérer plus facilement les données dans un tableur par exemple, pour pouvoir ensuite faire des présentations sous forme graphiques (bien utiles pour les CA et les AG du club, notamment) ?

Merci encore !

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: claratte ()
Date: vendredi 25 janvier 2008 13:25:11

> 1/ Y-a-t-il une page sur le wiki qui recense toutes les variables de champ que l'on peut utiliser pour les requêtes ? J'ai cherché sur le wiki sans trouver quelque chose d'exhaustif, mais je n'ai peut-être pas tout exploré !

Non. Nous avons abandonné cette mise à jour : nous changeons trop vite la structure de la base de données et c'était trop fastidieux à décrire. Par contre, vous pouvez récupérer la base de données (normalement) dans les exports. Là, vous aurez la structure.

> 2/ Y-a-t-il aussi possibilité dans la requête de programmer une sortie de fichier en complément de l'affichage à l'écran du résultat, afin de récupérer plus facilement les données dans un tableur par exemple, pour pouvoir ensuite faire des présentations sous forme graphiques (bien utiles pour les CA et les AG du club, notamment) ?

C'est prévu, mais ce n'est pas fait. Ce sera vraisemblablement une sortie XML et peut-être csv. Ne vous attendez pas à avoir ces sorties rapidement.

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: FredericV ()
Date: mercredi 12 mars 2008 17:04:49

Je viens de décrouvrir catte mine d'or et je m'y suis penché (modestement)
La page Stat_Generator est un bonheur.
J'ai un petit soucis avec le code SQL dans la formule qui calcule le nombre de membres.
C'est très utile mais, sauf erreur, on prend en compte tous les membres, et non pas que ceux qui ont payé leur cotiz de l'année, d'ou des effectifs...
Dans certains cas (pour préparer les AG par ex) on aurait besoin de connaitre N-1, d'autres fois N. Mais one ne garde peut-être pas l'historique...
En tout cas je n'ai pas trouvé la table/champ qui va bien pour ce qui sera certainement un RIGHT JOIN....
Une bonne ame aurait elle la syntaxe qui va bien... même si elle ne permet que de dire 'échéance cotisation = 31/12/2008'

Frederic
Aero-Club du POITOU

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: claratte ()
Date: mercredi 12 mars 2008 19:53:22

SELECT * FROM authentication RIGHT JOIN member ON member.id=authentication.id WHERE subscription='2008-12-31'

A mettre dans le wiki ;-)

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: FredericV ()
Date: jeudi 13 mars 2008 08:05:42

Super Merci, je vais pouvoir adapter ça aux requêtes concernées...
Je suis dépanné.

Le select * me renvoit un message d'erreur, j'ai donc nommé les champs.
Dommage...

2 questions 'subsidiaires'. Si la réponse est non, ce n'est pas grave.

1- On ne peut pas adapter cette requête au filtre de l'année choisie quand on lance les stats? (ou alors avoir une boite de dialogue qui demande quelle date on veut (31/12/2007 ou 31/12/2008)
Sinon, je dupliquerai la requête.

2- Pour info, compte tenu de la structure des fichiers, on n'a pas la possibilité de retrouver un historique des adhésions?
On renseigne juste la date de fin de la dernière cotiz?
Ma question était orientée 'liste pour préparer les AG' : on veut ceux qui étaient là l'an dernier et le sont encore aujourd'hui. Si la date est 31/12/2008 on ne sait pas si il faut les prendre en compte.

Peut-être une idée de fonctionnalité?

Frederic
ACP

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: jcheng ()
Date: jeudi 13 mars 2008 09:11:30

1/ L'erreur renvoyée est : "Vous essayer d'interroger une ressource interdite : table ou champ"

Dans ce cas, sélectionner les champs que vous voulez afficher dans votre requête SQL. Le champ password de la table authentication n'est pas autorisé à être affiché.

SELECT name FROM authentication RIGHT JOIN member ON member.id=authentication.id WHERE subscription=CONCAT($year, '-12-31')

La requête est à ré-adapter en fonction des champs que vous voulez obtenir.

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: claratte ()
Date: jeudi 13 mars 2008 16:22:06

$year est la variable qui vous permet de travailler avec une année choisie (dans la combo du formulaire). C'est donc la réponse à votre question 1.

Dans l'absolu on pourrait retrouver l'historique des adhésions via les log sur les actions. Mais c'est super lourd (et je ne sais pas si c'est vraiment au point).

Mais si vous voulez ceux qui étaient là l'an dernier et ceux qui sont là cette année, il suffit de prendre tous ceux qui ont une date de cotise qui périme au 31/12/2008 OU 31/12/2007.

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: FredericV ()
Date: vendredi 14 mars 2008 08:19:11

Merci à tous les 2 pour le $year

Par contre, pour la cotise la réponse à ma question serait plutôt ET et non pas OU si l'enregistrement est unique par pilote.
Le OU me donnera certainement ceux qui étaient là l'an dernier et ne sont pas revenus, ceux qui sont arrivés cette année et ceux qui était là l'an dernier et sont revenus.
Et comme un champ ne peut avoir qu'une valeur, tant pis pour le ET ;-)

Pas grave, mais à l'occasion d'une modification de la structure de la table, ça pourrait être interessant à mettre ça en place...

Frederic VACHON
Aero-Club du POITOU
LFBI
frederic.vachon@laposte.net

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: acalbertville ()
Date: vendredi 14 mars 2008 08:55:44

Bonjour

Petite remarque Générale

Sur toutes le éditions papier, apparaît

1- le Nom de la personne connectée
2- Le solde du compte pilote de la personne connectée

Ne serait il pas possible de supprimer ces indications.

Jacques Gittard

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: FredericV ()
Date: vendredi 14 mars 2008 09:04:12

Après quelques essais, le code SQL qui va bien pour obtenir la liste des membres de l'année en cours (celle selectionnée dans la combo) ventilée par Hommes / Femmes et Moins de 21 ans / Plus de 21 ans peut ressembler à :

SELECT subscription as Cotisation, Sex AS Code, IF ( (sex = 0), 'Men', IF ( (sex = 1), 'Women','ND' ) ) AS Sex, IF( ( $year - YEAR( birthdate ) >= 21), 'No', 'Yes') AS Young, COUNT( authentication.id ) AS Number FROM authentication RIGHT JOIN member ON member.id=authentication.id WHERE subscription=CONCAT($year, '-12-31') AND activated='1' GROUP BY Cotisation, Code, Sex, Young

Super!

Par rapport au modèle dans la page de doc des stats, on prend en compte l'année en cours et le code sexe =2.

PS : Pour les formules qui pourraient être utiles dans la doc, je ne sais pas comment faire pour les ajouter. Si quelqu'un peut me mettre sur les rails, je veux bien essayer de contribuer.

Frederic VACHON
Aero-Club du POITOU
LFBI
frederic.vachon@laposte.net

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: claratte ()
Date: vendredi 14 mars 2008 16:02:57

Bonjour,

> PS : Pour les formules qui pourraient être utiles dans la doc, je ne sais pas comment faire pour les ajouter. Si quelqu'un peut me mettre sur les rails, je veux bien essayer de contribuer.

Vous n'avez pas d'identifiant au wiki ?

> Petite remarque Générale

> Sur toutes le éditions papier, apparaît

Merci de ne pas mélanger plusieurs sujets dans un même fil. Sinon, on ne va pas s'y retrouver...

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: sadoche ()
Date: vendredi 14 mars 2008 16:33:31

Bonjour,
Une fois obtenu vos identifiants wiki, je veux bien vous "lâcher" dessus, celà déchargera Christophe Laratte qui a déja beaucoup à faire ;-).
Quelques indications verbales sont bien utiles au début, et font gagner du temps.
Envoyez-moi un numéro de téléphone par mail à sadoche arrobase worldonline point fr.
A bientôt,

Sadoche
Beta testeur OF
Quiberon Air Club

Options: RépondreCiter
Re: Amélioration de la fonction "Reporting"
Envoyé par: jtremblet ()
Date: vendredi 14 mars 2008 23:44:00

Bonjour

Interesant les sexes "ND" ;-)

Pour l'instant votre base est relativement propre lorsque l'on cumule les inscriptions sur 2 ans votre formule atteindra ces limites car on aura tous les membres de N à N-X la solution du OR de Christophe vous permettrai de maitriser cela
WHERE (subscription=CONCAT($year, '2008-12-31') OR subscription=CONCAT($year, '2007-12-31')) AND activated='1' GROUP BY Cotisation, Code, Sex, Young

Joël

Options: RépondreCiter


Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.
This forum powered by Phorum.