Potencie su proceso de desarrollo con sus formularios

Durante la fase de desarrollo, la detección temprana de errores sintácticos es importante para producir código de calidad. La comprobación de código en tiempo real es una valiosa ayuda para los desarrolladores. No sólo mejora la eficacia, sino también la calidad y aumenta la productividad. Al corregir los errores inmediatamente, puede concentrarse en el desarrollo funcional de su aplicación, en lugar de en los molestos bugs que aparecen durante la compilación.

Con 4D 20 R8, estamos encantados de introducir dos nuevas funcionalidades que transformarán su forma de trabajar.

  • La primera es la posibilidad de asociar una clase a un formulario, permitiendo la verificación de sintaxis con expresiones como Form.myProperty.
  • La segunda es una verificación en tiempo real de las expresiones en la lista de propiedades, con una descripción del error o advertencia mostrada.

Asociar una clase a un formulario

Ahora puede asociar una clase de usuario a un formulario utilizando el nuevo atributo «Form class«. Este atributo permite escribir el objeto devuelto por el comando Form permitiendo el uso de expresiones como Form.myProperty. La clase usuario puede provenir del proyecto local o de un componente.

Instanciación automática en tiempo de ejecución

Al abrir un formulario, puede pasar un objeto al comando DIALOG. Este objeto se convierte entonces en accesible dentro del formulario a través del comando Form.

El objeto pasado al comando DIALOG puede ser una instancia de una clase. Así es como puede proceder:

var $h : Integer
var $o : cs.Person
$o :=cs.Person.new()
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass"; $o)

A partir de la versión 4D 20 R8, si define la propiedad «Form class» en el formulario sin pasar un objeto al comando DIALOG, 4D se encarga automáticamente de la instanciación. Simplemente escriba:

var $h : Integer
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass")

El comando Form devuelve un objeto que es una instancia de la clase «Person». Puede comprobarlo en el formulario con el comando OB Instance of.

$n:=OB Instance of(Form; cs.Person)

Ahora, puede llamar a una función de la clase simplemente escribiendo: «Form.message()».

Ventajas para el editor de código

Función de autocompletado

El comando Form se beneficia del autocompletado en el editor de código. Escribiendo «Form.», 4D sugerirá todas las propiedades y funciones declaradas en la clase asociada. Se acabó invertir dos letras en el nombre de una propiedad o utilizar una minúscula en lugar de una mayúscula en el nombre de una función.

Por ejemplo, con nuestra simple clase «Person» definida de la siguiente manera:

property firstname : Text
property lastname : Text
property email : Text

Class constructor
This .firstname:=""
This .lastname:=""
This .email:=""

Function get fullname () : Text
return This .firstname+" "+This.lastname

Al utilizar el comando Form dentro de un método de formulario, el editor de código le ofrece una lista precisa para completar su código:

blank

VERIFICar sintaxis

Cuando utilice expresiones del tipo «Form.myProperty» en el método del formulario, o en los métodos de los objetos de formulario, se beneficiará del poder del verificador de sintaxis.

Tomemos el ejemplo de la clase anterior. En el código del método del formulario, nosotros:

  • forzamos un entero en un atributo de texto,
  • usamos un atributo desconocido,
  • asignamos un entero a un atributo calculado de tipo texto.

 

En la siguiente imagen, puede ver que el editor de código ha identificado eficazmente los errores o advertencias.

blank

Ventajas para el editor de formularios

VERIFICación de sintaxis integrada en la lista de propiedades

La verificación de sintaxis ya no se limita al editor de código. Esta funcionalidad se extiende a las expresiones de la lista de propiedades (como «Datasource» o «Meta info expression«). Como resultado, recibirá notificaciones inmediatas de errores y advertencias.

blank

No es necesario esperar a los resultados de la compilación para descubrir errores. Gracias a esta función, estará informado ya en la fase de edición.

Compilación

Por supuesto, si no ha resuelto los nuevos errores directamente, el compilador los detectará durante el proceso de compilación.

Diálogo del compilador

Todas las advertencias y errores se mostrarán en la ventana de compilación. Si hace doble clic en una expresión de objeto de formulario, se abrirá el formulario correspondiente, resaltando el objeto problemático y su propiedad en la lista de propiedades.

blank

Comando Compilar proyecto

En caso de fallo de compilación, el comando Compile project devuelve un objeto con advertencias y errores. El comando también se ha ampliado para devolver advertencias o errores detectados en las expresiones de objetos de formulario.

{
    "éxito":false
    "errores":[{
        "message": "Propiedad no declarada 'firstName' utilizada. (550.26)",
        "isError":false,
        "code":{
            "type": "formObjectExpression",
            "formName": "Persona",
            "objectName": "NombreDeEntrada",
            "propertyName": "fuenteDatos",
            "archivo":"[objeto Archivo]"
            }
        }]
}

Próximos pasos

Estas nuevas funciones harán que escribir código sea más fácil y eficiente.

No dude en compartir sus experiencias con estas mejoras. Sus comentarios son muy valiosos para ayudarnos a entender cómo le ayudan estas herramientas en su día a día, y para adaptarlas mejor a sus necesidades.

Vanessa Talbot
• Propietario de producto - Vanessa Talbot llegó al equipo de 4D Program en junio de 2014. Como Propietario de producto, está a cargo de escribir las historias de los usuarios y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Desde su llegada, ha trabajado en la definición de funcionalidades claves en 4D. Ha trabajado en la mayoría de las nuevas funcionalidades de multi hilo apropiativo y también en un tema muy complejo: la nueva arquitectura para la aplicación engined. Vanessa es licenciada por Telecom Saint-Etienne. Comenzó su carrera en el Instituto de Investigación Criminal como desarrolladora del departamento audiovisual. También ha trabajado en medios de comunicación y en el ámbito médico como experta en soporte técnico, producción y documentación de nuevas funcionalidades.