Facilitez la vie de votre développeur avec les boîtes de liste

Traduit automatiquement de Deepl
Notre objectif principal est de faciliter la vie des développeurs, jour après jour, et les boîtes de liste sont l’un des objets de formulaire les plus utilisés et les plus puissants de 4D qui servent cet objectif. Nous savons tous que les boîtes de liste déclenchent de nombreux événements, c’est pourquoi dans 4D v18 R2, nous avons amélioré la commande Form event pour renvoyer encore plus d’informations lorsque des événements liés aux boîtes de liste sont déclenchés.
Vous voulez vous débarrasser de votre ancien code qui vous permettait de deviner sur quelle ligne, quelle colonne ou quel en-tête vous aviez cliqué ou placé votre souris ? Laissez-nous vous montrer une façon plus simple et plus intelligente de le faire !

HDI : Exemples pour travailler facilement avec les événements Listbox

En fonction de l’événement, d’autres propriétés pertinentes sont désormais renvoyées par la commande Form event commande.
Voyons quelques exemples.

Événement de clic sur l’en-tête

Le nom de l’objet d’en-tête, le nom de l’objet de colonne et le numéro de colonne sont désormais renvoyés par la commande Form event par la commande.
Voici un exemple de l’objet renvoyé lorsqu’un événement de clic sur l’en-tête est déclenché.

{"headerName":"headerLastname", // New property - Header object name
"columnName":"lastname", // New property - Column object name
"column":2,   // New property - Column number
"code":42,
"description":"On Header Click",
"objectName":"EmployeesLB"}

Par exemple, si vous définissez un nom d’objet de colonne avec un nom d’attribut réel d’une classe de données( par exemple, lastname) :

Lorsque l’on clique sur l’en-tête de la colonne affichant le nom de famille des employés, on trie la colonne sur les attributs lastname et firstname :

Form.event:=FORM Event
Case of
: (Form event code =On Header Click)
if (Form.event.columnName= "lastname")
Form .employees:=Form.employees.orderBy(Form.event.columnName+", firstname")
End if
End case

Sur l’événement DISPLAY DETAILS

Lorsque l’événement On Display Details est déclenché, des propriétés supplémentaires pertinentes( par exemple, isRowSelected) sont désormais renvoyées par la commande Form event par la commande. Cela peut être utile pour gérer l’apparence des lignes d’une boîte de liste.
Voici un exemple d’une méthode(setColor) définie dans la propriété Meta info expression d’une zone de liste :
blank
La méthode setColor:
C_OBJECT($event;$0;$meta)
$event :=FORM Event
$meta :=New object
Case of
: ($event.code=On Display Detail)
If ($event.isRowSelected) //set color when row is selected
$meta .fill:="lightblue"
End if

End case
$0 :=$meta

Et voici à quoi ressemble la boîte de liste lorsque des lignes sont sélectionnées :

blank

Sur le déplacement de la souris EVENT

Un autre événement fréquemment utilisé est l’événement « On Mouse Move ». Vous trouverez ci-dessous des exemples d’objets renvoyés par la commande Form event lorsqu’il est déclenché.

Vous obtenez immédiatement des propriétés utiles pour localiser l’endroit où vous avez placé votre souris !

La souris survole un en-tête

Form event La commande renvoie :

{"area" : "header", // The mouse is on a header
"areaName" : "headerLastname", // Header object name
"column":2, // Column number
"columnName" : "lastname", // Colmun object name
"code":37,
"description" : "On Mouse Move",
"objectName" : "EmployeesLB"}

La souris survole une cellule

Form event La commande renvoie :

{"area" : "cell", // The mouse is on a cell
"column":1, // Column number
"row":2, // Row number
"columnName" : "firstname", // Colmun object name
"code":37,
"description" : "On Mouse Move",
"objectName" : "EmployeesLB"}
Il y a tellement d’événements de boîte de liste qu’un seul article de blog ne suffit pas à tous les couvrir, alors assurez-vous de consulter la documentation pour trouver des informations détaillées sur chaque événement et téléchargez l’IDH pour en savoir plus !
Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. En tant que Product Owner, elle est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Marie-Sophie est diplômée de l'école d'ingénieur ESIGELEC et a commencé sa carrière en tant qu'ingénieur chez IBM en 1995. Elle a participé à divers projets (projets de maintenance ou de construction) et a travaillé en tant que développeur Cobol. Elle a ensuite travaillé en tant que concepteur UML et développeur Java. Dernièrement, ses principaux rôles étaient d'analyser et de rédiger des exigences fonctionnelles, de coordonner les équipes commerciales et de développement.