Etiqueta

22 octubre 2012

Nueva versión Omnis Studio 5.2.3

Según parece no podemos esperar mucho de ésta versión, ya que en realidad se trata de un trabajo de mantenimiento y por lo tanto no tiene grandes novedades aunque si una destacable.

Algunos de los problemas corregidos son:

  • Problema al utilizar Omnis Data Bridge, Omnis se volvía muy lento al cabo de unos días, debido a un consumo anormal de memoria.
  • El método $control no se activaba cuando el $event se ejecutaba en el cliente.
  • Problemas con STRINGTABLE cuando el "form" contenía un "Data grid" definido por el usuario ($userdefined = ktrue).
  • Problemas al cargar scripts desde un "subform" perteneciente a otra biblioteca.
  • Mal funcionamiento del selector de fecha según los diferentes husos horarios.
  • Error con Internet Explorer 8 en Windows XP.
  • Problemas con STRINGTABLE y Omnis App Server.
  • Ocasionalmente las listas de datos no se mostraban completas (sólo la primera columna)
Pero sin duda, lo que si es una novedad y (creo que largamente esperada) es que ahora es posible
la justificación de un texto en un informe a ambos márgenes, ésto se consigue mediante la asignación de "kJustifiedJst" a la propiedad "$align" del campo de texto.


Podréis descargar la nueva versión desde el siguiente enlace: Descargar

29 junio 2012

Nueva versión Omnis Studio 5.2.2


En la versión anterior la (5.2.1) vimos la incorporación de importantes novedades, como la inclusión del comando (ejecutable desde el lado del cliente) "JavaScrip:". Pero al mismo tiempo TigerLogic, ha seguido atento a las peticiones que les han ido llegando por parte de desarrolladores de todo el mundo, como consecuencia de ello, ya tenemos lista para su descarga una nueva versión 5.2.2, que soluciona varios de los problemas encontrados y en circunstancias muy concretas.

Si desea conocer con detalle los problemas solucionados pulse sobre éste enlace.

11 junio 2012

Sobre el nuevo comando JavaScript:


La versión 5.2.1 de Omnis Studio nos proporciona un nuevo comando denominado JavaScript: (incluyendo los dos puntos) que nos permite ejecutar cualquier código JavaScript sobre el navegador del cliente, incluyendo la ejecución de código JavaScript incrustado o vinculado a la página HTML que contiene el formulario desde donde se ha activado el "remote form".

Omnis no realiza ningún tipo de verificación sobre del código insertado, simplemente ejecutará el comando JavaScript:, por lo que cualquier error que contenga deberá ser tratado mediante la consola JavaScrip del propio navegador. Tampoco será posible incluir notaciones entre corchetes, ya que el código incluido en éstos, es evaluado en el servidor y antes de la ejecución del comando.

Un ejemplo sencillo sería mostrar un mensaje en el navegador mediante el método JavaScript "alert()", del siguiente modo:

javascript: alert("Hola Mundo");

Puesto que el comando ejecuta código JavaScript nativo, el método deberá ser ejecutado desde el lado del cliente, es decir debe ser un método Omnis definido para ser ejecutado sobre el cliente, de hecho, el comando JavaScript: sólo aparecerá sobre la lista de comandos del editor de métodos, si está habilitada la ejecución de métodos en el cliente. Omnis no permitirá que el comando JavaScript: pueda ser ejecutado sobre el servidor (se produciría un error).

A continuación, mostramos un ejemplo de como ejecutar código JavaScrip, que ha sido incrustado en la página HTML que contiene a su vez la llamada al "remote form" inicial.

Retomando el comando del ejemplo anterior "alert()", integraremos una función JavaScript en la página HTML, del modo siguiente:



Ahora ejecutaremos la función desde Omnis, usando el comando JavaScript del siguiente modo: JavaScript:

show_alert();

De éste modo podremos usar el comando JavaScript: para (por ejemplo) "provocar" eventos sobre Google Analytics y realizar el seguimiento de ciertas acciones o eventos de nuestra aplicación.

Para esto tendremos primero que agregar el código Web de Google Analytics proporcionado por Google en nuestra página HTML (que contiene la llamada al "remote form") y ejecutar la función gaq.push() desde Omnis. De éste modo podemos llegar a crear un controlador de eventos mediante el nuevo comando JavaScript:

Un modo de implementar ésta función sería mediante la creación de un método $init con las siguientes funciones:

JavaScript:
    document.getElementById ("jsTEMP1_1076_client").onselect=function(
    event) {__ form.callMethodEx ("selected", 0, event); };

JavaScript:
    window.addEventListener("keydown", function (event) {
    __form.callMethodEx ("keydown", 0, event)}, true);

Debemos tener en cuenta que ambos ejemplos hacen uso de "__form.callMethodEx" para ejecutar un método del "remote form" instanciado. El segundo parámetro (cero en nuestro ejemplo), es un "flag" o bandera que controla cómo debe ejecutarse "callMethodEx" y siempre deberá ser cero.

Podremos hacer uso del método $init para suministrar información adicional acerca de (por ejemplo) el estilo de los controles en el formulario. Por ejemplo:

Do $cinst.$objs.$sendall($cinst.$addboxshadow($ref))

"$addboxshadow" contiene el método del "remote form" pasado mediante el parámetro pObj.

El siguiente comando JavaScript:, agregará una sombra a la caja si el navegador lo soporta.

JavaScript: pObj.elem.style.boxShadow = "0px 0px 5px 5px # 888888";