acumatica
Techniki interfejsu użytkownika
Szukaj…
Tworzenie menu rozwijanego dla ekranu
Załóżmy, że musisz zdefiniować menu rozwijane dla konkretnego ekranu Acumatica, na przykład menu Raporty na poniższym zrzucie ekranu.
Można to osiągnąć na trzy różne sposoby:
- Dodając pasek narzędzi z elementem menu do ASPX ekranu
- Przez zadeklarowanie specjalnej akcji „folderu” na wykresie i dodanie pozycji menu w kodzie
- Za pomocą podsystemu Automatyzacja programu Acumatica Framework (nieobjętego tym przykładem)
Opcja 1: Tworzenie menu rozwijanego w ASPX
Przede wszystkim upewnij się, że element PXDataSource strony ASPX zawiera wszystkie niezbędne polecenia odpowiadające akcjom na wykresie, które chcesz wykonać po kliknięciu elementu 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>
Następnie dodaj niestandardowy element paska narzędzi tuż za elementem PXDataSource. W nim zdefiniuj PXToolbarButton z żądanymi pozycjami menu rozwijanego łączącymi się z odpowiednimi poleceniami źródła danych, jak pokazano w poniższym kodzie.
<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>
Ta opcja może wyglądać kusząco ze względu na swoją prostotę; jest jednak jedna ważna wada . Jeśli zaimplementujesz takie menu rozwijane na ekranie ze wskaźnikiem przetwarzania (takim jak ekran zwolnienia dokumentu lub ekran przetwarzania masowego), wskaźnik pojawi się po lewej stronie menu rozwijanego, jak pokazano poniżej.
Jeśli nie jest to pożądane, rozważ zdefiniowanie menu rozwijanego w kodzie zgodnie z opisem w sekcji Opcja 2 poniżej.
Opcja 2: Tworzenie menu na wykresie
Po pierwsze, na wykresie strony zadeklaruj akcję „folderu”, która będzie odpowiadać przyciskowi menu rozwijanego.
public PXAction<TranslationHistory> reportsFolder;
[PXUIField(DisplayName = "Reports", MapEnableRights = PXCacheRights.Select)]
[PXButton(SpecialType = PXSpecialButtonType.Report)]
protected virtual IEnumerable Reportsfolder(PXAdapter adapter)
{
return adapter.Get();
}
Następnie w konstruktorze wykresu wskaż, że akcja jest rzeczywiście menu rozwijanym i dodaj wszystkie akcje, które muszą być wyświetlane jako pozycje menu, jak pokazano poniżej.
public TranslationHistoryMaint()
{
this.reportsFolder.MenuAutoOpen = true;
this.reportsFolder.AddMenuAction(this.translationDetailsReport);
}
Jeśli wybierzesz to podejście, wskaźnik przetwarzania będzie zawsze pojawiał się po prawej stronie menu, co jest prawdopodobnie lepszym UX.