Uniface 9.6

¿Tienes algo que contar? ¿Has visto algo interesante? ¿Vendes algún producto?
Post Reply
luis.vila
Posts: 194
Joined: 17 Sep 2011, 12:46

Uniface 9.6

Post by luis.vila »

Ya ha salido la tan esperada versión 9.6 de Uniface. La acabo de instalar y estoy leyendo las novedades (y probándolas). Entre ellas:
Cliente Servidor
  • Popup Forms. En principio, es descrito como un super tooltip donde mostrar más información relacionada con un campo. Un form sin borders y que puede posicionarse a partir de un campo (position=BOTTOMRIGHT_DOWNLEFT, en la esquina inferior derecha del campo, muestra el form hacia abajo y a la izquierda(o que coincida la esquina "bottom right" del campo con la "top right" del form))
  • El ansiado Form Container, que permite incrustar forms dentro de forms fácilmente (sin hacer complicarse con opciones overlaped, posicionamiento, etc).
  • Widget HTML, que renderiza el texto HTML introducido en el campo o la URL a la que hace referencia.
  • Widget TabEx, nuevo tab con esteroides (sigue existiendo el antiguo tab). Permite perder una infinidad de tiempo en los tabs incluyendo imágenes, orientaciones, colores, color al ser pulsado, gradientes, etc)
  • Widget Command Button, por decirlo de alguna manera, la ventana de las propiedades del widget tiene 775pixels de alto. Colores e imágenes al ser pulsado, al tener focus, al pasar por encima. Con o sin gradiente.
  • Menús. Nuevas propiedades para definir su color, gradiente, imagen de fondo de opción seleccionada o del sidebar.
    menu.png
    menu.png (5.28 KiB) Viewed 5628 times
  • Paneles mejorados. También mejoran en la gestión del color. Hasta me planteo darles una nueva oportunidad.
  • Gestión de imágenes. Son utilizadas en multitud de widgets y se permite cambiarles el tamaño mediante una propiedad en código. Además, los labels pueden ser aliniados fácilmente ($fieldproperties(TABEX) = "imagelabelalign=right").
  • PNG transparentes.
  • Colores heredados. Elementos en pantalla pueden heredar automáticamente los colores (tinta, fondo) de la entidad o el form en el que están incluidos.
Web
  • Scope dinámico. Permite enviar datos solamente de los DSP que hayan variado.
  • Paginación (disponible para Oracle, MySQL, Solid y Microsoft SQL Server). A través de read offset. Para leer la segunda página (de 10), basta read offset 10 (se salta la lectura de los 10 primeros, y te devuelve la ocurrencia número 11).
  • $occproperties. Cambiar dinámicamente las propiedades de una ocurrencia (putitem/id $occproperties("<$entname>"), "class:modifed", "true")
  • Tomcat, preconfigurado con el SecurityManager activado.
  • Web Services mejorados. Al importar ws, Uniface definía los parámetros complejos como string, entendiendo que es un XML que será tratado posteriormente. Ahora permite analizar esos parámetros para: generar un XML de ejemplo o crear entidades que se adecúen a la especificación del XSD.
Otros
  • Nuevos drivers para Oracle, MySQL, Solid y Microsoft SQL Server.
  • Windows 64bits soportado de forma nativa
  • Mejor uso de la memoria en Windows. Útil únicamente en aplicaciones que se quedan sin memoria y en los que aparece el error "Cannot claim more memory". La mejora consiste en la posibilidad de aumentar los límites de memoria dedicados a Uniface.

$status=0 ; se acabaron los problemas
_Rafa_
Posts: 30
Joined: 19 Sep 2011, 23:02

Re: Uniface 9.6

Post by _Rafa_ »

Tiene buena pinta, unas preguntillas sobre el form container,
¿sabes si los forms que hay dentro del form container se recargan independientemente?
¿y si la comunicación entre dos forms que haya dentro de un container es fácil?


Un saludo.
Rafa.
luis.vila
Posts: 194
Joined: 17 Sep 2011, 12:46

Re: Uniface 9.6

Post by luis.vila »

Yo llevo, creo que desde la 7, haciendo eso mismo a mano. Reservas un espacio del form padre para incrustar otro (overlaped). El FormContainer lo simplifica (es como hacer un tab, CAMPO = FORM).

Es idéntico a tener varios forms no-modales, la diferencia es que están dentro de un form padre. La única dependencia es que los hijos son attached.

La comunicación entre los forms es la madre del cordero. Todo se debe hacer con postmessage (y activates a operaciones). Por ejemplo, al pulsar sobre el botón grabar del padre, enviar un mensaje a todos los hijos para que se graben. Si no lo piensas antes, la puedes liar.

Un ejemplo típico que uso bastante: la estructura código postal, ciudad, provincia, país. Está definida una vez y se utiliza en varios forms. El form en sí, nunca graba ni lee, solamente envía y recibe mensajes de su padre, que es el encargado de la interacción con la base de datos.

Tengo un tutorial a medias, aunque si alguien se anima...
Actualización Tutorial FormContainer

$status=0 ; se acabaron los problemas
Post Reply