Associations

De Wiki.

Une table servant de liaison pour associations entre tables doit posséder dans le node <class> l'attribut :

 is_asso="true"

Ce paramètre n'impacte pas le fonctionnement des associations mais est nécessaire pour le rendu/édition

<?xml version="1.0" encoding="ISO-8859-1" ?>
<class name="emploi_destinataire" is_asso="true" prefix="ed" display="offre" abstract="destinataire">
<item name="id" type="int" length="11" isprimary="true" notnull="true" default="-1" list="true" />
<item name="offre" type="int" default="0" order="true" fkey="offre" />
<item name="destinataire" type="int" default="0" order="true" fkey="destinataire" />
</class>

Les tables associées doivent de leur côté décrire les associations possibles Pour cela le node <id> doit posséder un paramètre décrivant la(les) liaison(s) au moyen du(des) noms des tables liées (nom de la table enfant dans le cas d'une liaison 1,n ; nom de la table d'association dans le cas d'une liaison n,m). Ce paramètre peut être général (asso="...") ou ne concerner que le mode fiche (asso_view="...") ou le mode formulaire (asso_edit="...").

<item name="id" type="int" length="11" isprimary="true" notnull="true" default="-1" list="true" asso="assoactaffichage,assoactiviteacttheme,assoactiviteactage">

Dans le cas d'une table avec une associations liant sur elle même, un fonctionnement asymétrique peut être mis en place en plaçant dans le tag <class> l'attribut :

 is_asymetric="true"

Seules les associations partant de l'enregistrement courant sont alors manipulables, les associations y arrivant ne sont pas traitées. Cela signifie qu'il est alors possible d'avoir 2 enregistrements coexistants dans la table d'association (un sortant et un entrant) ce qui constituerait un doublon non souhaité si le mode asymétrique n'était pas activé.

Le paramètre is_asymetric sera ignoré si l'association ne cible pas la même table.