Message posté par : aheurion
----------------------------------------
Bonjour,
Avoir un ID automatique ? ok
Avoir un ID automatique qui prenne la valeur d'un ancien élément mais uniquement
s'il est au même endroit et que l'ancien a été supprimé ? plus dur.
Pour ce qui de ton code je peux te conseiller d'utiliser ceci :
-----------------
Code :
concat(
'C',
right(
concat(
'00000',
$id+1
),
5
)
)
-----------------
Ainsi tu auras forcément un id de la forme C00001, C00054, ou C07541 par exemple (toujours
5 chiffres après le C, en supposant que tu n'auras jamais plus de 99999 entités^^)
Pour ce qui est de trouver une valeur en fonction des câbles existants en start_point et
end_point il y a peut-être moyen de jouer avec un aggregate (oui j'aime les
aggregate^^) :
-----------------
Code :
aggregate(
'ID_couche_cables',
'concatenate_unique',
to_int(right("ID",5))+1,
intersects(start_point(geometry(@parent)),end_point($geometry)),
';'
)
-----------------
Ainsi ça devrait prendre l'id du câble précédent+1 (on utilisant la première partie de
code pour refaire un C000XX à partir du résultat de l'aggregate).
Par contre il faudra bidouiller pour prendre en compte les cas où l'id proposé par
l'aggregate existe déjà (avec un CASE WHEN THEN par exemple).
Bon courage !
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=345281#p345281
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