Introduction
La manière habituelle ou par défaut de travailler avec les grilles Acumatica est d'implémenter des boutons au-dessus de la grille. Mais certaines personnes préfèrent avoir un menu contextuel. De cette façon, l'utilisateur peut utiliser un clic droit de la souris pour effectuer une action.
Dans cet article, je décrirai les étapes nécessaires que vous devrez suivre en tant que développeur pour fournir cette capacité à vos utilisateurs finaux.
Utilisation des sous-tâches
Dans un cas d'utilisation où nous devons ajouter un bouton d'action à une grille et où nous voulons que ce bouton d'action n'apparaisse que dans le menu qui s'ouvre avec un clic droit, nous voudrons diviser cette tâche en deux sous-tâches :
- Ajouter un bouton d'action à la grille
- Rendre ce bouton visible uniquement dans le menu qui s'ouvre lors d'un clic droit
Commençons par la première tâche. Dans chaque grille d'un fichier aspx, il y a une partie où les boutons d'action sont définis :
<px:PXGrid … ID=”grid” DataSourceID=”ds”>
<Levels>
</Levels>
<ActionBar>
[L'action doit se dérouler ici]
</ActionBar>
</px:PXGrid>
Pour ajouter un bouton d'action, nous devons l'implémenter comme suit :
<ActionBar>
<CustomItems>
<px:PXToolBarButton Text=”Insert Row” ImageSet=”main” ImageKey=”AddNew” DependOnGrid=”grid”>
<AutoCallBack Target=”ds” Command=”AddNewDSLine”/>
</px:PXToolBarButton>
</CustomItems>
</ActionBar>
*Notez ce qui suit :
Texte - le nom qui apparaîtra à l'écran
ImageSet et ImageKey - nécessaires pour ajouter l'icône sur le bouton
DependOnGrid - l'ID de la grille
Cible - DataSourceID de la grille
Commande - le nom de l'action dans le graphique
En outre, nous devons ajouter une méthode d'action simple à notre graphique. Quelque chose comme ceci fonctionnera :
public PXAction<DailySales> AddNewDSLine;
[PXButton(CommitChanges = true)]
[PXUIField(Enabled = true, MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]]
protected virtual IEnumerable addNewDSLine(PXAdapter adapter)
{
...
}
Maintenant, si nous publions le projet, nous verrons ce bouton ici :
Passons à la deuxième tâche. Pour ce faire, nous devons modifier l'élément
<ActionBar ToolBarVisible=”External” MenuVisible=”true”/>
Où
ToolBarVisible - ce paramètre permet de rendre le bouton invisible dans le menu situé en haut de la grille.
MenuVisible - ce paramètre permet d'ajouter le bouton au menu qui s'ouvre lors d'un clic droit.
Le code final ressemblera donc à ceci :
<ActionBar>
<CustomItems>
<px:PXToolBarButton Text=”Insert Row” ImageSet=”main” ImageKey=”AddNew” DependOnGrid=”grid”>
<AutoCallBack Target=”ds” Command=”AddNewDSLine”/>
<ActionBar ToolBarVisible=”External” MenuVisible=”true”/>
</px:PXToolBarButton>
</CustomItems>
</ActionBar>
Sur l'écran, nous aurons quelque chose qui ressemblera à ceci :
Et c'est tout. C'est assez simple et direct pour l'essentiel.
Résumé
Dans ce court billet, je vais vous montrer comment ajouter un peu de redondance à l'interface utilisateur des grilles en ajoutant une action dans le menu du clic droit sur une grille. Un autre scénario pourrait être celui où nous voulons avoir 5 boutons dans la grille ci-dessus, et d'autres types de fonctions dans le menu contextuel de la grille.
J'espère que cela vous a été utile.
Bon codage !