La introducción del cliente RTC en Microsoft Dynamics NAV a partir de la versión 2009 supuso cambios importantes en la forma de programar en el ERP. Uno de los ellos es la propiedad editable de los campos que se muestran en una página en Microsoft Dynamics NAV 2009 y Microsoft Dynamics 2013.
En un formulario, la propiedad editable de un control (TextBox, CheckBox, etc.) mostrado en el formulario es un valor fijo que acepta los valores Sí y No, pero la propiedad puede cambiarse en tiempo de ejecución, y asignar un nuevo valor con una sentencia, como la siguiente:
CurrForm.»Nombre del Control».EDITABLE(NuevoValorDeLaPropiedad);
En las páginas, este comportamiento es distinto. La propiedad editable de los controles acepta una expresión booleana, pero no existe una función para cambiar la propiedad en tiempo de ejecución, es decir, no se puede escribir una sentencia como la siguiente:
CurrPage.»Nombre del control».EDITABLE(NuevoValorDeLaPropiedad);
¿Cómo podemos entonces reproducir el comportamiento de hacer un campo Editable/No Editable en tiempo de ejecución? La herramienta de transformación de formularios a páginas hace lo siguiente:
* Declara una variable global, de tipo boolean, a la que llama NombreDelControlEditable
* Cambia la sentencia
CurrForm.»Nombre del Control».EDITABLE(NuevoValorDeLaPropiedad);
por
NombreDelControlEditable := NuevoValorDeLaPropiedad;
* Asigna la variable global creada a la propiedad Editable del control