Pages: 1
- Sujet précédent - QGIS: Utilisation de l'extension reffunctions dans QField - Sujet suivant
#1 Thu 09 April 2020 17:53
- Renaud_NM
- Participant actif
- Date d'inscription: 13 Sep 2019
- Messages: 84
QGIS: Utilisation de l'extension reffunctions dans QField
Bonjour,
Je viens de réaliser une formulaire en utilisant l'extension refFunctions et l'option "geomwithin".
j'ai exporté ce projet avec QField Sync sur une tablette.
je constate que "geomwithin" ne fonctionne pas.
Merci par avance pour votre aide, Cdlt
Hors ligne
#2 Sat 02 May 2020 19:26
- Pivès001
- Participant actif
- Date d'inscription: 23 Jan 2008
- Messages: 138
Re: QGIS: Utilisation de l'extension reffunctions dans QField
Bonjour,
refFunctions ne fonctionnera pas avec QField, c'est une extension pour l'application desktop uniquement (ses fonctions ne sont pas portées sur l'application).
J'ai eu le même soucis et pour contourner le problème j'ai utilisé une fonction native de QGIS permettant de mettre des couches en relation : aggregate. La syntaxe est la suivante :
Code:
aggregate( layer:='Ma couche de polygones', aggregate:='max', expression:="mon champ", filter:=intersects( $geometry, geometry( @parent ) ) )
layer correspond au nom de la couche dans le projet QGIS et expression au nom du champ d'intérêt. Il est aussi possible d'utiliser son alias, si il en a un. Attention à bien respecter les simples et double-quotes, c'est sensible à la case.
J'utilise ici un agrégat de type max car je souhaite récupérer un attribut en integer. On pourrait très bien utiliser un agrégat sur des contenus de type texte avec un concaténateur mais dans ce cas il faudrait convertir l'expression en texte
Code:
expression:=to_string("mon champ")
Cela marchera très bien dans QGIS desktop mais pas dans QField car QFieldSync renomme les champs lors de l'export. Il faut donc adapter l'expression spécialement pour QField et ajouter (offline) au nom de la couche :
Code:
aggregate( layer:=coalesce(layer_property('Ma couche de polygones','name'),layer_property('Ma couche de polygones (offline)','name')), aggregate:='max', expression:="mon champ", filter:=intersects( $geometry, geometry( @parent ) ) )
A suivre : https://github.com/opengisch/QField/issues/828
Un peu de lecture utile :
https://qfield.org/docs/en/project-mana … s.html#id1
https://www.qgis.org/en/site/forusers/v … -functions
https://docs.qgis.org/3.10/en/docs/user … -functions
Dernière modification par Pivès001 (Sun 03 May 2020 08:43)
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Utilisation de l'extension reffunctions dans QField - Sujet suivant