Introducción al control de Interfaz

Voy a intentar explicar aqui la potencia del control de Interfaz, partiendo del caso mas sencillo posible e intentando plasmar todo lo que se puede hacer.

Si lo queréis ver en accion , en el video de la 7.7 lo podeís ver pero el misterio no está en todo lo que se puede hacer, que eso es posible en cualquier herramienta, sino en la tremenda facilidad para hacerlo e implementarlo en aplicaciones ya realizadas.

Una pista : Hay que entender y asimilar muy pocas cosas, tan solo 2 conceptos. Las posibilidades casi infinitas de combinación con el resto de elementos de Velneo, hace que solo con su dominio hagamos fácil y rápido incluso lo dificil.

En Velneo tenemos distintos Objetos (formularios, rejillas, multivista, casillero ), elegiremos uno en concreto un Formulario y será por ejemplo de Clientes

En todos los objetos y en concreto en el elegido (formualrio de Clientes), podemos tener diversos controles , nos centraremos por ejemplo solo en dos (Campos edit con el nombre, telefono, etc) y un control objeto, que nos mostrará una rejilla de Facturas.

Como ya sabemos en Velneo un control objeto puede estar por ejemplo formado a su vez por un objeto rejilla y el proceso que lo alimenta con dos lineas de comando (Cargar Plural Facturas , añadir lista a la salida y poco más) que incluiremos en ese formulario de Clientes. Esto es lo que denominamos amalgamar objetos.

El proceso de ese control objeto se ejecuta al lanzar el formulario principal (Formualrio de CLientes) y nos muestra las facturas en la rejilla que tenemos incrustada . Lógico.

—————————-
Primera parte

    Para ver las posibilidades básicas del control de Interface , vamos a complicarlo de forma que esa rejilla nos muestre las facturas pagadas , las no pagadas o todas, a nuestra elección , pulsando un boton, rellenando un campo edit, o incluso desde un gráfico con botoneras ,como más nos guste.


    Para eso necesitamos una variable , que diga si queremos Todas, las pagadas o las no pagadas y que nuestro proceso sea del estilo del siguienteY logicamente el proceso variará , si queremos que haga eso , quedando algo así. ( me consta que puede hacerse de forma mas óptima pero por simplificar el ejemplo)


    Cargar Plural Facturas
    Si Todas =”S” no hacer nada
    Si Todas =”P” Filtrar las pagadas
    Si Todas = “N” Filtrar las No Pagadas
    Añadir lista a la salida

    ¿Y el valor de la variable?

    Lo normal, es que una vez abierto el formulario esta variable ya venga con un valor, pero además deberemos poder cambiar ese valor con cualquiera de sus posibilidades “P”, “N” o “T”

    Esto lo podemos hacer con un Set en un proceso, un evento, lanzado a partir de un boton, o simplemente un campo edit en el propio formulario, en el que el usuario escriba “P”, “N” o “T”. Esto es lo de menos.

    Lo importante es comprender que el proceso que alimenta la rejilla aunque habitualmente muy sencillos, pueden ser lo complicados que queramos, y en funcion de parametros, Variables o contenidos de la base de datos obtener una ficha, una lista y mostrarla en el objeto deseado ( En este caso una rejilla)

————————————
Segunda Parte

Cuando cambia cualquier parametro que interviene en ese proceso, por ejemplo el contenido de la variable, no implica que el proceso que alimenta el control que tienes en pantalla se ejecute, luego seguiras viendo lo mismo.

Para que se vuelva a ejecutar, deberemos realizar la instruccion RECALCULAR CONTROL, es decir volver a decir que se ejecute el proceso y se actulice la rejilla que lo compone.

¿Donde se hace esto? Recalcular Control, es un comando de Interfaz y este se puede incluir en cualquier evento.

Todos los objetos tienen eventos, Un formulario , una rejilla, etc son objetos y tienen eventos.

