Buscar..


Creando un menú desplegable para una pantalla

Supongamos que necesita definir un menú desplegable para una pantalla particular de Acumatica, como el menú Informes en la siguiente captura de pantalla.

introduzca la descripción de la imagen aquí

Esto se puede lograr de tres maneras diferentes:

  • Agregando una barra de herramientas con un elemento de menú a ASPX de la pantalla
  • Al declarar una acción de "carpeta" especial al gráfico y agregar elementos de menú en el código
  • Mediante el uso del subsistema de automatización de Acumatica Framework (no cubierto por este ejemplo)

Opción 1: Crear un menú desplegable en ASPX

En primer lugar, asegúrese de que el elemento PXDataSource de la página ASPX contenga todos los comandos necesarios correspondientes a las acciones del gráfico que le gustaría realizar al hacer clic en un elemento del menú.

<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>

A continuación, agregue un elemento personalizado de la barra de herramientas justo después del elemento PXDataSource. Dentro de él, defina un PXToolbarButton con los elementos del menú desplegable deseados que enlazan con los respectivos comandos de fuente de datos, como se muestra en el siguiente código.

<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>

Esta opción puede parecer tentadora debido a su simplicidad; Sin embargo, hay un inconveniente importante . Si implementa un menú desplegable de este tipo en una pantalla con un indicador de procesamiento (como una pantalla de publicación de documentos o una pantalla de procesamiento en masa), el indicador aparecerá a la izquierda de su menú desplegable, como se muestra a continuación.

introduzca la descripción de la imagen aquí

Si esto no es deseable, considere definir un menú desplegable en el código como se describe en la sección Opción 2 a continuación.

Opción 2: Crear un menú en el gráfico

Primero, en el gráfico de la página, declare una acción de "carpeta" que corresponderá al botón del menú desplegable.

public PXAction<TranslationHistory> reportsFolder;
[PXUIField(DisplayName = "Reports", MapEnableRights = PXCacheRights.Select)]
[PXButton(SpecialType = PXSpecialButtonType.Report)]
protected virtual IEnumerable Reportsfolder(PXAdapter adapter)
{
    return adapter.Get();
}

A continuación, en el constructor del gráfico, indique que la acción es de hecho un menú desplegable y agregue todas las acciones que deben mostrarse como elementos del menú, como se muestra a continuación.

public TranslationHistoryMaint()
{
    this.reportsFolder.MenuAutoOpen = true;
    this.reportsFolder.AddMenuAction(this.translationDetailsReport);
}

Si selecciona este enfoque, el indicador de procesamiento siempre aparecerá a la derecha de su menú, lo que posiblemente sea un UX mejor.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow