28/4/09

Modificar el filtrado de los campos lookup

Esta es una de esas pequeñas modificaciones (no soportadas) que pueden hacer que nuestros usuarios ganen mucho tiempo. Los campos de tipo lookup tienen su propia vista asociada, que se puede modificar para que en lugar de mostrarnos todos los registros de un determinado tipo, realice algún tipo de filtrado sobre ellos. El ejemplo más típico: cuando establecemos el contacto principal de una cuenta, no queremos ver todos los contactos, sino sólo aquellos que pertenecen a esa cuenta. Pues bien, gracias a un post de Atilio en las news que me llevó a este otro de Jim Wang que explica cómo hacerlo. Resulta que los campos lookup admiten un parámetro additionalparams donde podemos añadir un texto cualquiera para que aparezca en la caja de búsqueda. Si añadimos como campo de búsqueda a la vista de contactos el nombre de la empresa, ya tenemos resuelto el tema.

Modificamos el OnLoad del formulario de Cuenta para que añada el parámetro:



if (crmForm.FormType == 2 && crmForm.ObjectId != null) {
var name = crmForm.all.name.DataValue;
crmForm.all.primarycontactid.additionalparams = 'search=' + name;
}

Ahora modificamos la vista de búsqueda de contactos para que incluya el nombre de la cuenta:

SNAG-0001

Añadimos el campo Cliente principal:

SNAG-0000

Y ya está. Ahora, cuando abramos el lookup de Contacto principal, tendremos rellenado el nombre de la empresa. Si pulsamos buscar aparecerán sólo los contactos de esa cuenta.

1 comentario:

Anónimo dijo...

Hola Daniel! He aplicado lo que escribes y funciona de maravilla!
Muchas gracias! Saludos cordiales
Sandra Saucedo
Rqta-Santa Fe-Argentina