¿Cuándo se dispara este evento ? que hara que se recalcule el control, es decir vuelva a hacer el proceso y mostrar el resultado en la rejilla que hau embebida en nuestro formulario.

    Cuando le llegue una señal, es decir algo le diga que se ejecute el evento.

    Y la señales, dónde se definen, pues en las conexiones a eventos. Todos los objetos como formularios, rejillas tienen Conexiones a Eventos y por tanto pueden disparar señales.

Por tanto, en nuestro ejemplo sencillo, nuestro formulario, tendremos

  • Los controles edit de nombre, telefono ,etc
  • Un obejto control que es una rejilla con el proceso antes comentado
  • Un campo edit, en donde el usuario pondrá “P” ,”N” o “T”,
  • Un evento definido en el formulario que sea Actualiza Facturas y que contendra un comando Recalcular Control
  • Una conexión a evento que ante la la perdida de foco del campo edit lance el evento Actualizar Facturas.

Esto es poco elegante, vosotros mismos podeis cambiar el campo edit por botones que cambien el valor y cuyo texto o icono sean pagadas, todas, pendientes o incluso incrustar un Svg.

Pero además no es nada, es lo más sencillo que podemos resolver, veamos todas las posibilidades

En Detalle, para ver la potencia

En una conexion de evento podemos entre otras muchas definir 3 cosas.

  • El control que dispara la señal
    • puede ser cualquiera del objeto en el que estamos:un campo edit, un calendario, un boton etc
    • o de cualquier objeto que tengamos incluido en este, y asi sucesivamente hasta el infinito
    • Por ejemplo, una celda de una rejilla que esta embebida en un formulario, que esta embebida en un Casillero del fdormulario principal donde estamos.

      ¿Será dificil seleccionar el control?

        No hay que preocuparse, Velneo es asistido y visual. Seleccionarlo es facil ya que , se nos abre un desplegable en donde tenemos todos los controles que tiene un objeto, como el formulario del ejemplo y en cascada nos abre todos los objetos contenidos en el , otros Objetos como por ejemplo otro formulario y todos sus controles y asi sucesivamente.


  • La señal que dispara el evento

    Si es un boton, sera boton pulsado, si es un campo o cualqueir cosa sera pierde foco, gana foco, pero tambien puede ser tecla pulsada, ventana movida, movimiento de raton y un largo etcetera

  • Y finalmente el evento que se dispara,
      En el cual lo mas habitual sera una instrucción del tipo recalula control, oculta control, etc, pero el evento es un contenedor de comandos y puede incluir cualquier proceso mucho mas complicado. Aqui tienes los que mñas nos interesan en esta ocasión, los comandos de Interfaz

Importante y a tener en cuenta :

    El Evento siempre estará en el mismo objeto, en este caso formulario de clientes, en que disparamos la señal, pero ese evento puede tener la instruccion recalcular control y en la intoducción de ese parametro podemos también seleccionar un control que este en cualquiera de los objetos embebidos, mucho más abajo, por ejemplo en un rejilla contenida en un formulario que a su vez esta incluida en el formulario en el que estamos



    Seleccionar el control sigue siendo fácil : Al introducir este parametro aparecera un desplegable similar con todos los controles que puedo recalcular, ocultar, etc dependiendo del comando elegido de los objetos que tenga embebidos

Pero hay más
Por no complicarlo he omitido que también tendremos control sobre los controles y objetos que cuelgan del marco de nuestra aplicación.

Imaginemos que en el marco tenemos ejercicio o empresa, esto nos premitira que en cualquier sistio que estemos de una aplicacion de gestion, variando en el marco la empresa o el ejercicio nos variarán lso datos mostrados.

Links para profundizar y practicar

Anuncios

Acerca de Miguel Pérez Oliver
Un abuelo en esto del negocio del software, habiendo recorrido en estos 30 años de todo : Programador, analista, consultor, implantador y ahora en el lado oscuro. Coordinador del departamento comercial en Velneo y viajero.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: