version 2004
Dans 4D, le développeur peut proposer aux utilisateurs de créer ou de modifier des formulaires personnalisés. Ces "formulaires utilisateurs" sont alors utilisables pour l'affichage, la saisie, etc., comme n'importe quel formulaire de 4D.
Principes d'utilisation
Un formulaire utilisateur est basé sur un formulaire 4D standard créé par le développeur en mode Développement (appelé formulaire "source" ou formulaire "développeur"), auquel la propriété Modifiable par l'utilisateur a été appliquée dans l'éditeur de formulaires. Un éditeur de formulaires simplifié (appelé par la commande MODIFIER FORMULAIRE) permet aux utilisateurs de modifier l'apparence du formulaire, d'ajouter des objets graphiques (via une bibliothèque d'objets spécifique), de masquer des éléments, etc. le développeur peut contrôler les actions autorisées.
Les formulaires utilisateurs peuvent être employés de deux manières différentes :
L'utilisateur modifie le formulaire "source" pour l'adapter à ses besoins à l'aide de la commande MODIFIER FORMULAIRE. Le formulaire utilisateur est conservé en local et est utilisé automatiquement à la place du formulaire original.
Ce fonctionnement répond aux besoins pour le développeur de paramétrer sur site des boîtes de dialogue, par exemple pour coller le logo de l'entreprise dans les formulaires, masquer des champs inutiles, etc.
Le formulaire "source" sert de modèle de base que l'utilisateur peut dupliquer à loisir pour générer autant de copies que nécessaire (via la commande CREER FORMULAIRE UTILISATEUR). Chaque copie est librement paramétrable (contenu, nom, etc.) à l'aide de la commande MODIFIER FORMULAIRE. Le nom de chaque formulaire utilisateur doit simplement être unique. Les commandes FORMULAIRE ENTREE et FORMULAIRE SORTIE permettent ensuite de désigner le formulaire utilisateur à utiliser dans chaque process.
Ce fonctionnement répond par exemple aux besoins de génération d'états personnalisés.
Stockage et mise à jour des formulaires utilisateurs
Les mécanismes des formulaires utilisateurs fonctionnent avec les bases compilées et interprétées, avec 4D en mode local, 4D Server ou 4D Desktop. En mode client/serveur, les formulaires modifiés par l'utilisateur sont disponibles sur tous les postes.
4D assure automatiquement la gestion des modifications des formulaires. Lorsqu'un formulaire est déclaré Modifiable par l'utilisateur, il est verrouillé en mode Développement. Le développeur doit explicitement cliquer sur l'icône de déverrouillage afin de pouvoir accéder aux objets du formulaire. Cette opération rend automatiquement obsolètes les formulaires utilisateurs liés, qui devront alors être regénérés. Lorsqu'un formulaire "source" est supprimé, les formulaires utilisateurs liés sont supprimés.
Les formulaires utilisateurs sont stockés dans un fichier indépendant suffixé .4DA, placé à côté du fichier de structure principal (.4DB / .4DC). Ce fichier est appelé "fichier de structure utilisateur". Le fonctionnement de ce fichier est transparent : 4D utilise un formulaire utilisateur lorsqu'il existe (la commande LISTE FORMULAIRES UTILISATEURS permet de connaître à tout moment les formulaires utilisateurs valides). C'est également dans ce fichier que les commandes FORMULAIRE ENTREE et FORMULAIRE SORTIE recherchent les formulaires utilisateurs.
Lorsqu'un formulaire utilisateur est obsolète, il est supprimé et 4D utilise par défaut le formulaire source.
En client/serveur, le fichier .4DA est distribué sur les postes clients suivant les mêmes règles que le fichier de structure principal.
Ce principe permet de conserver les formulaires utilisateurs non obsolètes en cas de mise à jour de la structure par le développeur.
Codes d'erreurs
Des codes d'erreurs spécifiques peuvent être retournés lors de l'utilisation des commandes de gestion des formulaires utilisateurs. Ces codes, situés dans l'intervalle -9750 à -9759, sont décrits dans la section Erreurs de la base de données.
Formulaires utilisateurs et formulaires projet
Les mécanismes des formulaires utilisateurs ne sont pas compatibles avec les formulaires projet. Les commandes du thème "Formulaires utilisateurs" ne peuvent donc pas être utilisées avec les formulaires projet.