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.

inserisci la descrizione dell'immagine qui

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.

inserisci la descrizione dell'immagine qui

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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow