You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2021-01-04 14:57:27

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Création statistiques avec les champs supplémentaires plugin fields

Bonjour,

Je me permets de créer une nouvelle discussion car je n'ai pas réussi à trouver de réponse pour mon problème.

Ayant installé le plugin Fields sur mon GLPI, récemment mis à jour en 9.5.3, je souhaiterai pouvoir créer des statistiques avec des champs supplémentaires que j'ai créé via ce plugin.

Seulement, je souhaiterai savoir comment puis-je faire cela pour que ce soit simple d'utilisation pour créer des stats ?

Car les stats doit pouvoir être faites pour une personne non-informaticienne (J'entends par la qu'il n'y ai pas besoin de programmer quoi que ce soit).

Pourriez-vous m'aider pour ma demande ?

En vous remerciant.

Cordialement,

Offline

#2 2021-01-14 17:54:11

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Bonjour, je reviens vers vous pour plus d'informations à vous donnez.

En fait, j'ai installé le plugin reports et je suis en train de voir pour créer mon report.

Seulement avant de creer le rapport, je veux faire et tester la requete SQL sur PHPMYADMIN.

Comment je vous ai indiqué dans mon premier post sur ce sujet, j'ai ajouté des champs supplémentaires avec le plugin fields et

Je souhaiterai créer une requete SQL qui me donnerait les tous les tickets ouvert en fonction du champ supplémentaire que je créé.

Ce champs s'appelle 'Gammes produits' et ' et je retrouve cette table dans PHPMYADMIN qui s'appelle "glpi_plugin_fields_gammedeproduitfielddropdowns"

Pourriez-vous m'aider à faire ma requete pour avoir la liste des tickets ouverts par gamme produit mais seulement sur une entité bien précise car j'ai plusieurs entités.

La bonne entité correspond est 5 donc ce serait entities_id=5.

Je suis désolé mais j'ai un peu de mal en SQL encore.

En vous remerciant.

Cordialement,

Offline

#3 2021-01-19 12:30:26

Sico31
Member
Registered: 2018-09-24
Posts: 595

Re: Création statistiques avec les champs supplémentaires plugin fields

Bonjour, le lien est fait avec une table intermédiaire du plugin.
En effet, quand tu ajoutes un champ supplémentaire, tu ajoutes avant tout un bloc de champ et ensuite associé à ce bloc, un ou plusieurs champs de différents types (texte, liste, etc)
Il faut donc aussi intégrer ce bloc dans la requête.
Ci après un bout de ma requête pour aller chercher un champ ajouté via le plugin fields :
glpi_plugin_fields_typefielddropdowns est mon champ ajouté contenant tous mes items dans une liste déroulante
glpi_plugin_fields_ticketmoyensgenerauxes est le bloc contenant tous les champs ajoutés dont fait partie la liste déroulante glpi_plugin_fields_typefielddropdowns
Dans mon exemple, je remonte le contenu de ma liste déroulante (glpi_plugin_fields_typefielddropdowns) faisant partie du bloc (glpi_plugin_fields_ticketmoyensgenerauxes) en relation avec mon ticket (j'ai un

from glpi.glpi_tickets as t 

ailleurs dans ma requete ; d'où le

t.id

)

ifnull((select ftype.name
    from glpi.glpi_plugin_fields_typefielddropdowns ftype
        left join glpi.glpi_plugin_fields_ticketmoyensgenerauxes fmgs on ftype.id=fmgs.plugin_fields_typefielddropdowns_id         
    where fmgs.items_id=t.id
        and fmgs.itemtype="Ticket"
    ),'') as Type

le ifnull pour avoir une valeur vide plutot que NULL


Manger un castor, c'est sauver un arbre.
Quand on est mort, on ne sait pas qu'on est mort ; c'est pour les autres que c'est difficile. Quand on est con, c'est pareil !

Offline

#4 2021-01-25 09:42:07

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Bonjour,

Merci pour votre aide, je vais regarder cela.

Offline

#5 2021-02-24 10:26:58

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Bonjour,

Je reviens vers vous car je suis toujours en galère avec mon rapport smile.

J'ai réussi à avoir mon critère de sélection qui s'affiche seulement mon problème maintenant c'est de réussir à afficher la gammes produit associé au critère définis.

Voici mon fichier rapport gammeproduit

<?php

$USEDBREPLICATE         = 1;
$DBCONNECTION_REQUIRED  = 0;

include ("../../../../inc/includes.php");

$dbu = new DbUtils();

//TRANS: The name of the report = Search in the financial information (plural)
$report = new PluginReportsAutoReport(__('Gamme produit', 'reports'));

//Report's search criterias
new PluginReportsDropdownCriteria($report, 'glpi_plugin_fields_gammedeproduitfielddropdowns.id', 'glpi_plugin_fields_gammedeproduitfielddropdowns', __('Recherche'));

//Display criterias form is needed
$report->displayCriteriasForm();

//If criterias have been validated
if ($report->criteriasValidated()) {

   // Report title
   $report->setSubNameAuto();

   // Report Columns
   $cols =  [new PluginReportsColumnInteger('glpi_tickets.id', __('Numero', 'reports')),                          
            new PluginReportsColumnInteger('glpi_tickets.entities_id', __('Numero entité', 'reports')),
            new PluginReportsColumn('glpi_tickets.name', __('Nom du ticket')),                                       
            new PluginReportsColumnDateTime('glpi_tickets.date', __('Date ouverture ticket')),
			new PluginReportsColumnDateTime('glpi_tickets.closedate', __('Date fermeture ticket')),
			new PluginReportsColumnDateTime('glpi_tickets.solvedate', __('Date résolution ticket')),
			new PluginReportsColumnDateTime('glpi_tickets.date_mod', __('Date modification ticket')),
			new PluginReportsColumn('glpi_plugin_fields_gammedeproduitfielddropdowns.name', __('Nom de la gamme de produits', 'reports'))];
   $report->setColumns($cols);

   // Build SQL request
    $query = "SELECT `glpi_tickets`.`id`
				   ,`glpi_tickets`.`entities_id`
				   ,`glpi_tickets`.`name`
				   ,`glpi_tickets`.`date`
				   ,`glpi_tickets`.`closedate`
				   ,`glpi_tickets`.`solvedate`
				   ,`glpi_tickets`.`date_mod`
				   ,`glpi_plugin_fields_gammedeproduitfielddropdowns`.`name`
			FROM `glpi_tickets`,`glpi_plugin_fields_gammedeproduitfielddropdowns`
			LEFT JOIN `glpi_plugin_fields_ticketdetails` ON (`glpi_plugin_fields_gammedeproduitfielddropdowns`.`id` = `glpi_plugin_fields_ticketdetails`.`plugin_fields_gammedeproduitfielddropdowns_id`)".
 
           $dbu->getEntitiesRestrictRequest('WHERE', 'glpi_plugin_fields_gammedeproduitfielddropdowns').
           $report->addSqlCriteriasRestriction().
	   $report->getOrderBy('');

     $report->setSqlRequest($query);
     $report->execute();

} else {
   Html::footer();
}

Merci pour votre aide.

Cordialement

Offline

#6 2021-02-24 10:45:24

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,146

Re: Création statistiques avec les champs supplémentaires plugin fields

si vous passez en mode debug et que vous lancez le rapport, pouvez vous voir quelle requête est passée ?

ça vous permettra de voir ce que $report->addSqlCriteriasRestriction().  a ajouté   (attention il y a un point au lieu de point virgule dans votre code : faute de recopie ?)


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Online

#7 2021-02-24 11:00:57

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Bonjour,

Je viens de le mettre en mode debug seulement je n'ai pas le temps de voir la requête qui passe cela ne reste pas affiché.

Offline

#8 2021-02-24 11:06:53

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,146

Re: Création statistiques avec les champs supplémentaires plugin fields

pour l'instant c'est quoi le symptôme ?
page blanche ? message "pas de resultats à afficher" ?, critères pas pis en compte ?


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Online

#9 2021-02-24 11:09:22

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

J'ai une page blanche avec le nombres d'éléments qui s'affiche mais aucun tableau n'apparait.

J'ai en plus le nombres d'éléments qui change en fonction du choix de mon critère.

Offline

#10 2021-02-24 11:41:18

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,146

Re: Création statistiques avec les champs supplémentaires plugin fields

ça sent l'erreur php.
avez vous corrigé le point après addSqlCriteriasRestriction()   ?


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Online

#11 2021-02-24 11:45:25

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Oui pourtant j'ai bien un point.

Offline

#12 2021-02-24 12:25:03

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,146

Re: Création statistiques avec les champs supplémentaires plugin fields

c'est l'erreur : en php une instruction se termine par un point virgule


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Online

#13 2021-02-24 12:31:40

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Je viens de faire la modification mais j'ai toujours le même souci.

Pourtant je me suis basé sur le rapport des imprimantes pour faire celui là.

Merci pour votre aide

Offline

#14 2021-02-24 12:36:13

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,146

Re: Création statistiques avec les champs supplémentaires plugin fields

avez vous essayé de commenter les 2 lignes 

$dbu->getEntitiesRestrictRequest('WHERE', 'glpi_plugin_fields_gammedeproduitfielddropdowns').
$report->addSqlCriteriasRestriction();

puis une par une pour vérifier si l'erreur vient de là ?

de même que la ligne de définition de $dbu


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Online

#15 2021-02-24 14:14:21

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Je viens de faire le test.

J'ai commenté les deux, puis l'une après l'autre mais sans résultat.

J'ai toujours la page blanche.

Je comprends pas du tout d'où vient le souci.

Offline

#16 2021-02-24 16:33:45

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Apres, lorsque je souhaite importer en PDF, il me met pleins d'erreurs et en bas cela m'indique "TCPDF ERROR: Some data has already been output, can't send PDF file"

Je sais pas si c'est lié au même problème.

Offline

#17 2021-02-24 21:10:59

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,146

Re: Création statistiques avec les champs supplémentaires plugin fields

essayez ça :

il manquait principalement une jointure tickets-> bloc dans votre requete et l'utilisation d'alias pour les noms de colonne.

<?php

$USEDBREPLICATE         = 1;
$DBCONNECTION_REQUIRED  = 0;

include ("../../../../inc/includes.php");

$dbu = new DbUtils();

//TRANS: The name of the report = Search in the financial information (plural)
$report = new PluginReportsAutoReport(__('Gamme produit', 'reports'));

//Report's search criterias
new PluginReportsDropdownCriteria($report, 'glpi_plugin_fields_gammedeproduitfielddropdowns.id', 'glpi_plugin_fields_gammedeproduitfielddropdowns', __('Recherche'));
//Display criterias form is needed
$report->displayCriteriasForm();

//If criterias have been validated
if ($report->criteriasValidated()) {

   // Report title
   $report->setSubNameAuto();

   // Report Columns
   $cols =  [new PluginReportsColumnInteger('c1', __('Numero', 'reports')),                          
            new PluginReportsColumnInteger('c2', __('Numero entité', 'reports')),
            new PluginReportsColumn('c3', __('Nom du ticket')),                                       
            new PluginReportsColumnDateTime('c4', __('Date ouverture ticket')),
			new PluginReportsColumnDateTime('c5', __('Date fermeture ticket')),
			new PluginReportsColumnDateTime('c6', __('Date résolution ticket')),
			new PluginReportsColumnDateTime('c7', __('Date modification ticket')),
			new PluginReportsColumn('c8', __('Nom de la gamme de produits', 'reports'))];
   $report->setColumns($cols);

   // Build SQL request
    $query = "SELECT `glpi_tickets`.`id` AS c1
				   ,`glpi_tickets`.`entities_id` AS c2
				   ,`glpi_tickets`.`name` AS c3
				   ,`glpi_tickets`.`date` AS c4
				   ,`glpi_tickets`.`closedate` AS c5
				   ,`glpi_tickets`.`solvedate` AS c6
				   ,`glpi_tickets`.`date_mod` As c7
				   ,`glpi_plugin_fields_gammedeproduitfielddropdowns`.`name` AS c8
				   FROM `glpi_tickets`
				   LEFT JOIN `glpi_plugin_fields_ticketdetails` ON `glpi_plugin_fields_ticketdetails`.`itemtype`='Ticket' AND `glpi_plugin_fields_ticketdetails`.`items_id`=`glpi_tickets`.`id` 
			LEFT JOIN`glpi_plugin_fields_gammedeproduitfielddropdowns`ON `glpi_plugin_fields_gammedeproduitfielddropdowns`.`id` = `glpi_plugin_fields_ticketdetails`.`plugin_fields_gammedeproduitfielddropdowns_id` 
			 ".$dbu->getEntitiesRestrictRequest('WHERE', 'glpi_plugin_fields_gammedeproduitfielddropdowns').$report->addSqlCriteriasRestriction();
			
   $report->setSqlRequest($query);

	   $report->getOrderBy('c8');

   
     $report->execute();

} else {
   Html::footer();
}

Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Online

#18 2021-02-25 09:30:39

Informatique81
Member
Registered: 2020-06-16
Posts: 45

Re: Création statistiques avec les champs supplémentaires plugin fields

Bonjour,

Je vous remercie vraiment pour le temps que vous m'avez accordé.

Grace à vous, cela fonctionne.

Merci encore

Bonne journée.

Offline

Board footer

Powered by FluxBB