acumatica
Technieken voor gebruikersinterfaces
Zoeken…
Een vervolgkeuzemenu voor een scherm maken
Stel dat u een vervolgkeuzemenu moet definiëren voor een bepaald Acumatica-scherm, zoals het menu Rapporten in de volgende schermafbeelding.
Dit kan op drie verschillende manieren worden bereikt:
- Door een werkbalk met een menu-item toe te voegen aan de ASPX van het scherm
- Door een speciale "map" -actie aan de grafiek te verklaren en menu-items in de code toe te voegen
- Door het automatiseringssubsysteem van het Acumatica Framework te gebruiken (wordt dit voorbeeld niet behandeld)
Optie 1: een vervolgkeuzemenu maken in ASPX
Zorg er allereerst voor dat het PXDataSource-element van de ASPX-pagina alle benodigde opdrachten bevat die overeenkomen met de grafische acties die u wilt uitvoeren wanneer u op een menu-item klikt.
<px:PXDataSource
ID="ds" runat="server" Visible="True" PrimaryView="TranslHistRecords" TypeName="PX.Objects.CM.TranslationHistoryMaint">
<CallbackCommands>
...
<px:PXDSCallbackCommand Name="TranslationDetailsReport" Visible="False"/>
...
</CallbackCommands>
</px:PXDataSource>
Voeg vervolgens een aangepast werkbalkelement toe direct na het PXDataSource-element. Definieer hierin een PXToolbarButton met de gewenste vervolgkeuzemenu-items die zijn gekoppeld aan de respectieve gegevensbronopdrachten, zoals weergegeven in de volgende code.
<px:PXToolBar ID="toolbar1" runat="server" SkinID="Navigation" BackColor="Transparent" CommandSourceID="ds">
<Items>
<px:PXToolBarButton Text="Reports">
<MenuItems>
<px:PXMenuItem Text="Translation Details" CommandSourceID="ds" CommandName="TranslationDetailsReport"/>
</MenuItems>
</px:PXToolBarButton>
</Items>
<Layout ItemsAlign="Left" />
</px:PXToolBar>
Deze optie kan verleidelijk lijken vanwege de eenvoud; er is echter een belangrijk nadeel . Als u een dergelijke vervolgkeuzelijst implementeert op een scherm met een verwerkingsindicator (zoals een documentvrijgavescherm of een massaverwerkingsscherm), verschijnt de indicator links van uw vervolgkeuzemenu, zoals hieronder weergegeven.
Als dit niet wenselijk is, kunt u overwegen een vervolgkeuzemenu in de code te definiëren zoals beschreven in de sectie Optie 2 hieronder.
Optie 2: een menu in de grafiek maken
Verklaar eerst in de grafiek van de pagina een "map" -actie die overeenkomt met de vervolgkeuzelijst.
public PXAction<TranslationHistory> reportsFolder;
[PXUIField(DisplayName = "Reports", MapEnableRights = PXCacheRights.Select)]
[PXButton(SpecialType = PXSpecialButtonType.Report)]
protected virtual IEnumerable Reportsfolder(PXAdapter adapter)
{
return adapter.Get();
}
Geef vervolgens in de constructor van de grafiek aan dat de actie inderdaad een vervolgkeuzemenu is en voeg alle acties toe die moeten worden weergegeven als menu-items, zoals hieronder wordt getoond.
public TranslationHistoryMaint()
{
this.reportsFolder.MenuAutoOpen = true;
this.reportsFolder.AddMenuAction(this.translationDetailsReport);
}
Als u deze aanpak selecteert, verschijnt de verwerkingsindicator altijd rechts van uw menu, wat aantoonbaar betere UX is.