Découvrez toutes les options pour utiliser les actions standard

Traduit automatiquement de Deepl

Certains développeurs pensent que les actions automatiques sont pour les débutants. Cependant, ils ont peut-être manqué beaucoup de potentiel que nous avons ajouté ces dernières années. Les actions standard, telles que First Record ou color?value=redpeuvent être assignées à un bouton dans l’interface utilisateur ou par programmation. L’action peut être affectée à un élément de menu, à un menu contextuel ou invoquée avec une commande. L’avantage est que 4D gère aussi automatiquement la désactivation de l’élément de menu ou du bouton lorsque l’action n’est pas applicable (par exemple, s’il n’y a pas d’enregistrement suivant).

Et à partir de 4D v16 R3, la liste des actions standard s’allonge : plus de 100 nouvelles actions standard ont été ajoutées pour 4D Write Pro et Styled Text, permettant de construire par exemple une barre d’outils sans écrire une ligne de code !

En résumé, vous pouvez utiliser les actions standard de 3 manières différentes :

  • Associer une action standard à un objet : en phase de conception (en utilisant la liste des propriétés) ou par programmation.
  • Associer une action standard à un élément de menu : en phase de conception (en utilisant la boîte à outils) ou par programmation.
  • Utilisez les nouvelles commandes INVOKE ACTION et Get action info commandes

Associer une action standard à un objet

En phase de conception

La liste de propriétés permet d’associer une action standard à un objet du formulaire actif. Dans cet exemple, l’action standard Supprimer un enregistrement est associée à un bouton.

Delete Record action in Property List

Pour plus de détails, veuillez vous référer à cet article de la documentation.

Par programmation

Pendant l’exécution de l’application, vous pouvez associer dynamiquement pour le processus en cours une action standard à un objet par programmation. Ainsi, vous écrasez l’action standard définie par la liste de propriétés.

Par exemple, vous souhaitez associer l’action standard Delete Record à un bouton « btnDelete » :

OBJECT SET ACTION(* ; "btnDelete" ;ak delete record)ou si vous utilisez la valeur au lieu de la constante :

OBJECT SET ACTION(* ; "btnDelete" ; "deleteRecord")

Et si vous utilisez la valeur au lieu de la constante, vous pouvez également passer un paramètre avec l’action. Dans cet exemple, vous appliquez la couleur magenta à un texte sélectionné.

OBJECT SET ACTION(* ; "btnDelete" ; "color?value=magenta")

Pour plus de détails, veuillez vous reporter à la documentation de ces commandes :

Associer une action standard à un élément de menu

En phase de conception

Vous pouvez associer une action standard à un élément de menu à l’aide de l’éditeur de menu. Par exemple, pour ajouter un élément de menu permettant d’ouvrir le Centre de maintenance et de sécurité 4D, il suffit de sélectionner l’action msc comme action standard associée dans le menu contextuel :

blank

Lorsque vous exécutez votre application, le menu s’affiche :

blank

Vous pouvez créer un sous-menu avec une action standard. Par exemple, pour ajouter un sous-menu permettant d’appliquer un style de police (comme Gras, Italique…), sélectionnez simplement l’action fontStyle comme action standard associée dans le menu contextuel :

Create a font style menu with standard automatic action

Lorsque vous exécutez votre application, le menu s’affiche :

Menu fontStyle with standard automatic action

Pour plus de détails, veuillez vous référer à cet article de la documentation.

Par programmation

Vous pouvez également passer une action standard à la commande SET MENU ITEM PROPERTY . Depuis 4D v16 R3, si vous passez la constante ak standard action title à la place d’un nom de titre à la commande APPEND MENU ITEM; 4D utilise le nom de l’action localisée.

Par exemple, dans un menu contextuel, pour ajouter un élément de menu permettant d’aller au premier, dernier ou prochain enregistrement, vous écrivez le code suivant :

  • Dans la méthode Form :

Case of
: (Form event=On Load) := ( ; ) ( ;-1 ; ; ) ( ; ) ( ;-1 ; ; ) ( ; ) ( ;-1 ; ; ) : ( = ) ( )
// create menu
menuCreate menu
//insert first record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak first record
//insert last record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak last record
//insert next record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak next record
Form eventOn Unload
// release menu
RELEASE MENUmenu
End case

  • Dans la méthode du bouton qui affiche le menu contextuel :

$val:=Dynamic pop up menu(menu)

Ensuite, lorsque vous exécutez votre application dans une autre langue, le menu s’affiche :

blank

Pour plus de détails, veuillez vous référer à la documentation de ces commandes :

INVOKE ACTION commande

La commande INVOKE ACTION ajoutée dans 4D v16 R3, déclenche l’action standard définie par le paramètre action, optionnellement dans le paramètre target contexte. Pour savoir si l’action standard est applicable et valide dans le contexte actuel, vous pouvez utiliser la nouvelle commande Get action info commande.

La syntaxe est la suivante :

INVOKE ACTION ( action { ; target} )

Par exemple, pour changer l’ouverture du MSC, vous pouvez écrire :

C_OBJECT($actionInfo)
// Check if this standard action is available and valid in this current context
$actionInfo :=Get action info(ak paste;ak current form)
If (OB Get($actionInfo; "enabled"))
// This standard action is enabled
INVOKE ACTION (ak paste;ak current form)
Else
ALERT ("Cette action est impossible. Le presse-papiers est vide.")
End if

Pour plus de détails, veuillez lire la documentation relative à ces commandes :

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée 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 des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.