domingo, 20 de diciembre de 2009

Mostrando las entidades relacionadas en el formulario

A veces necesitamos que las vistas con la información relacionada de una entidad, aparezcan en el mismo formulario (en un IFRAME) sin tener que ir al menú de la izquierda.
Existe una forma mas o menos no soportada de hacer esto, lo voy a mostrar con un ejemplo recogido del Blog de Jian Wang, que creo que es la mejor forma de hacerlo.
Bien, lo primero que hay que hacer es crear en el formulario un IFRAME por ejemplo con el nombre "IFRAME_view".
Luego debemos copiar el siguiente código en el evento OnLoad del formulario:

var navId = "nav_new_new_myentity_account";

if(document.getElementById(navId) != null)
{
var tmp = document.getElementById(navId).onclick.toString();
tmp = tmp.substring(tmp.indexOf("'")+1, tmp.indexOf(";"));
var loadArea = tmp.substring(0, tmp.indexOf("'"));
var roleOrd = (tmp.indexOf("roleOrd") == -1) ? -1 : tmp.substring( tmp.indexOf("roleOrd"), tmp.lastIndexOf("'")).replace("\\x3d", "=");
crmForm.all.IFRAME_view.src = (roleOrd == -1) ? GetFrameSrc(loadArea) : GetFrameSrc(loadArea) + "&" + roleOrd;

}

function GetFrameSrc(tabSet)
{
if (crmForm.ObjectId != null)
{
var id = crmForm.ObjectId;
var type = crmForm.ObjectTypeCode;
var security = crmFormSubmit.crmFormSubmitSecurity.value;
var path = document.location.pathname.substring(0, document.location.pathname.indexOf("edit.aspx")) + "areas.aspx?";

return (path + "oId=" + id + "&oType=" + type + "&security=" + security + "&tabSet=" + tabSet);
}
else
{
return "about:blank";
}
}

Lo unico que hay que modificar de este código para que funcione, es simplemente modificar el nombre de la variable "navId" (en la primera línea) con el nombre de la relacion que se desea.
Si tienen dudas en relación con el nombre, pueden ver el "id" del objeto HTML que tiene el enlace de la parte izquierda del formulario. Para recoger ese id de forma sencilla, se puede utilizar el depurador de HTML que tiene el Internet Explorer 8 (presionando F12), y así pudiendo seleccionar dicho enlace y ver su "id".

un saludo

No hay comentarios:

Publicar un comentario