webleads-tracker

Rechercher sur le site

Français (French)
English
Deutsch (German)
(Japanese)
(Russian)
(Simplified chinese)
Espanol (Spanish)
visited
Pour participer au forum, veuillez vous identifier ou créer un compte en suivant ce lien .

Tables liées / Rapport


4 messages
Tables liées / Rapport [Message initial] Par flaganne - 21/06/2019 07:33

Bonjour,
Existe-t-il la possibilité de créer un rapport à partir d'une sélection d'objets qui remonterait les données issues d'une table liée à la classe d'entité de ces objets ?
Merci d'avance pour vos réponses,
Fabien Laganne




Par dlaruelle - 14/02/2019 17:17

Bonjour,
Oui, cela est tout à fait possible ; il suffit d'aller rechercher les objets en relation via la requête SQL exécutée dans le rapport spécifique.
Dans la documentation du widget Rapport, on explique que l’application cliente envoie la liste des objectiIDs des objets sélectionnés (par exemple des hydrants) et on réutilise ces objectIDs dans une requête sur la table du SGBD qui stocke ces données (les hydrants).
Dans le rapport principal (sur chaque hydrant), on affiche les champs qui sont remontés par la requête SQL. Ensuite, on a deux solutions :

  1. Soit on crée un sous-rapport auquel on passe l’identifiant de l’objet utilisé dans la classe de relation (ex : hydrantID). Dans ce sous-rapport, on créé une nouvelle requête SQL pour aller chercher des informations dans la table reliée (ex : les inspections) et on utilise l’identifiant passé en paramètre pour ne récupérer que les enregistrements associés. On peut alors ajouter des informations détaillées pour chacun des objets reliées (les inspections)

  2. Soit la requête qui constitue la source de données du rapport principal va également chercher des informations sur l'objet principal (l'hydrant) mais aussi sur les données reliées (les inspections). Dans ce cas, les informations des données reliées seront directement intégrables dans le rapport principal mais on ne pourra pas lister le détail de ces données reliées (pratique pour avoir des informations succinctes telles que le nombre d'inspections par année par exemple)


J’espère que vous donne des idées :)


David LARUELLE - Esri France (membre de l'équipe arcOpole)

Par flaganne - 05/03/2019 17:48

Bonjour David,
J'ai testé avec une requête du type :
select objectid,ident,annevene,identifi,navitopo,refdrsol,gid_d,gid_a,rid
from(SELECT dds_histparc.objectid, dds_histparc.ident, dds_evenparc.annevene, dds_evenparc.identifi, dds_evenparc.navitopo, dds_evenparc.refdrsol,dds_histparc_evenparc.rid,dds_histparc_evenparc.gid_d,dds_histparc_evenparc.gid_a
from can_c_foncier.dds_histparc_evenparc
full join can_c_foncier.dds_evenparc
on can_c_foncier.dds_histparc_evenparc.gid_d = can_c_foncier.dds_evenparc.gid
full join can_c_foncier.dds_histparc
on can_c_foncier.dds_histparc_evenparc.gid_a= can_c_foncier.dds_histparc.gid) alias

WHERE  objectid in (12) order by annevene asc


Cela fonctionne bien dans Jasper Studio. Par contre, quand je remplace "objectid in (12)" par "$P!{where_arcOpole/CAN_Cadastre_historique/MapServer/2}" puis que je déploie le rapport dans ArcopoleBuilder, je n'arrive pas à faire fonctionner le widget depuis l'application. J'ai un message d'erreur.
La requête a l'air de passer (je vois passer cette requête dans fiddler) :

https://geo.ville-cannes.fr/Orion/orion/rest/services/ReportTools/GPServer/hist_parcelle/submitJob?where_arcOpole%2FCAN_Cadastre_historique%2FMapServer%2F2=objectid%20in%20(4524)&f=json&token=rajy6k7dRlIpzsNAXqXCZJrD6J-d3bcUaeR8GqovXfDJPaQEULtHusjQW0ODk_aUhRxzd2OgQ-ZL2SryfiuV3Bnop0GKVlzwxcRFu5SMP5MSxfpEc824wesvUInnYNoKHZX-Z3RR7SHpPXkIacLhLTgRUTZ3241UbZyA2zSOvPtwkzcB_j5NQMuQhdpmTXxtqhMPMbvPiqlBM-9Tywfd7RwnNRcoAuuyhoWDLiOu1OA.&dojo.preventCache=1551797557581

Mais j'ai ensuite un message d'erreur ("contacter votre administrateur"). Quelque chose m'échappe peut être, aurais-tu eu le même problème ?

Merci d'avance,
Fabien




Par flaganne - 15/03/2019 10:47

Il s'agissait en fait d'un problème de droits en base de données (merci David). 
Le serveur se connecte avec les informations de connexion qui sont indiquées dans le fichier gradle.properties (à la racine de l’installation du serveur arcOpole Builder, l'utilisateur se nomme arco_builder chez nous), il est donc nécessaire de donner les droits en select sur les tables intervenant dans la génération du rapport, et cela fonctionne ensuite depuis le widget rapport.
Fabien Laganne