Dynamics NAV. Profundizando en las listas desplegables DropDown

ART_DROPDOWN_00

Seguro que muchos de vosotros tenéis alguna duda acerca de cómo funcionan las listas desplegables DropDown que podemos ver en la mayoría de las “pages” de Microsoft Dynamics NAV.

Las listas desplegables “DropDown” fueron una de las novedades del cliente de roles respecto al cliente clásico donde el lookup o campo de búsqueda funcionaba de forma diferente.

 

 

ART_DROPDOWN_01

En este artículo trataremos de mostrar algunas de las características que se pueden configurar para estas listas:

Filtrado Columnas

El objetivo de la lista desplegable o DropDown es localizar rápidamente un registro conforme vas escribiendo. Basta con empezar a escribir para que la lista se despliegue y empiece a buscar. Por defecto la columna de filtrado será el campo clave de la tabla pero podemos hacer clic en el encabezado de otra columna para poder buscar por ella.
Incluso podemos “Definir como columna de filtro predeterminado” esa nueva columna para que a partir de ese momento siempre la utilice.

ART_DROPDOWN_02

 

Modificar columnas en la lista DropDown

Esta configuración se hace a nivel de tabla. Debemos abrir la tabla en modo diseño e irnos a Ver – Field Groups

ART_DROPDOWN_03

 

Es posible añadir múltiples Field Groups pero sólo tendrá en cuenta el que esté identificado como “DropDown”. En caso de que no encuentre un Field Group con el nombre DropDown NAV utilizará la clave primaria y la descripción en la lista desplegable.

Podemos observar que en el caso de la tabla 18 Customer existe otro Field Group llamado Brick. Este nuevo Brick está destinado al nuevo cliente para teléfonos que incluye NAV 2016. En futuros posts trataremos este nuevo cliente.

En nuestro caso vamos a modificar el DropDown para mostrar el resultado:

ART_DROPDOWN_04

ART_DROPDOWN_05

Activar Filtrado en Columnas

Podemos observar que la nueva columna añadida “Cód. Vendedor” aparece como griseada, de forma que no podríamos filtrar por ella. Sólo es posible filtrar en columnas de tipo Code o Text, y solo si existe una clave que empiece con esa columna.
De esta forma vamos a crear una clave sobre dicha columna :

ART_DROPDOWN_06

Tras añadir esta nueva clave ya podríamos filtrar por esa columna:

ART_DROPDOWN_07

 

Botón Avanzado

El enlace “Avanzado” que aparece en la Lista Desplegable, abajo a la izquierda, abre la página especificada como LookupPageID en las propiedades de la tabla o en las propiedades del control en la página, teniendo prioridad este último.

ART_DROPDOWN_08

En caso de que no se especifique ninguno de los dos, el botón Avanzado aparecerá pero abrirá una página básica con las mismas columnas del DropDown. Sin embargo el botón que ya no estará disponible será el de “Nuevo”.

Si quitamos dicha propiedad de la tabla cliente vemos el resultado:

ART_DROPDOWN_09

ART_DROPDOWN_10

 

Botón Nuevo

El botón “Nuevo” que aparece igualmente en la zona inferior izquierda es para abrir un nuevo registro en una página en modo inserción. Esta página puede ser la misma que la del LookupPageID o la Pagina Ficha que esté asociada a la página lista.

En nuestro ejemplo la página “Customer List” asociada a la lista desplegable Drop-Down tiene asociada una página llamada “Customer Card”:

ART_DROPDOWN_11

El botón “Nuevo” solo aparece en la lista Drop-Down si alguna de las páginas, ya sea la del LookupPageID o la CardPageID tienen activadas el poder Insertar Registros. Si ambas páginas tienen las propiedades InsertAllowed= FALSE o Editable=FALSE, entonces el botón Nuevo desaparecerá.

Filtrar Registros Búsqueda

Cuando tecleamos en una lista Drop-Down automáticamente el desplegable comienza a mostrar los resultados en los que el comienzo del registro coincida con la cadena de texto tecleada. Sin embargo puede ser que lo que buscamos no esté al principio del registro por lo que debemos buscar la cadena de texto ya sea al principio, en medio o al final. Para ello usamos caracteres “comodín”, en este caso el *.

Ejemplo: Si buscamos un cliente cuyo nombre contiene la palabra “Energia” , teclearemos en el campo @*energia*.

Es fundamental escribir el * al principio y al final. La @ siempre delante del primer * me sirve para que incluya los resultados sin discriminar mayúsculas o minúsculas.

ART_DROPDOWN_12

Lista Drop-Down Filtrada Dinámicamente

Los registros que se muestran en la lista desplegable están filtrados según la propiedad Table Relation del campo en la tabla o del cuadro de texto en la página. Esto es igual que en el cliente clásico, sin embargo configurar un filtro en el Table Relation en el cuadro de texto a nivel de página ya no tiene efecto en la lista desplegable.

ART_DROPDOWN_13

Si lo hacemos a nivel de tabla sí que funcionará.

Sin embargo esto es un filtro estático. En ocasiones podemos tener la necesidad de filtrar dinámicamente en función de permisos de usuario o de algún otro criterio o propiedad (por ejemplo delegación a la que pertenece el usuario). En el cliente clásico podíamos realizar esto en el Trigger “Onlookup”, pero esto ya no funcionará en la lista desplegable, lo que programemos en el “Onlookup” se abrirá como una ventana emergente.

Existe una posibilidad de poder realizar un filtrado dinámico en la lista desplegable. Esto es a través del trigger OnOpenPage de la LookupPage asociada a la lista DropDown, ya que este trigger se ejecuta antes de la apertura de la lista DropDown. En versiones anteriores a NAV 2016 La limitación viene debido a que si especificamos filtros en ese trigger, los filtros establecidos en el tableRelation de la tabla eran borrados. A partir de NAV 2016 se anidan los filtros del Table Relation y los del trigger Onlookup.

En el ejemplo:

1) Vamos a establecer un filtro en el Table Relation de la tabla 36 Sales Header:

ART_DROPDOWN_14

Comprobamos el filtro:

ART_DROPDOWN_15

2) Ahora vamos a establecer un filtro en el trigger OnOpenPage de la page CustomerList

ART_DROPDOWN_16

 

Comprobamos el resultado:

ART_DROPDOWN_17

 

Ahora está aplicando los dos filtros, para verlo más detalladamente pulsamos en Avanzado:

ART_DROPDOWN_18

Tabla de contenidos

Síguenos en Linkedin
Suscribete a la Newsletter




    Etiquetas