Etiqueta

24 de junio de 2015

Como crear una row a partir de una clase "file"

Do miRow.$cols.$sendall(miRow.[$ref.$name].$assign(miClaseFile.[$sendallref.$name]))

17 de junio de 2015

Creación de códigos de barras en formato “Code 128”

El método que presentamos en éste artículo, requiere del uso de la fuente o tipo de letra “Code 128 Barcode” de IDAutomation. La generación de códigos de barras en formato ”Code 128” permite el uso de números, símbolos, y letras (mayúsculas o minúsculas) en el texto, pero tal flexibilidad hace que todas las fuentes para la generación de códigos de barras “Code 128” requieran un carácter de inicio, el carácter de suma de comprobación, y un carácter de parada, a fin de generar códigos de barras legibles, es decir que puedan ser leídos por cualquier lector con soporte “Code 128”.

Lo que deseamos mostrar en éste artículo, es un ejemplo sobre cómo realizar el cálculo para la composición de dicho código desde Omnis Studio. IDAutomation, dispone de otras fuentes o tipos de letra, más fáciles de usar, como el correspondiente al “Code  39”, que no requiere de sumas de comprobación u otros cálculos.

El código Omnis que mostramos a continuación ha sido escrito para el “Code 128” y la fuente de  IDAutomation de tipo C para Mac.


10 de junio de 2015

Como programar la impresión de rangos de páginas

Se debe tener en cuenta que (cuando no se especifican rangos de páginas) el administrador de impresión, construye previamente todas las páginas del informe, quedando temporalmente almacenadas en el disco. Sólo entonces son enviadas al dispositivo impresor. De hecho la ejecución del método “$ejectpage” no tiene efecto alguno hasta haber concluido los trabajos previos. Éste comportamiento es ligeramente diferente, cuando no se especifican rangos de páginas, en estos casos, el administrador de impresión expulsará las páginas tan pronto como se completan, excepto si la eyección automática está desactivada.

Algunos dispositivos (según el destino elegido para el informe) no soportan rangos de páginas. De hecho, (aparte de cualquier impresora) sólo los dispositivos de “pantalla” y ”vista previa” soportan actualmente rangos de páginas. Cómo siempre los rangos de páginas puede ser especificadas desde el diálogo de configuración del trabajo de impresión, pero en éste artículo lo que vamos a ver es, cómo hacerlo desde programación.

 

El componente “screen report field”


Éste componente contempla el método “$redirect”, el cual es usado para re-enviar el informe hacia otro dispositivo y la propiedad “$root.$prefs.$pages” puede ser utilizada para especificar el rango de páginas a enviar, a continuación mostramos un ejemplo:

Calculate $cdevice as kDevPrinter
Calculate $prefs.$pages as "20-1"
Do $cobj.$redirect(kFalse)
Calculate $prefs.$pages as ""

 

Rangos posibles


Los rangos de página que pueden ser especificados en “$root.$prefs.$pages” o en “$cinst.$pages”, si queremos que afecte sólo al informe en uso. Son los siguientes:
  • “1,3,5,2,4”
  • Imprimirá las páginas especificadas y en el orden en que se indican.
  • "1-10,30-35"
  • Imprimirá páginas de la 1 a la 10 y después las páginas de la 30 a la 35.
  • "O1-10, E1-10"
  • Imprimirá primero todas las páginas impares que se encuentren entre la 1 y la 10, después todas las páginas en el rango de 1 a 10.
  • "30-1"
  • Imprimirá las páginas de la 1 a la 30, pero en orden inverso.
  • "C"
  • Imprimirá la página en ese momento visible  (obviamente sólo utilizable junto con el método “$redirect” del componente “screen report field”).

Por supuesto podemos realizar cualesquiera combinaciones, basándonos en las reglas anteriores, si una página aparece más de una vez se imprimirá también más de una vez.