Ce composant sert pour l’affichage des champs de type dictionnaire (fkey_dico).

Edit me

Hérite de WidgetField.

Fonction

Rendu

Utilisation

Utilisation classique avec un dictionnaire

Sur Epicraft, ajouter un champ de type “choix simple” au formulaire et sélectionner le dictionnaire à utiliser.

<!-- la variable ressemble à ça dans la ressource de varset -->
<var uid="4" id="sexe" type="fkey_dico" default_label="Sexe :" mandatory="false">
    <fkey_dico dico_name="sexe"/>
</var>
      
<!-- le champ ressemble à ça dans la ressource de formulaire -->
<form_row>
    <label dataset="patient" field="sexe" class="col-md-3 text-right"/>
    <value dataset="patient" field="sexe" mode="rw" class="col-md-9 text-left">
        <option output="html" option_name="columns_count" value="1"/>
    </value>
</form_row>

Par défaut, une variable de type fkey_dico est affichée avec des boutons radio. Voir aussi le widget Select.

Utilisation avec un dataset de type référentiel (résultant d’un dataquery)

Par dataset de référentiel, on entend un varset contenant des valeurs ayant pour but d’être utilisées comme un dictionnaire. Par exemple : un référentiel des pays du monde pour que les utilisateurs puissent sélectionner leur pays de naissance.

1 - Ajout d’une variable au varset cible

Dans Epicraft, au lieu d’ajouter un champ de type dico pour afficher votre variable de type choix, ajouter un champ de type “nombre” (integer).

Il faudra veiller à documenter quelque part le mapping entre la valeur de ce champ et la table contenant le référentiel pour se rappeler d’où elle provient car le lien ne se fera plus “tout seul”.

  <!-- la variable ressemble à ça dans la ressource de varset -->
  <var uid="4" id="sexe" type="integer" default_label="Pays" mandatory="false"/>
  

2 - Ajout d’une source de données au formulaire cible

Ajouter une source de données de type “Varset” sans référence au contexte. Sélectionner le varset de référentiel. La table de varset servant de référentiel doit imiter un dictionnaire.

  <!-- le dataquery ressemble à ça dans la ressource de formulaire -->
  <dataquery varset_name="pays" table_alias="liste_pays" id="liste_pays" table_name="{pj}_pays_data" mode="r">
    <column_simple field_name="code" table_name="main"/>
    <column_simple field_name="id_data" table_name="main"/>
    <column_simple field_name="label" table_name="main"/>
    <column_simple field_name="short_label" table_name="main"/>
    <column_simple field_name="position" table_name="main"/>
  </dataquery>
  

3 - Modification du champ pour utiliser un WidgetRadioGroup

Forcer l’utilisation du WidgetRadioGroup pour l’affichage du champ de type nombre ajouté préalablement en et préciser le dataset à utiliser en ajoutant 2 propriétés personnalisées de type form.widget.value.option (voir options ci-dessous) sur le champ.

  <!-- le champ ressemble à ça dans la ressource de formulaire -->
  <form_row>
      <label dataset="patient" field="pays_de_naissance" class="col-md-3 text-right"/>
      <value dataset="patient" field="pays_de_naissance" mode="rw" class="col-md-6 text-left">
          <option output="html" option_name="widget" value="WidgetRadioGroup"/>
          <option output="html" option_name="dataset" value="liste_pays"/>
      </value>
  </form_row>
  

Utilisation avec un dataset “en dur”

Ce dispositif n’a d’intérêt que pour récupérer une valeur qui servira à un traitement côté serveur car ni le dataset cible, ni le dataset de dictionnaire ne proviennent d’un dataquery.

1 - Ajout de la source de données cible au formulaire

Ajouter une source de données de type “Libre” contenant le dataset cible.

<dataset id="patient">
    <metadata>
        <fields>
            <field id="id_data" type="primary_key"/>
            <field id="prenom" type="string" mandatory="true">
                <string length="255"/>
            </field>
            <field id="nom_de_famille" type="string" mandatory="true">
                <string length="255"/>
            </field>
            <field id="pays_de_naissance" type="integer" mandatory="true">
                <integer min="1" max="5"/>
            </field>
        </fields>
    </metadata>
    <rowdata/>
</dataset>

2 - Ajout de la source de données contenant le dictionnaire

Ajouter une source de données de type “Libre”. Le dataset doit “imiter” un dataset de dictionnaire.

<dataset id="liste_pays">
    <metadata>
        <fields>
            <field id="id_data" type="primary_key"/>
            <field id="short_label" type="string" mandatory="true">
                <string length="255"/>
            </field>
            <field id="label" type="string" mandatory="true">
                <string length="255"/>
            </field>
            <field id="position" type="integer" mandatory="true">
                <integer min="1" max="5"/>
            </field>
            <field id="code" type="string">
                <string length="255"/>
            </field>
        </fields>
    </metadata>
    <rowdata>
        <row id_data="1" short_label="FR" label="France" code="FR" position="1"/>
        <row id_data="2" short_label="UK" label="Royaume-Uni" code="UK" position="2"/>
        <row id_data="3" short_label="ES" label="Espagne" code="ES" position="3"/>
    </rowdata>
</dataset>

3 - Modification du champ pour utiliser un WidgetRadioGroup

Forcer l’utilisation du WidgetRadioGroup pour l’affichage du champ de type nombre ajouté préalablement (option “widget”) et préciser le dataset à utiliser (option “dataset”).

<!-- le champ ressemble à ça dans la ressource de formulaire -->
<form_row>
    <label dataset="patient" field="pays_de_naissance" class="col-md-3 text-right"/>
    <value dataset="patient" field="pays_de_naissance" mode="rw" class="col-md-6 text-left">
        <option output="html" option_name="widget" value="WidgetRadioGroup"/>
        <option output="html" option_name="dataset" value="liste_pays"/>
    </value>
</form_row>

Attributs

Les attributs nécessaires au bon fonctionnement du widget sont signalés par un astérisque.

Ce widget hérite de fonctionnalités issues d’un autre widget. Consultez la documentation dédiée au WidgetField pour vérifier si d’autres attributs sont disponibles.

Options

Les options nécessaires au bon fonctionnement du widget sont signalées par un astérisque.

Ce widget hérite de fonctionnalités issues d’un autre widget. Consultez la documentation dédiée au WidgetField pour vérifier si d’autres options sont disponibles.

columns_count

Affiche les boutons radio en colonnes. Les valeurs possibles vont de 2 à 12.

  • Version : >=2.15

  • Valeurs possibles : Integer

  • Valeur par défaut : 1

<option output="html" option_name="columns_count" value="1" />

columns_offset

Offset des boutons radio

  • Version : >=2.15

  • Valeurs possibles : Integer

<option output="html" option_name="columns_offset" value="0" />

dataset

Permet d’utiliser un dataset plutôt qu’un dictionnaire. Le dataset en question doit être similaire à un dataset de dictionnaire.

  • Version : >=2.26

  • Valeurs possibles : string

<option output="html" option_name="dataset" value="{dataset_value}" />

hide_label

Permet de masquer le label des boutons radio

  • Version : >=2.15

  • Valeurs possibles : Boolean

<option output="html" option_name="hide_label" value="false" />

inline

Permet de passer l’affichage en mode inline

  • Version : >=2.15

  • Valeurs possibles : Boolean

<option output="html" option_name="inline" value="false" />

show_archived

Permet d’afficher les valeurs archivées

  • Version : >=2.15

  • Valeurs possibles : Boolean

<option output="html" option_name="show_archived" value="false" />