Home

Ocultar el dropdown list de Actividades en CRM 2011

webmaster's picture

En nuestro proyeto de la entidad Gastos, nos surge la necesidad de ocultar el dropdown list de la lista de Actividades, debido a que este por lo general filtra la información basado en unos criterios poco útiles, así que es mejor diseñar vistas personalizadas con los criterios que queremos y no utilizar las condiciones de filtro que aparecen en dicho desplegable.

Nos referimos al desplegable que se muestra en la imagen más abajo:

Para reslver este problema hemos acudido a una solución no soportada vía Javascript, que funciona (después de habernos roto bastante la cabeza con la forma de llevarlo a cabo) sin que esto vaya a afectar el funcionamiento del CRM.

Se trata de personalizar un botón en el ribbon de la entidad "Activities" y aplicarle una regla de <Enable Rule> que oculte los elementos dropdownlist y su etiqueta utilizando el modelo DOM de Javascript.

Para editar el ribbon de la entidad Activities hemos utilizado el Visual Ribbon Editor for CRM 2011/2013, disponible gratuitamente en CodePlex, mostrando la zona del Homepage donde vamos a insertar el boton que personalizará nuestra entidad. 

Después de ponerle el nombre al botón, editamos la propiedad de regla de <Enable Rule> en donde introducimos dos elementos:

Library: Ponemos el nombre de la libreria que contiene la funcion que desabilitará los elemento. Muy importante introducir el nombre de la librería de la siguiente forma: "$webresource:<nombre de la libreria>". En nuestro caso introducimos "$webresource:new_ActivitiesToolKits".

Function Name: El nombre de la funcion sin los parentesis: HideDueFilterFromDRM.

Nota: En la de definición del botón hemos ocultado el label del mismo y no le hemos puesto ninguna imagen para que no haga falta ocultarlo durante la carga de la entidad.

Para que los cambios surtan efecto, pulsamos el botón Save en la parte superior. Esto hará que se almacenen los cambios al mismo tiempo que se publican en el CRM.

Postriormente creamos una solución no administrada e introducimos dos elementos:

  1. La entidad Activities.
  2. Un nuevo webresource de tipo Script donde codificaremos nuestra funcion  HidDueFilterFromDRM.

La solución quedaría de la siguiente forma:

>

El código de nuestra función es muy sencillo:

function HideDueFilterFromDRM(){
try {

        var due = document.getElementById(“gridControlBarElement_4″);
        var label = document.getElementById(“crmDateSelector”);
 
        if (due != null) {
            due.style.display = “none”;
        }
 
        if (label != null) {
            label.style.display = “none”;
        }
    }
    catch (e) { }
    return true;

}

Dentro del código aparecen la identificacion de los elementos que se ocultan en la función. Esto lo hemos averguado con la función F12 de IE que permite navegar por los objetos del DOM en la página, al igual que otras funciones como depuración, busqueda de elemenos, estructura css, entre otras.

Una vez realizados los cambios en la solución, la publicamos y realizamos las pruebas de funcionamiento en la que se muestran ya loe elementos ocultos.

Fuente: 

Centro Práctico - LEMURSOLUTION

Contacto: 
webmaster