jueves, 26 de abril de 2007

Cambiar la vista por defecto - CRM 3.0

Bueno, sé que todos pensabamos que la vista por defecto no la podiamos cambiar, pero deambulando un poco por la web y basandome en ejemplos practicos, al final he conseguido cambiar la vista por defecto del Historia y de los Contratos en las cuentas.

Para realizar dicho cambio, necesitamos información varia:

* El nombre de la area a cargar.
* El nombre del Frame que contiene la vista del combo box de selección (Filtro).
* El nombre de la vista del Combo box.
* El valor del "option value" de la vista a seleccionar.

A continuación os pongo el código para cambiar la vista del Historial para mostrar "todo" por defecto, en vez de tan solo "los últimos 30 días". Ésto es aplicable a cualquier otro frame, luego os pondré por ejemplo el de contratos, para que en vez de mostrar por defecto "borrador", me muestre "todos".


//Código


SetDefaultView = function(viewCombo, viewName) {


if (viewCombo.value != viewName) {
viewCombo.value = viewName;
viewCombo.FireOnChange();
}}

/*Cargaremos el valor por defecto del Historico del Cliente

areaActivityHistoryFrame_OnReadyStateChange = function() {
if (document.readyState == "complete") {
var frame = document.frames("areaActivityHistoryFrame");
var viewCombo = frame.document.getElementById("actualend");
if (viewCombo.readyState == "complete") {
SetDefaultView(viewCombo, "All"); }
else {
viewCombo.onreadystatechange = function() {
if (this.readyState == "complete") {
SetDefaultView(this, "All"); }}}}}
loadArea('areaActivityHistory');
loadArea('areaForm');
document.frames("areaActivityHistoryFrame").document.onreadystatechange = areaActivityHistoryFrame_OnReadyStateChange;


//Ahora podemos hacer lo mismo para los contratos:


areaContractsFrame_OnReadyStateChange = function() {
if (document.readyState == "complete") {
var frame = document.frames("areaContractsFrame");
var viewCombo = frame.document.getElementById("statecode");
if (viewCombo.readyState == "complete") {
SetDefaultView(viewCombo, "All"); }
else {viewCombo.onreadystatechange = function() {
if (this.readyState == "complete") {
SetDefaultView(this, "All"); }}}}}
loadArea('areaContracts');
loadArea('areaForm');
document.frames("areaContractsFrame").document.onreadystatechange = areaContractsFrame_OnReadyStateChange;