Etiqueta

05 febrero 2014

De No-Unicode a Unicode (Parte 1 de 10)

De No-Unicode a Unicode


Con la publicación de Omnis Studio 4.3.x se anunciaron las modalidades Unicode y No-Unicode, de ese modo se dejaba a decisión del desarrollador cual de ellas usar.

La razón era muy clara, es necesario que Omnis de soporte a las diferentes grafías y tipologías de caracteres que encontramos en los diferentes idiomas y no solamente en el inglés, además se hacía necesario ampliar la gama soportada existente, una vez que Omnis se decantaba por un mayor apoyo al desarrollo de aplicaciones móviles e Internet.

En ésta serie de 15 partes, trataremos todos los detalles implicados en el salto de un desarrollador de aplicaciones Omnis de No-Unicode a Unicode. No hay porqué abordar éste tema con recelo, pues los cambios necesarios son pocos y las ventajas muchas, de hecho lo necesitamos si queremos abrir nuestras aplicaciones a nuevos mercados.

¿Qué es Unicode?


Según el Consorcio Unicode (www.unicode.org), que mantiene el estándar Unicode:

“Unicode proporciona un número identificador único para cada carácter, con independencia de la plataforma, la aplicación, o el idioma".

Puede obtener más información en: http://www.unicode.org/standard/WhatIsUnicode.html

Por lo tanto, podemos afirmar que es de obligado cumplimiento que sus aplicaciones, proporcionen soporte para el formato de datos Unicode, de lo contrario perderá terreno frente a sus competidores, mientras que de otro modo podrá conseguir nuevos clientes de entre los nuevos mercados emergentes.

El Consorcio Unicode proporciona información y recursos en relación con Unicode, tales como su definición estandarizada, mantenimiento de sus tablas de códigos y un extenso repositorio de productos Unicode.

De hecho las versiones actuales de Omnis Studio se suministran sólo en versión Unicode, conservando (eso si) todas las funciones de conversión necesarias para el paso de No-Unicode a Unicode, además de la visualización de cadenas de texto y datos de caracteres con soporte para varios idiomas y entornos de ejecución.

El uso de la codificación Unicode afecta principalmente al tratamiento de datos dinámicos, como (por ejemplo) en listas, o en la consulta y recuperación de datos desde un servidor de base de datos.

Signa atentos a las diferentes entregas de está serie de tutoriales, les recomiendo que se suscriban al canal del blog para no perderse ninguna de ellas.

Reciban un cordial saludo.

12 diciembre 2013

Curso On-Line Omnis-SQLite

Objetivos

  • Formación en SQLite y Omnis SQL
  • Construcción de una utilidad para la conversión automática de un DF1 (Base de datos nativa Omnis) a SQLite

Características

  • No presencial
  • 20 horas de formación
  • Sábados de 10 a 12, hora de España, del 11 de Enero al 15 de Marzo

Requisitos

  • Ordenador con conexión a Internet
  • Omnis Studio Developer
  • SQLite
  • Abono de la matrícula

Inscripción

  • Abono íntegro de la matrícula desde el siguiente enlace:



09 octubre 2013

Programación de listas

La variable de tipo "list" es sin duda, la que adquiere mayor relevancia y versatilidad en la programación con Omnis Studio, de hecho, resulta imprescindible a la hora de construir aplicaciones para la web y dispositivos móviles. Una variable “list” puede suministrar los datos (contenido) y el formato para muchos de los componentes visuales JavaScript que contendrán sus aplicaciones, tales como: “droplists”, “menus”, “data grids”, “complex grids”, y “tree lists”.

Una variable “list” puede ser definida en base a una “clase de datos SQL” (schema, query, o table). En ese caso, la lista obtiene la definición de cada columna según fueron creadas en la propia clase SQL. Cada “list” puede contener un número ilimitado de líneas y un máximo de 32.000 columnas, claro está, si la capacidad de memoria del dispositivo lo permite.

Omnis Studio proporciona los métodos necesarios para crear, definir y modificar variables “list” y que vamos a repasar brevemente a continuación. Le sugiero que consulten el manual en español, para obtener más información sobre el uso de variables “lis" (http://framosmu.blogspot.com.es/2010/03/manual-de-programacion-omnis-studio-en.html).

 

Crear una lista

 

En primer lugar será necesario crear la variable “list” y definir sus columnas. Con éste propósito podemos optar por el método $define, pero también podemos hacer uso del método $add del grupo de métodos $cols, veamos ambos casos:

Do myList.$define(var1,var2,var3) ;; myList y var’s deben ser declarados

o


Do myList.$cols.$add('myFieldName',kCharacter,kSimpleChar,255)
Do myList.$cols.$add('anotherColumn',kInteger,kLongInt)
Do myList.$cols.$add('yetAnotherColumn',kBoolean)


En este ejemplo, se crea una “list” con tres columnas. Los parámetros del método $add describen el nombre, tipo, subtipo y longitud de cada columna. Sin embargo y dependiendo del tipo de columna, no todos estos parámetros serán necesarios.

Añadir datos a una lista

 

En segundo lugar, añadiremos algunos datos. Usaremos el método $add con algunos valores pasados directamente como parámetros y también lo usaremos para crear una línea vacía:

Do myList.$add('Pepe', 27, kTrue) ;; Añade una línea con los valores suministrados
Do myList.$add() ;; Agrega una línea vacía


También podemos añadir el contenido de una variable de tipo “row” a la lista. Para ello, podemos hacer uso del método $add, en éste caso el método $add le pasa una referencia a la variable “row”:

Do myList.$add().$assignrow(myRow,kTrue)

Note que los métodos de los que podemos hacer uso detrás de $add, deben ser usados con la sintaxis descrita al añadir una línea vacía “$add()”. Esto causa que la función $add devuelva una referencia a la función $assignrow, para que ésta pueda agregar los valores de myRow. El segundo parámetro determina si se usaran los nombres de las columnas o su orden, para emparejar los datos. También se podría hacer uso de los métodos $addafter y $addbefore para agregar los datos antes o después de una determinada columna.

Eliminar líneas de una lista

 

Es posible que en ocasiones también debamos eliminar algunas líneas de la lista. La manera más fácil de hacer esto es utilizando el método $remove. Por ejemplo, si quisiéramos eliminar la línea actual de la lista usaríamos lo siguiente:

Do myList.$remove(myList.$line())

Si quisiéramos eliminar todas las líneas la lista, que cumplan una determinada condición, tendremos que hacer uso en primer lugar de la función $search:

Do myList.$search($ref.miNombreCampo='Pepe', kTrue)

Mediante éste método se seleccionaran todas las filas que contengan el valor 'Pepe' en la columna 'miNombreCampo'. Después las eliminaremos del siguiente modo:

Do myList.$remove(kListDeleteSelected)

También podríamos hacer uso de la constante kListKeepSelected para causar la eliminación de todas las líneas no seleccionados.

Copiar y fusionar una lista

 

A veces es posible que queramos fusionar listas, o copiar los contenidos de una lista sobre otra, para esto último podemos hacer lo siguiente…

Calculate NuevaLista as ViejaLista

…pero, si lo que queremos es copiar la definición de una lista sobre otra usaremos el método $copydefinition:

Do NuevaLista.$copydefinition(ViejaLista)

Este método creará una lista vacía con la definición de la lista inicial. Finalmente, si lo que queremos es agregar  o fusionar, los datos de una lista sobre otra, debemos usar el método $merge:

Do NuevaLista.$merge(ViejaLista,kTrue)

En este caso se añadirán los datos de ViejaLista a NuevaLista. El segundo parámetro determina si queremos hacer la correspondencia de datos usando los nombres de las columnas o bien su orden.

Eliminar listas

 

Si lo que pretendemos es eliminar el contenido de una variable de tipo “list”, podemos hacer uso del método $clear:

Do myList.$clear()

Si también quisiéramos eliminar la definición de sus columnas, podríamos usar $define pero sin pasarle parámetro alguno:

Do myList.$define()

Nota:
Esto es sólo un pequeño ejemplo de cómo hacer uso de las variables de tipo “list”, éste artículo ha sido primero publicado en ingles por Andreas Pfeiffer. Puede obtener más información en español sobre la programación con Omnis Studio en Aula Omnis.