Skip to main content
Version: Next

Ajouter des boutons d'action personnalisés sur la barre de menu du formulaire

Il est possible d'ajouter des boutons sur la barre de menu du formulaire :

  • Quatre emplacements disponibles pour des boutons simples
  • Un emplacement permettant de mettre N boutons avec sous-menu

Chacun de ces boutons peut être soit du type JavaScript, soit du type C#.

Exemple : image.png

Codage des boutons

Il faut créer un composant de type UserControl (fichier .ascx et .ascx.cs) dans le répertoire Custom_CLIENT à la racine du site Web (se référer à l'exemple BTN_Sample.ascx et BTN_Sample.ascx.cs).

Le fichier BTN_Sample.ascx est destiné à recevoir une ligne déclarative qui sera utilisé dans le .cs. L'élément important est le nom BTNSampleCommandProvider :

<KERNEL:CommandProvider ID="BTNSampleCommandProvider" runat="server" />

Dans ce fichier on peut également placer le code JavaScript utilisé par les boutons JavaScript (ici la fonction OnButton2Click).

Le fichier BTN_Sample.ascx.cs contient le code permettant de déclarer les boutons ainsi que le code C# des boutons de type C#

Déclaration de boutons

Cela se fait obligatoirement dans la méthode OnInit du composant : protected override void OnInit(EventArgs e) La création d'un bouton se fait avec l'instruction suivante :

this.BTNSampleCommandProvider.AddCommand("Application.CMD1", "un bouton C#", "apsButton", null)

Le premier paramètre Application.CMD1 détermine la position du bouton sur la barre de menu.

Il n'y as que quatre valeurs possibles pour les boutons simples :

  • Application.CMD1
  • Application.CMD2
  • Application.CMD3
  • Application.CMD4
Boutons attribués

Si le formulaire est de type GED, le bouton CMD1 est réservé et n'est donc plus utilisable. Si le formulaire est publié avec le module distribution, CMD2 est réservé. Il se peut donc qu'il ne reste plus que CMD3 et CMD4 de disponible.

Le deuxième paramètre est le libellé du bouton.

Le troisième paramètre doit toujours être apsButton.

Le quatrième paramètre dépends du type de bouton :

  • null : pour un bouton C# il faut alors s'abonner à l'évennement Click du bouton exemple :
_button1 = this.BTNSampleCommandProvider.AddCommand("Application.CMD1", "un bouton C#", "apsButton", null);
_button1.Click += new EventHandler(OnButton1Click);

La méthode OnButtonClick doit alors être écrite dans le fichier .cs.

  • NomFonctionJavascipt : pour un bouton JavaScript La fonction JavaScript NomFonctionJavascript doit alors être écrite dans le fichier .ascx.

Le cinquième paramètre est la classe CSS de l'icône du bouton.

Déclaration du composant sur le formulaire

Il faut rendre ce composant utilisable par le formulaire.

Pour cela, il faut créer dans le répertoire Custom_CLIENT un fichier FormularDesigner.xml (s'il n'existe pas déjà) contenant un descriptif du (des) composant(s) (voir fichier exemple FormularDesigner.xml joint)

Il faut dans ce fichier décrire autant de balises <RegisterDirective> qu'il y a de composants à publier sur les formulaires.

Exemple : Cette déclaration permet de rendre visible pour la publication notre composant

<RegisterDirective FieldType="" TagPrefix="CLIENT" TagName="BTN_SAMPLE" Src="~/Custom_DEV/BTN_Sample.ascx" Title="Exemple boutons">
<![CDATA[(Exemple de bouton)]]>
</RegisterDirective>

Il faut déclarer ce fichier XML dans Process Studio en allant dans les paramètres de l'application (icône située sous le logo Avanteam dans l'entête de la fenêtre, tout à gauche), dans le menu Paramètres, puis dans l'onglet Propriétés : image.png

Il n'y a plus qu'à publier le composant sur la ou les pages du formulaire où il doit apparaître : image.png

NB :

Les fichiers fournis à titre d'exemple, pour être utilisés plus d'une fois dans une application, doivent être renommés (noms des fichiers et noms des classes dans les fichiers).


Fichier(s) à télécharger

📎 Télécharger FormularDesigner.xml 📎 Télécharger BTN_Sample.ascx.cs 📎 Télécharger BTN_Sample.ascx