acumatica
Benutzeroberflächen-Techniken
Suche…
Erstellen eines Dropdown-Menüs für einen Bildschirm
Angenommen, Sie müssen ein Dropdown-Menü für einen bestimmten Acumatica-Bildschirm definieren, z. B. das Menü Berichte in der folgenden Abbildung.
Dies kann auf drei verschiedene Arten erreicht werden:
- Durch Hinzufügen einer Symbolleiste mit einem Menüelement zum ASPX des Bildschirms
- Durch Deklarieren einer speziellen "Ordner" -Aktion in der Grafik und Hinzufügen von Menüelementen im Code
- Verwendung des Automatisierungs-Subsystems des Acumatica Framework (nicht in diesem Beispiel enthalten)
Option 1: Erstellen eines Dropdown-Menüs in ASPX
Stellen Sie zunächst sicher, dass das PXDataSource-Element der ASPX-Seite alle erforderlichen Befehle enthält, die den Diagrammaktionen entsprechen, die Sie ausführen möchten, wenn Sie auf ein Menüelement klicken.
<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>
Fügen Sie anschließend ein benutzerdefiniertes Symbolleistenelement direkt nach dem PXDataSource-Element hinzu. Definieren Sie darin einen PXToolbarButton mit den gewünschten Dropdown-Menüelementen, die auf die entsprechenden Datenquellenbefehle verweisen, wie im folgenden Code gezeigt.
<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>
Diese Option kann aufgrund ihrer Einfachheit verführerisch erscheinen. Es gibt jedoch einen wichtigen Nachteil . Wenn Sie eine solche Dropdown-Liste auf einem Bildschirm mit einem Verarbeitungskennzeichen implementieren (z. B. ein Dokumentfreigabebildschirm oder ein Massenverarbeitungsbildschirm), wird das Symbol links neben Ihrem Dropdown-Menü angezeigt (siehe unten).
Wenn dies nicht erwünscht ist, können Sie ein Dropdown-Menü im Code definieren, wie im Abschnitt Option 2 beschrieben.
Option 2: Erstellen eines Menüs in der Grafik
Zuerst deklarieren Sie in der Seitengrafik eine "Ordner" -Aktion, die der Dropdown-Menüschaltfläche entspricht.
public PXAction<TranslationHistory> reportsFolder;
[PXUIField(DisplayName = "Reports", MapEnableRights = PXCacheRights.Select)]
[PXButton(SpecialType = PXSpecialButtonType.Report)]
protected virtual IEnumerable Reportsfolder(PXAdapter adapter)
{
return adapter.Get();
}
Geben Sie anschließend im Konstruktor des Diagramms an, dass die Aktion tatsächlich ein Dropdown-Menü ist, und fügen Sie alle Aktionen hinzu, die als Menüelemente angezeigt werden müssen (siehe unten).
public TranslationHistoryMaint()
{
this.reportsFolder.MenuAutoOpen = true;
this.reportsFolder.AddMenuAction(this.translationDetailsReport);
}
Wenn Sie diesen Ansatz wählen, wird das Verarbeitungskennzeichen immer rechts von Ihrem Menü angezeigt, was wahrscheinlich eine bessere UX ist.