Développement 4D
Champ de type « sous-table » et sous-formulaire
Comment utiliser un sous-formulaire pour remplacer un champ « sous-table »

Marche à suivre pour remplacer des champs de type « sous-table » par des sous-formulaires.

Article mis en ligne le 25 mars 2015
dernière modification le 1er avril 2015

par bernard.vuilleumier

Les champs de type « sous-table » et les instructions associées sont obsolètes et doivent être remplacés par des tables et des sous-formulaires. Lors de la conversion d’une base, 4D crée des tables pour les champs « sous-tables ». Les champs des tables ainsi créées peuvent être utilisés dans un sous-formulaire. Mode d’emploi.

Conversion d’une base comportant des sous-tables

Lors de la conversion d’une base comportant des champs de type « sous-table », 4D crée des tables pour ceux-ci. Dans l’exemple suivant, la table FACTURES comportait un champ « lignes » de type « sous-table ». Après conversion, la structure se présente ainsi :

Table « LIGNES » créée lors de la conversion

Avant conversion, les lignes d’une facture étaient enregistrées dans la sous-table « lignes » qui était un champ de la table FACTURES. La conversion permettra d’enregistrer les lignes d’une facture dans la table LIGNES. Pour identifier à quelle facture appartient une ligne de cette table, il faut, lors de l’enregistrement d’un facture, associer un identifiant à chacune de ses lignes.

Sous-formulaire de la page de saisie des factures

Les lignes de la facture apparaissent dans un sous-formulaire placé dans la page de saisie des factures.

Sous-formulaire utilisant un formulaire saisissable en liste

Ce sous-formulaire a pour source la table LIGNES et utilise un formulaire saisissable en liste de cette table.

Code associé au formulaire saisissable en liste et au sous-formulaire

Le formulaire saisissable en liste comporte une méthode qui permet d’associer chaque ligne à la facture en cours de saisie. L’identifiant de la facture est affecté à l’identifiant de la ligne.

Méthode associée au formulaire saisissable en liste

L’identifiant de la facture est créé par une méthode associée au sous-formulaire. Cette méthode est exécutée lors du chargement.

Si (Nouvel enregistrement([FACTURES]))
[FACTURES]ID_Fact:=Numerotation automatique([FACTURES])
Fin de si