acumatica
Tecniche di interfaccia utente
Ricerca…
Creazione di un menu a discesa per una schermata
Supponiamo che sia necessario definire un menu a discesa per una particolare schermata di Acumatica, come il menu Rapporti nella seguente schermata.
Questo può essere ottenuto in tre modi diversi:
- Aggiungendo una barra degli strumenti con una voce di menu all'ASPX dello schermo
- Dichiarando un'azione speciale "cartella" sul grafico e aggiungendo voci di menu nel codice
- Utilizzando il sottosistema di automazione di Acumatica Framework (non coperto da questo esempio)
Opzione 1: creazione di un menu a discesa in ASPX
Prima di tutto, assicurarsi che l'elemento PXDataSource della pagina ASPX contenga tutti i comandi necessari corrispondenti alle azioni del grafico che si desidera eseguire quando si fa clic su una voce di menu.
<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>
Successivamente, aggiungi un elemento barra degli strumenti personalizzato subito dopo l'elemento PXDataSource. Al suo interno, definire un PXToolbarButton con le voci del menu a discesa desiderate che si collegano ai rispettivi comandi dell'origine dati, come mostrato nel seguente codice.
<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>
Questa opzione potrebbe sembrare allettante a causa della sua semplicità; tuttavia, c'è un importante inconveniente . Se si implementa tale discesa su uno schermo con un indicatore di elaborazione (come una schermata di rilascio del documento o una schermata di elaborazione di massa), l'indicatore apparirà a sinistra del menu a discesa, come mostrato di seguito.
Se ciò non è desiderabile, prendere in considerazione la definizione di un menu a discesa nel codice come descritto nella sezione Opzione 2 di seguito.
Opzione 2: creazione di un menu nel grafico
Innanzitutto, nel grafico della pagina, dichiara un'azione "cartella" che corrisponderà al pulsante del menu a discesa.
public PXAction<TranslationHistory> reportsFolder;
[PXUIField(DisplayName = "Reports", MapEnableRights = PXCacheRights.Select)]
[PXButton(SpecialType = PXSpecialButtonType.Report)]
protected virtual IEnumerable Reportsfolder(PXAdapter adapter)
{
return adapter.Get();
}
Successivamente, nel costruttore del grafico, indica che l'azione è effettivamente un menu a discesa e aggiungi tutte le azioni che devono essere visualizzate come voci di menu, come mostrato di seguito.
public TranslationHistoryMaint()
{
this.reportsFolder.MenuAutoOpen = true;
this.reportsFolder.AddMenuAction(this.translationDetailsReport);
}
Se selezioni questo approccio, l'indicatore di elaborazione apparirà sempre a destra del tuo menu, che è probabilmente UX migliore.