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.

wprowadź opis zdjęcia tutaj

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.

wprowadź opis zdjęcia tutaj

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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow