#1 Thu 13 October 2022 15:39
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
QGIS: Retour a la ligne
Bonjour,
J'effectue un atlas à la parcelle par propriétaire(s).
Le ou les propriétaires sont dans un champ concat_pro. De sorte que s'il y a plusieurs propriétaires, une liste sera énumérée dans l'atlas comme en pj.
Voici l'expression qui permet de le faire:
' '|| '\n' || array_to_string( array_foreach( string_to_array("concat_pro", ' - '),concat( 'Nom : ', @element|| '\n' || '\n' || 'Bon pour accord le : Signature :')
),'\n\n\n\n\n' ) || '\n' || '\n' || '\n' || '\n' || '\n' || 'En qualité de' || ' ' || case when regexp_match( "concat_pro" , '-' ) then': Propriétaires' else ': Propriétaire' end || '\n' || '\n' || case when regexp_match( "concat_pro" , '-' ) then 'Reconnaissent' else 'Reconnaît' end || ' ' || 'avoir reçu un exemplaire du présent extrait du plan parcellaire'
Donc dans le champ
concat_pro
il y a : FFFF - BBBB
Ce qui donne en gros :
Nom : FFFF
Bon pour accord le : Signature :
Nom : BBBB
Bon pour accord le : Signature :
En qualité de propriétaires
Reconnaissent avoir reçu un exemplaire du présent extrait du plan parcellaire
Maintenant, si dans le champ concat_pro le propriétaire FFFF devient FFFF Représenté par RRRR, je voudrais aller à ligne à Représenté
Ce qui donnerait :
Nom : FFFF
Représenté par RRRR
Bon pour accord le : Signature :
Nom : BBBB
Bon pour accord le : Signature :
En qualité de propriétaires
Reconnaissent avoir reçu un exemplaire du présent extrait du plan parcellaire
Comment faire pour intégrer le passage à la ligne à partir de Représenté dans l'expression citée plus haut?
Merci.
Hors ligne
#2 Thu 13 October 2022 16:01
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1087
Re: QGIS: Retour a la ligne
Bonjour Conejo,
Question annexe : comment s'effectue ensuite la signature ? Sur document papier ou sur tablette ? Merci
Hors ligne
#3 Thu 13 October 2022 16:53
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Retour a la ligne
sur document papier
Hors ligne
#4 Thu 13 October 2022 18:25
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: QGIS: Retour a la ligne
Bonjour,
Si je puis me permettre, @conejo, essayez d'aérer et d'insérer des décalages et sauts de ligne dans vos formules d'expressions: ça en faciliterait grandement la lecture et la compréhension pour vous-même et pour ceux qui n'ont pas l'antériorité de votre réflexion et tombent sur le code. Et on y gagne tous énormement de temps. En outre, vous pouvez grandement simplifier la concaténation de vos textes et tout placer entre simple '' plutôt que plusieurs ||. Une réécriture simplifiée de votre code pourrait donner:
Code:
' \n' || -- j'avoue ne pas bien comprendre le pourquoi de l'espace avant le saut de ligne ni la nécessité de la ligne en elle-même... array_to_string( array_foreach( string_to_array("concat_pro", ' - '), concat( 'Nom : ', @element, '\n\nBon pour accord le : Signature :' ) )/*, '\n\n\n\n\n' ) -- j'avoue ne pas comprendre cette portion non plus(un délimiteur?), que je remplace par la parenthèse ci-dessous */ ) || '\n\n\n\n\nEn qualité de ' || case when regexp_match( "concat_pro", '-' ) then ': Propriétaires\n\nReconnaissent' else ': Propriétaire\n\nReconnaît' end || ' avoir reçu un exemplaire du présent extrait du plan parcellaire'
Pour ce qui est de l'affichage du représentant, la démarche consisterait à prendre le nom (@element), à vérifier s'il contient "Représenté par" et le cas échéant splitter et renvoyer les deux parties (regexp_matches) concaténées avec saut de ligne. si pas de "Représenté par", on ne renvoie que le nom, comme avant. Ce qui devrait donner (je vous laisse potasser la doc des fonctions utilisées pour de plus amples détails)
Code:
with_variable( 'represente', regexp_matches(@element, '(.*) Représenté par (.*)'), coalesce(@represente[0] || '\nReprésenté par ' || @represente[1], @element) )
Hors ligne
#5 Tue 18 October 2022 16:23
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Retour a la ligne
Merci. Cela fonctionne.
Comment faire pour intégrer dans l'expression s'il y a aussi Représentée par?
Hors ligne