👥 Relier plusieurs enregistrements à l'aide d'un formulaire

Parfois, un seul champ « acheteur/propriétaire » ne suffit pas : les mandats notariaux impliquent plusieurs acheteurs, les communautés d'héritiers comptent plusieurs propriétaires, et chez le notaire, il faut ajouter une administration. propform propose pour cela un modèle composé de deux formulaires et de macros de boucles d'adresse récursives.


Contenu


Concept : aperçu + modification

Vous créez deux formulaires qui fonctionnent ensemble :

Formulaire Objectif
Formulaire de vue d'ensemble Affiche les acheteurs/propriétaires/notaires actuellement associés à un bien immobilier, avec des boutons « Modifier » et « Associer d'autres personnes »
Formulaire de modification Un formulaire par type de personne avec les champs d'adresse ; enregistre l'adresse et la relie automatiquement au bien immobilier

Flux de travail pour l'utilisateur :

  1. Le formulaire de synthèse s'ouvre (avec ?estate[Id]=...)
  2. Les liens actuels sont répertoriés via les macros de boucle
  3. Clic sur « Lier (d'autres) acheteurs » → ouvre le formulaire de modification sans ID d'adresse → une nouvelle adresse est créée et liée
  4. Clic sur « Modifier l'adresse » → ouvre le formulaire de modification avec l'ID d'adresse → l'adresse existante est modifiée
  5. Le formulaire de modification utilise le formulaire de synthèse comme page de remerciement → l'utilisateur revient automatiquement à la synthèse mise à jour

---

Étape 1 : Créer le formulaire de modification

C'est le plus simple des deux formulaires. Il contient :

  • Champs d'adresse (civilité, prénom, nom, rue, code postal, ville, téléphone, e-mail…)
  • Paramètres du formulaire : « Associer le bien immobilier et l'adresse » en tant qu'acheteur, propriétaire ou via un type de contact (par ex. notaire, administration)
  • Page de remerciement = URL du formulaire de synthèse (par ex. https://formular.deine-domain.de/notarbeauftragung-uebersicht?estate[Id]=_Uuidestate)

> 💡 Astuce : tu as besoin d’un formulaire de modification distinct pour chaque type de personne (c’est-à-dire un pour l’acheteur, un pour le propriétaire, un pour le notaire et un pour la gestion), car chacun a une logique de liaison différente.

> 💡 Simplification : si les formulaires de modification ont tous la même mise en page, vous pouvez les créer à l'aide de la fonction « Copier le formulaire » et ne modifier que les paramètres de liaison.

---

Étape 2 : Créer le formulaire de synthèse

Le formulaire de synthèse se compose d’un seul champ de description dans lequel se trouvent les macros de boucle. Les champs sont entièrement remplis via des macros provenant d’onOffice.

Éléments importants pour chaque boucle :

  1. _ifEmpty(_Name;"Kein X verbunden";"...") — si aucun enregistrement n'est encore lié, afficher un message pertinent
  2. Début de la boucle _buyerbrek_1_ (Buyer-Begin-Recursion) ou _ownerbrek_1_ (Owner-Begin-Recursion)
  3. Contenu de la boucle — pré-macros telles que _BuyerVorname, _BuyerName, _BuyerStrasse, ainsi qu'un lien « Modifier l'adresse » avec l'UUID
  4. Fin de la boucle _buyererek_1_ ou _ownererek_1_
  5. Lien « Ajouter un autre » en dehors de la boucle (ouvre le formulaire d'édition sans ID d'adresse)

---

Exemple de code : boucle des propriétaires

_ifEmpty(_EigentName;"Kein Eigentümer verbunden";"_ownerbrek_1_
_OwnerTitel _OwnerVorname _OwnerName _ifEmpty(_OwnerName2;"";", _OwnerTitel2 _OwnerVorname2 _OwnerName2")
_OwnerStrasse
_OwnerPLZ _OwnerOrt
_OwnerTelefon, _OwnerEmail
<a href='https://formular.deine-domain.de/eigentuemer-bearbeiten?address[ID]=_OwnerUuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>

_ownererek_1_")
<a href="https://formular.deine-domain.de/eigentuemer-bearbeiten?estate[Id]=_Uuidestate">(Weiteren) Eigentümer verbinden</a>

Ce qui se passe :

  • _EigentName (macro onOffice standard) vérifie si un propriétaire est associé
  • _ownerbrek_1_ ... _ownererek_1_ parcourt tous les propriétaires associés
  • Pour chaque propriétaire, le titre, le prénom, le nom, l'adresse et les coordonnées sont affichés, ainsi qu'un lien « Modifier l'adresse » avec _OwnerUuidaddress (UUID du propriétaire actuel dans la boucle)
  • En dehors de la boucle se trouve un lien « Associer (d'autres) propriétaires » sans ID d'adresse → crée une nouvelle adresse

---

Exemple de code : boucle des acheteurs

Exactement le même modèle que pour les propriétaires, mais avec buyer à la place de owner et les pré-macros _Buyer* à la place de _Owner* :

_ifEmpty(_KaeuferName;"Kein Käufer verbunden";"_buyerbrek_1_
_BuyerTitel _BuyerVorname _BuyerName _ifEmpty(_BuyerName2;"";", _BuyerTitel2 _BuyerVorname2 _BuyerName2")
_BuyerStrasse
_BuyerPLZ _BuyerOrt
_BuyerTelefon, _BuyerEmail
<a href='https://formular.deine-domain.de/kaeufer-bearbeiten?address[ID]=_BuyerUuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>

_buyererek_1_")
<a href="https://formular.deine-domain.de/kaeufer-bearbeiten?estate[Id]=_Uuidestate">(Weiteren) Käufer verbinden</a>

---

Exemple de code : type de contact spécifique (notaire, administration, etc.)

Si tu ne souhaites pas parcourir toutes les adresses associées à un type de contact, mais afficher directement un type de contact spécifique (par exemple « le notaire de ce bien immobilier »), utilise la macro _XAPKontaktart#NAME# :

_ifEmpty(_XAPKontaktart#Notar#Name;"Kein Notariat verbunden
<a href='https://formular.deine-domain.de/notar-verbinden?estate[Id]=_Uuidestate'>Jetzt Notar verbinden</a>";"
_XAPKontaktart#Notar#Firma1
_XAPKontaktart#Notar#Vorname _XAPKontaktart#Notar#Name
_XAPKontaktart#Notar#Strasse, _XAPKontaktart#Notar#PLZ _XAPKontaktart#Notar#Ort
_XAPKontaktart#Notar#Telefon
_XAPKontaktart#Notar#Email
<a href='https://formular.deine-domain.de/notar-bearbeiten?address[ID]=_XAPKontaktart#Notar#Uuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>")

Notar correspond ici au nom de l'option de type de contact dans onOffice. Si vous utilisez vos propres valeurs de type de contact, vous devez utiliser la valeur de clé exacte, par exemple :

_XAPKontaktart#indMulti28075Select28075#Name

> 💡 Vous trouverez la valeur de clé dans onOffice sous Outils → Paramètres → Administration → Adresses → champ « Type de contact » → pour l'option correspondante.


Exemple complet de mandat notarial

Un formulaire d'aperçu de mandat notarial type combine toutes les boucles + tous les types de contact dans un champ de description :

**Eigentümer**

_ifEmpty(_EigentName;"Kein Eigentümer verbunden";"_ownerbrek_1_
_OwnerTitel _OwnerVorname _OwnerName _ifEmpty(_OwnerName2;"";", _OwnerTitel2 _OwnerVorname2 _OwnerName2")
_OwnerStrasse
_OwnerPLZ _OwnerOrt
_OwnerTelefon, _OwnerEmail
<a href='https://formular.deine-domain.de/notarbeauftragung-adresse-bearbeiten?address[ID]=_OwnerUuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>

_ownererek_1_")
<a href="https://formular.deine-domain.de/notarbeauftragung-eigentuemer-verbinden?estate[Id]=_Uuidestate">(Weiteren) Eigentümer verbinden</a>

---

**Käufer**

_ifEmpty(_KaeuferName;"Kein Käufer verbunden";"_buyerbrek_1_
_BuyerTitel _BuyerVorname _BuyerName _ifEmpty(_BuyerName2;"";", _BuyerTitel2 _BuyerVorname2 _BuyerName2")
_BuyerStrasse
_BuyerPLZ _BuyerOrt
_BuyerTelefon, _BuyerEmail
<a href='https://formular.deine-domain.de/notarbeauftragung-adresse-bearbeiten?address[ID]=_BuyerUuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>

_buyererek_1_")
<a href="https://formular.deine-domain.de/notarbeauftragung-kaeufer-verbinden?estate[Id]=_Uuidestate">(Weiteren) Käufer verbinden</a>

---

**Notariat**

_ifEmpty(_XAPKontaktart#Notar#Name;"Kein Notariat verbunden
<a href='https://formular.deine-domain.de/notarbeauftragung-notar-verbinden?estate[Id]=_Uuidestate'>Jetzt Notar verbinden</a>";"
_XAPKontaktart#Notar#Firma1
_XAPKontaktart#Notar#Vorname _XAPKontaktart#Notar#Name
_XAPKontaktart#Notar#Strasse, _XAPKontaktart#Notar#PLZ _XAPKontaktart#Notar#Ort
_XAPKontaktart#Notar#Telefon
_XAPKontaktart#Notar#Email
<a href='https://formular.deine-domain.de/notarbeauftragung-adresse-bearbeiten?address[ID]=_XAPKontaktart#Notar#Uuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>")

→ Après l'ouverture, l'utilisateur voit un aperçu clair de toutes les personnes associées + des boutons pour modifier ou ajouter d'autres personnes.


Pièges courants

L'entreprise en tant que propriétaire/acheteur est détectée comme « vide »

_ifEmpty(_EigentName;...) ne vérifie que le nom de famille. Dans les enregistrements d'entreprise, _EigentName est souvent vide et seul _EigentZusatz1 (nom de l'entreprise) est renseigné. Solution : compléter la vérification par le champ supplémentaire 1, par exemple :

_ifEmpty(_EigentName;_ifEmpty(_EigentZusatz1;"Kein Eigentümer verbunden";"...");"...")

Données de base 2 non activées

Les champs _OwnerName2, _OwnerStrasse2, _OwnerPLZ2, etc. (deuxième adresse au sein d'un enregistrement) ne sont pas activés par défaut dans de nombreuses versions d'onOffice. Si votre boucle y accède et qu'elle n'affiche rien, vérifiez dans onOffice sous Outils → Paramètres → Administration → Adresses si les champs Données de base 2 sont activés.

Le lien n'est pas résolu

Les liens HTML dans le champ de description fonctionnent, mais les guillemets doivent être soit simples ', soit doubles " — ils ne doivent pas être mélangés dans le même élément. L'imbrication _ifEmpty(...; ""; "...") vous oblige souvent à écrire les attributs HTML avec '.

Plusieurs boucles simultanées

Vous pouvez facilement combiner les boucles _buyerbrek_1_/_buyererek_1_ et _ownerbrek_1_/_ownererek_1_ dans le même champ de description. _1_ est un compteur interne — si vous avez besoin de plusieurs boucles Buyer dans un champ (ce qui est rare), augmentez le nombre : _buyerbrek_2_, _buyererek_2_.

Le formulaire de modification crée l'adresse deux fois

Si l'adresse est dupliquée au lieu d'être mise à jour lors de la deuxième soumission : le paramètre address[ID] n'est pas arrivé ou le formulaire n'est pas configuré sur « Préremplir l'adresse ». Vérifiez les paramètres de préremplissage.


Connexes