Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Thu 13 October 2022 16:01

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1092

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: 3945

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

 

Pied de page des forums

Powered by FluxBB