Message posté par : Giene
----------------------------------------
Bonjour,
J'ai encore essayé avec la fonction aggregate, mais ça n'est pas ça, je me
retrouve avec l'ensemble des données contenues dans le champ désigné regroupées, alors
que j'aimerais travailler uniquement avec le champ en cours de remplissage dans la
couche parent et connaître sa valeur (NULL / pas NULL).
Les deux couches parents / enfant sont liées via un ID et je pense qu'il faut que je
m'appuie sur cet ID.
La couche enfant n'a pas de géométrie, ce qui fait que je ne peux pas utiliser les
fonctions spaciales.
Test
-----------------
Code :
CASE
WHEN
aggregate(layer:='TERRAIN_SAISIE_LISTE_PT',aggregate:='concatenate',expression:="Pla-cort"
|| "Ident") is not NULL
THEN
CASE
WHEN
length(aggregate(layer:='TERRAIN_SAISIE_LISTE_PT',aggregate:='concatenate',expression:="Pla-cort"
|| "ID")) - length("ID_esp")> 0
THEN
"Recouvr" is not null
ELSE
"Recouvr" is null or "Recouvr" is not null
END
ELSE
"Recouvr" is null or "Recouvr" is not null
END
-----------------
Donc, finalement pour contourner le problème en attendant de trouver mieux ; comme les
deux couches sont liées par un ID, lorsque le champ "Pla-cort" est non NULL,
j'ajoute '@P' à la fin de l'identifiant.
Ensuite, dans les contraintes, puisque l'ID apparaît aussi dans la couche fille, il me
suffit de m'y prendre comme ça pour vérifier si "Pla-cort" est nul ou pas :
-----------------
Code :
CASE
WHEN
length("ID_esp") - length(replace("ID_esp",'@',''))
> 0
THEN
"Recouvr" is not NULL
ELSE
"Recouvr" is NULL or "Recouvr" is not NULL
END
-----------------
Si Pla-cort est NULL, pas d' '@P' dans l'ID, la contrainte retourne 0 ;
sinon la contrainte retourne 1.
A plus tard !
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=348173#p348173
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net