Buscar en este blog

viernes, 3 de octubre de 2014

Multiselect de grid en Ax 2012

Mas de una vez nos hemos topado con querer seleccionar varias lineas de un grid para luego hacer alguna acción con las mismas, como por ejemplo, actualizar estatus de las seleccionadas o imprimir un reporte solo con los datos de esas líneas seleccionadas por el usuario o mostrar al usuario una suma de montos de esas líneas, etc.


La manera mas rápida para recorrer esas líneas, es crear un botón para que en los argumentos se lleve los registros seleccionados y nosotros solo tengamos que leerlos, un ejemplo de lectura es el siguiente:

static void main(Args _args)
{    
    GRW_StoreHistorical table_storeHistorical;
    MultiSelectionContext claseLista;
    boolean statusPagado = true ;
    Amount sumaPago;
    ;

    //Asignamos la lista al objeto MultiSelectionContext
    claseLista = _args.multiSelectionContext();
    
    //Asignamos a nuestro buffer el primer registro de la lista que selecciono el usuario
    table_storeHistorical = claseLista.getFirst();
    
    //Si existe el registro, leemos y comenzamos a recorrer los registros del multiselect
    while (table_storeHistorical.RecId != 0 )
    {
        if (table_storeHistorical.StatusAudit != GRWStatusAudit::Pay)
            statusPagado = false ;
        else
            sumaPago += table_storeHistorical.AmountAccumulated;

        //Asignamos el siguiente elemento de la lista que seleccionó el usuario al buffer
        table_storeHistorical = claseLista.getNext();
    }

    if (!statusPagado)
        box::warning( "Todas las líneas seleccionadas No han sido pagadas." "No es posible reimprimir");
    else
        info(strfmt("Total de pagos: %1", sumaPago));

}

No olvides que te puedes unir a la página en Facebook Aprendiendo Dynamics Ax donde únicamente se tratan temas de desarrollo y se busca crear una comunidad de desarrolladores de Ax en nuestro idioma.

No hay comentarios.:

Publicar un comentario