4D v16.3

Sous-formulaires en liste

Accueil

 
4D v16.3
Sous-formulaires en liste

Sous-formulaires en liste  


 

 

Un sous-formulaire en liste est un formulaire provenant d’une autre table qui est affiché dans un formulaire de saisie. Un sous-formulaire en liste vous permet de saisir, visualiser et modifier des données dans d’autres tables. Les sous-formulaires en liste sont généralement utilisés avec les bases de données utilisant des liens de type 1 vers N. 

Typiquement, un sous-formulaire en liste affiche les enregistrements de la table N liée par un lien automatique de type 1 vers N. Vous pouvez disposer de plusieurs sous-formulaires provenant de différentes tables dans le même formulaire. En revanche, il n’est pas possible de placer deux sous-formulaires appartenant à la même table dans une même page de formulaire. 

Par exemple, une base de gestion de contacts peut utiliser une instance de sous-formulaire en liste pour afficher tous les contacts d’une société. Bien que les contacts apparaissent dans l’écran général, l’information est en fait stockée dans la table liée. A l’aide d’un lien 1 vers N, la conception de cette base de données rend facile le stockage d’un nombre illimité de contacts pour chacune des sociétés. Avec des liens automatiques, vous pouvez permettre la saisie de données dans la table liée sans programmation.

Bien que les sous-formulaires en liste soient généralement associés aux tables N, une instance de sous-formulaire peut afficher des enregistrements de toute autre table de la base de données.

Vous pouvez créer un sous-formulaire en liste à l’aide de l’assistant de création de formulaires ou l’ajouter dans un formulaire existant à l’aide de l’éditeur de formulaires. Vous devez avoir créé au préalable le formulaire Liste que vous souhaitez utiliser comme sous-formulaire.

Les sous-formulaires en liste peuvent être utilisés pour la saisie de données de deux manières différentes : l’utilisateur peut saisir des données directement dans le sous-formulaire ou effectuer la saisie dans un formulaire d’entrée associé. Dans cette configuration, le formulaire utilisé comme sous-formulaire est appelé Formulaire liste écran. Le formulaire de saisie associé est appelé Formulaire détaillé.

------>

Vous pouvez également permettre à l’utilisateur de saisir des données dans le formulaire liste écran :

Pour définir un formulaire en liste, vous devez d'abord et créer et configurer le sous-formulaire que vous souhaitez utiliser dans un formulaire parent. Pour plus d’informations sur les formulaires en liste, reportez-vous au chapitre Formulaires de sortie et états

Dans le formulaire parent, créez un objet de type sous-formulaire à l’aide de l’outil Sous-formulaire (variation du dernier bouton) de la barre d’objets. 

Note : Vous pouvez également effectuer un glisser-déposer depuis la Page Formulaires de l’Explorateur.

Dans la Liste des propriétés (thème “Sous-formulaire”), veillez à ce que l'option Sous formulaire liste soit cochée et choisissez la table source dans le menu Source ainsi que le Formulaire liste écran que vous voulez utiliser.

Dans le formulaire parent, vous pouvez redimensionner et repositionner le conteneur de sous-formulaire comme vous le souhaitez.

Vous pouvez ajouter des boutons personnalisés pour contrôler la saisie de données dans un sous-formulaire. Tout type de bouton — bouton, bouton inversé ou bouton invisible — peut être utilisé. Vous pouvez définir l’action de ces boutons à l’aide du langage (thème Saisie) ou via des Actions standard

4D propose trois actions standard, permettant de répondre aux besoins élémentaires de gestion des sous-enregistrements : Modifier sous-enregistrement, Supprimer sous-enregistrement et Ajouter sous-enregistrement. Lorsque le formulaire comporte plusieurs instances de sous-formulaires, l’action s’applique au sous-formulaire ayant le focus. 

Pour plus d’informations sur l’ajout de ces boutons et les actions standard associées, reportez-vous aux sections Boutons et Actions standard.

Vous pouvez définir plusieurs propriétés spécifiques relatives aux sous-formulaires en liste. Ces propriétés permettent de contrôler divers automatismes de fonctionnement et les actions utilisateurs autorisées (modes de sélection et de saisie).

Ces propriétés sont principalement destinées à une utilisation avec les sous-formulaires en page. Reportez-vous à la section Sous-formulaires en page.

Source  

Cette propriété permet de définir le type de source pour le sous-formulaire. Dans le cadre des sous-formulaires en liste, choisissez la table à laquelle appartient le sous-formulaire.

Cette option permet de désigner un formulaire détaillé à associer au sous-formulaire en liste. Un formulaire détaillé peut être utilisé pour la saisie ou la visualisation des sous-enregistrements. Il présente généralement davantage d’informations que le sous-formulaire en liste. Bien entendu, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire Sortie comme formulaire liste écran et un formulaire Entrée comme formulaire détaillé. Si vous ne spécifiez pas de formulaire pour la saisie en pleine page, 4D utilise automatiquement le format Entrée par défaut de la table.

Suivant la configuration du sous-formulaire, l’utilisateur pourra afficher le formulaire détaillé en double-cliquant sur un sous-enregistrement ou en utilisant les commandes d’ajout et de modification des sous-enregistrements.

Note : Vous pouvez associer un formulaire détaillé à un sous-formulaire en liste en appuyant sur la touche Maj et en faisant glisser le formulaire détaillé depuis l’Explorateur sur le conteneur de sous-formulaire.

Vous pouvez redimensionner comme vous le souhaitez la zone de sous-formulaire dans le formulaire, à l’instar de tout objet de formulaire.
Vous pouvez également laisser à 4D le soin de dimensionner automatiquement la largeur du sous-formulaire de manière à ce que tous les champs qu’il contient soient affichés. Pour cela, cochez l’option Largeur automatique dans les propriétés de l’objet conteneur. 

Note : Lorsque vous créez une zone de sous-formulaire en faisant glisser directement un formulaire depuis l’Explorateur, 4D définit automatiquement la largeur du sous-formulaire.

Les sous-formulaires en liste acceptent trois modes de sélection utilisateur : Aucun, Ligne unique et Multilignes.

  • Aucun
    Dans ce mode, aucun sous-enregistrement ne peut être sélectionné. Un clic dans la liste n’a pas d’effet sauf si l’option Saisissable en liste est cochée. Les touches de navigation provoquent uniquement le défilement de la liste, l’événement formulaire On Selection Change n’est pas généré. 
  • Ligne unique
    Dans ce mode, un seul sous-enregistrement à la fois peut être sélectionné. Un clic sur un sous-enregistrement provoque sa sélection et il devient le sous-enregistrement courant. La combinaison Ctrl+clic (Windows) ou Commande+clic (Mac OS) sur un enregistrement inverse son état sélectionné / désélectionné.
    Les touches fléchées Haut et Bas sélectionnent l’enregistrement précédent/suivant dans la liste. Les autres touches de navigation font défiler la liste. L’événement formulaire On Selection Change est généré à chaque changement d’enregistrement courant.
  • Multilignes
    Dans ce mode, plusieurs sous-enregistrements peuvent être sélectionnés simultanément. Les sous-enregistrements sélectionnés sont retournés par la commande GET HIGHLIGHTED RECORDS. Un clic sur un sous-enregistrement provoque sa sélection mais ne modifie pas le sous-enregistrement courant. La combinaison Ctrl+clic (Windows) ou Commande+clic (Mac OS) sur un enregistrement inverse son état sélectionné/désélectionné. Cette combinaison, ainsi que la combinaison Maj+clic permettent de créer des sélections multiples.
    Les touches fléchées Haut et Bas sélectionnent l’enregistrement précédent/suivant dans la liste. Les autres touches de navigation font défiler la liste. L’événement formulaire On Selection Change est généré à chaque changement d’enregistrement sélectionné.

Lorsqu’un sous-formulaire liste est Saisissable en liste, l’utilisateur peut modifier les données des sous-enregistrements directement dans la liste, sans devoir passer par le formulaire détaillé associé. Pour cela, il lui suffit de cliquer deux fois sur le champ à modifier afin de le passer en édition (veillez à espacer suffisamment les deux clics afin de ne pas générer de double-clic). 

Par défaut, ce mode est activé pour tous les sous-formulaires en liste :

Lorsque cette option n’est pas cochée, la saisie passe obligatoirement par le formulaire détaillé associé.

Vous pouvez paramétrer le fonctionnement des sous-formulaires liste en réponse à un double-clic de l’utilisateur. Dans les bases de données créées avec une ancienne version de 4D, vous pouvez en outre paramétrer la réponse en cas de double-clic sur une ligne vide (option de compatibilité).

  • Double-clic sur ligne : action à effectuer en cas de double-clic sur un enregistrement du sous-formulaire. Les options proposées sont :
    • Ne rien faire : ignorer le double-clic.
    • Modifier enregistrement : passer le sous-enregistrement en mode édition. La modification sera effectuée directement dans la liste si l’option “Saisissable en liste” est cochée. Sinon, elle sera effectuée en mode page, dans le formulaire détaillé associé au sous-formulaire.
    • Afficher enregistrement : afficher les données de l’enregistrement en mode page dans le formulaire détaillé associé au sous-formulaire (lecture seulement).
  • Double-clic sur ligne vide : action à effectuer en cas de double-clic sur une ligne vide du sous-formulaire. Les options proposées sont :
    • Ne rien faire : ignorer le double-clic.
    • Ajouter enregistrement : créer un nouveau sous-enregistrement et le passer en édition. La création sera effectuée directement dans la liste si l’option “Saisissable en liste” est cochée. Sinon, elle sera effectuée en mode page, dans le formulaire détaillé associé au sous-formulaire.

Par défaut, l’utilisateur peut supprimer des sous-enregistrements dans un sous-formulaire liste à l’aide de la touche Suppr ou Ret. Arrière.

Cette possibilité pouvant gêner le fonctionnement standard de l’interface de certaines applications (basée par exemple sur des boutons), vous pouvez l’interdire à l’aide de l’option Autoriser la suppression

Lorsque cette option est désélectionnée, l’utilisateur ne peut plus supprimer de sous-enregistrement via les touches de suppression du clavier.

Une instance de sous-formulaire peut disposer de la propriété Focusable (thème “Saisie”). Lorsqu’une instance de sous-formulaire a le focus, l’utilisateur peut le contrôler à l’aide des touches de navigation, utiliser la commande de menu Tout sélectionner (si la sélection est multilignes), etc. 

Lorsqu’un sous-formulaire reçoit ou perd le focus, la méthode formulaire du formulaire parent est appelée avec les événements On Getting Focus ou On Losing Focus. Dans ce cas, la commande OBJECT Get pointer (ou la commande Focus object) retourne un pointeur vers la table du sous-formulaire.

Comme pour tous les objets focusables, la propriété Cacher rectangle de focus permet de ne pas représenter graphiquement le focus.

Comme il peut y avoir plus d’enregistrements que la zone du sous-formulaire ne peut en accueillir, 4D propose trois options (thème “Impression”) pour contrôler l’impression des enregistrements des sous-formulaires :

  • Non limitée par le cadre (option par défaut)
    Lorsque vous sélectionnez cette option, 4D étend ou réduit la zone du sous-formulaire pour imprimer tous les sous-enregistrements.
  • Limitée par le cadre
    Si vous sélectionnez cette option, 4D n’imprime que les sous-enregistrements qui apparaissent dans la zone du sous-formulaire. Le formulaire n’est imprimé qu’une fois et les enregistrements qui ne sont pas imprimés sont ignorés.
  • Limitée avec report
    Si vous sélectionnez cette option, la taille initiale de la zone du sous-formulaire est conservée mais 4D imprime le formulaire plusieurs fois pour imprimer tous les enregistrements.
    Notes :
    • Vous ne pouvez pas placer d’objet à côté d'un objet conteneur de sous-formulaire. Tout objet placé d’un côté ou de l’autre du conteneur sera répété pour chaque ligne du sous-formulaire.
    • Vous ne pouvez pas imprimer plusieurs instances de sous-formulaires provenant de la même table sur une même page de formulaire.
    • Les commandes Print object et Print form ne sont pas compatibles avec les options d'impression en taille variable.
    • L'option d'impression en taille variable peut être définie par programmation à l'aide de la commande OBJECT SET PRINT VARIABLE FRAME.
    • Pour plus d’informations sur l’impression d’objets de taille variable, reportez-vous à la section Impression taille variable.



Voir aussi  

Sous-formulaires en page

 
PROPRIÉTÉS 

Produit : 4D
Thème : Sous-formulaires et widgets

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v16)
4D - Mode Développement ( 4D v16.1)
4D - Mode Développement ( 4D v16.3)