Comandos de Sistema

Contenido

Configurar impresora lógica

Ejecutar comando de sistema

Ejecutar documento

Emitir sonido

Get estado de la memoria física

Get información pantalla

Informe personalizable: editar informe

Lanzar aplicación

Limpiar configuración de impresora lógica

Portapapeles: get imagen

Portapapeles: get texto

Portapapeles: limpiar

Portapapeles: set imagen

Portapapeles: set texto

Reproducir sonido

Salir de la aplicación

Comandos de sistema

Conjunto de comandos de instrucción de proceso de sistema.

Configurar impresora lógica

Comando de instrucción del grupo sistema que permite configurar propiedades de una impresora lógica antes de imprimir el informe.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de impresora lógica

Desplegable que mostrará toda la lista de impresoras lógicas disponibles. Seleccionar la impresora lógica que se desea configurar.

Propiedades de la impresora

Desplegable que mostrará todas las propiedades disponibles. Seleccionar la propiedad a configurar. Las propiedades disponibles son:

Dúplex

Permite configurar si se hará impresión dúplex (1) o no (0).

Intercalar copias

Cuando se imprimen dos o más copias de un informe, permite configurar si queremos activar la propiedad de intercalar copias (1) o no (0) del driver de la impresora.

Si vale 1, las páginas serán impresas del modo siguiente: 1-2-3, 1-2-3, 1-2-3...

Si vale 0, las páginas serán impresas del modo siguiente: 1-1-1, 2-2-2, 3-3-3...

Modo de color

Permite configurar si queremos que el informe sea impreso en escala de grises (0) o en color (1).

Nombre del documento

Nos permite establecer una cadena con el nombre que queremos que se muestre en la cola de la impresora.

Ejemplo: "Factura nº " + #ID

Nombre del fichero

Para salidas a fichero. Nos permite especificar el nombre que tendrá el fichero a generar.

Ejemplo: "factura_" + #ID + ".pdf"

Nombre de la impresora

Nos permite especificar una cadena con el nombre de la impresora por la que queremos imprimir el informe.

Esto nos permitirá, en un momento dado, imprimir un informe por una impresora distinta a la asociada a su impresora lógica.

Ejemplo: "Generic/ Text Only"

Número de copias

Nos permite especificar el nº de copias que queremos imprimir del informe. Ha de ser un número entero.

Ejemplo: 3

NOTA: en algunos sistemas con X11 no es funcional está propiedad.

Origen del papel

Nos permite configurar el origen del papel. Debemos especificar un número entero con el código de la bandeja de origen del papel.

Los valores posibles son:

Origen

Código

OnlyOne

0

Lower

1

Middle

2

Manual

3

Envelope

4

EnvelopeManual

5

Auto

6

Tractor

7

SmallFormat

8

LargeFormat

9

LargeCapacity

10

Cassette

11

FormSource

12

CustomSource

14

Ejemplo: 1

Fórmula de dato

En este parámetro escribiremos la fórmula que se corresponda con la propiedad de impresora que se haya seleccionado en el parámetro anterior.

Funcionalidad

Este comando de instrucción de proceso permite configurar una propiedad de una impresora lógica. Esta propiedad será aplicada a la impresora física asociada al imprimir el informe.

Comentarios

Debemos incluir este comando por cada propiedad que queramos configurar.

Si en el momento de configurar la impresora lógica por proceso ésta no está asignada a ninguna impresora física, se mostrará el cuadro de diálogo de selección de impresora del sistema operativo para que la seleccionemos y ésta quedará asignada a la impresora lógica de forma permanente.

Ejemplos

1) Configurar el nº de copias de una impresora lógica e imprimir un informe asociado a la misma:

Imprimir informe ( MAE@Informes e impresoras logicas app, )

2) Configurar varios parámetros de la impresora lógica e imprimir un informe asociado a la misma:

Configurar impresora lógica ( IMP@verp app, Origen del papel: Entero con el código del origen del papel. , 1 )
Configurar impresora lógica ( IMP@verp app, Duplex: 0 (Falso) ó 1 (Verdadero), 1 )
Cargar lista ( MAESTROS@Informes e impresoras logicas dat, ID, , , , )
Imprimir informe ( MAE@Informes e impresoras logicas app, )

Ejecutar comando del sistema

Comando de instrucción del grupo sistema que permite ejecutar un comando del sistema operativo.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de comando

Expresión de tipo fórmula con el comando del sistema operativo a ejecutar.

Identificador de la variable local numérica de retorno

Variable local del proceso de tipo numérico donde se recogerá el retorno del comando ejecutado. Si el comando no retorna ningún valor la variable contendrá un 0.

Funcionalidad

Ejecuta el comando del sistema operativo especificado en el primer parámetro y si éste devuelve algún valor, lo atrapa en la variable local numérica de retorno.

Comentarios

La variable local podrá ser cualquiera de tipo numérico ya declarada en el proceso o podremos declarar una nueva.

Ejemplo

Ejecutamos el fichero por lotes fichero.bat para que se ejecuten las instrucciones que este contiene.

Ejecutar comando del sistema ( "c:/fichero.bat",  )

Ejecutar documento

Comando de instrucción del grupo sistema que permite ejecutar el documento o la url indicada en sus parámetros. El documento o la URL será abierto en la aplicación que esté asociada a ese tipo de documento en el sistema operativo.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de senda

Expresión de tipo fórmula con la senda del archivo a ejecutar. La senda del documento deberá ir precedida del esquema file: y si se trata de una url, del esquema http o https.

Identificador de variable local booleana de retorno de ok

Variable local.

Funcionalidad

Este comando permite ejecutar el documento indicado en sus parámetros. Dicho documento será abierto en la aplicación que esté asociada a ese tipo de documento en el sistema operativo. Retornará un 1 si el fichero ha sido ejecutado y 0 si no.

Comentarios

Para la especificación de la senda del documento podremos hacer uso del asistente para edición de fórmulas, separando cada parte de la misma por el carácter “/”. Ejemplo: “file:///c:/documentos/file.txt”.

Si necesitamos crear sendas relativas y no absolutas, podremos hacer uso de las funciones estándar.

Si es el usuario quien deba indicar el fichero a ejecutar, podremos facilitarle esta tarea mediante el uso del comando de instrucción de proceso Ventana de selección de fichero.

Este comando de instrucción de proceso no es funcional en tercer plano. En el caso de tener esta necesidad, hemos de sustituirlo por el comando de instrucción ejecutar comando del sistema indicando como parámetro el ejecutable y el fichero que ha de abrir.

La especificación de las sendas de disco han de seguir el esquema de fichero URI:

Para ficheros locales será:

file:///c:/path/file.txt

Para ubicaciones de red será:

file://nombrehost/path/file.txt

Esto es así porque para un fichero local se omite el nombre del host, pero no la barra oblicua (/):

file://nombrehost/c:/path/file.txt = file:///c:/path/file.txt

Ejemplo

Ejecutamos el documento de la caché del cliente que hemos adjuntado como objeto fichero adjunto en la solución.

Ejecutar documento ( "file:///"+sysCacheClientPath +"API Rest en tu aplicación.pdf",  )

Emitir sonido

Comando de instrucción del grupo Sistema que emite un pitido con el altavoz del sistema.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

No tiene.

Funcionalidad

Emite un pitido con el altavoz del sistema.

Nota

Este comando de instrucción de proceso no es funcional en Android.

Ejemplo

Si el usuario es administrador emitimos un sonido

If ( sysIsAdministrator )
    Emitir sonido

Get estado de la memoria física

Comando de instrucción del grupo Sistema que permite conocer el estado de la memoria física del ordenador donde sea ejecutado el proceso.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de variable local numérica de retorno del porcentaje de memoria ocupado

Declaración de una variable local donde retornará qué porcentaje de la memoria física está siendo utilizado.

Identificador de variable local numérica de retorno de bytes de memoria total

Declaración de una variable local donde retornará el número total de bytes de la memoria física.

Identificador de variable local numérica de retorno de bytes de memoria libre

Declaración de una variable local donde retornará el número total de bytes libres de la memoria física.

Funcionalidad

Permite conocer el estado de la memoria física del ordenador donde sea ejecutado el proceso.

Comentarios

Si el proceso es ejecutado en primer o segundo plano, la máquina sobre la que se ejecute será la estación cliente, si el proceso es ejecutado en tercer o cuarto plano, la máquina sobre la que se ejecute será el servidor.

Ejemplo

Guardamos en la variable local PORC_MEN_OCUPADO el porcentaje de memoria ocupado , la memoria total en MEM_BYTES_TOTAL y la memoria libre en MEM_BYTES_LIBRES

Get estado de la memoria física del sistema ( PORC_MEM_OCUPADO, MEM_BYTES_TOTAL, MEM_BYTES_LIBRES )

Get información pantalla

Comando de instrucción del grupo Sistema que nos devuelve información sobre la pantalla en la que se esté ejecutando la aplicación.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de la variable local numérica de retorno de ratio

Identificador de una variable local:

Si retorna un 1 querrá decir que se trata de un dispositivo con resolución estándar si retorna un valor igual o mayor que 2 quiere decir que se trata de un dispositivo con resolución HighDpi.

Identificador de la variable local numérica de retorno de ancho (Opcional)

Identificador de una variable local de tipo numérico donde se retornará el ancho de la pantalla donde está siendo ejecutada la solución.

Identificador de la variable local numérica de retorno de alto (Opcional)

Identificador de una variable local de tipo numérico donde se retornará el alto de la pantalla donde está siendo ejecutada la solución.

Funcionalidad

Este comando de instrucción de proceso nos devuelve información sobre la pantalla en la que se esté ejecutando la aplicación.

Ejemplo

Obtenemos el RATIO, el ANCHO y el ALTO de la pantalla mostrando sus valores diferenciando entre resolución estándar y resolución HighDpi.

Get información pantalla ( RATIO, ANCHO, ALTO )
If ( RATIO = 1 )
    Mensaje ( "Dispositivo con resolución estándar con ancho " + ANCHO + " y alto " +ALTO, Información, ,  )
If ( RATIO > 1 )
    Mensaje ( "Dispositivo con resolución HighDpi con ancho " + ANCHO + " y alto " +ALTO, Información, ,  )

Informe personalizable: editar informe

Comando de instrucción del grupo Sistema que permite editar la configuración de un informe personalizable. Un informe personalizable es un archivo con formato XML generado con nuestro editor de informes personalizables y que puede ser editado en tiempo de ejecución.

Origen de la instrucción: ninguno.

Destino del subproceso: ninguno.

Parámetros

Fórmula de senda

En este parámetro indicaremos la senda del archivo XML a editar.

Funcionalidad

Este comando de instrucción permite editar la configuración de un informe personalizable.

Ejemplo

Editamos el informe que tenemos asignado en la variable local INF_XML.

Set ( INF_XML, “C:/INF_TMP.XML" )
Informe personalizable: editar informe ( INF_XML )

Lanzar aplicación

Comando de instrucción del grupo Sistema que permite la ejecución de una aplicación externa.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Modo de lanzar aplicación

Tiene dos valores posibles:

Esperar

Se ejecutará la aplicación especificada y el usuario no podrá volver a la aplicación Velneo hasta que no la haya cerrado.

No esperes

El usuario podrá trabajar con la aplicación Velneo y con la aplicación lanzada al mismo tiempo.

Fórmula de comando

Expresión de tipo fórmula con la senda de la aplicación a ejecutar.

Fórmula de parámetros (Opcional)

Expresión de tipo fórmula con la lista de parámetros de la aplicación, por ejemplo, la senda de un archivo que se desee abrir con la aplicación.

Identificador de la variable local numérica de retorno

Variable local del proceso, de tipo numérico, donde se atrapará el retorno de la aplicación. Si la aplicación no ha sido ejecutada, retornará un 0.

Funcionalidad

Ejecuta la aplicación pasada en sus parámetros.

Comentarios

La variable local numérica de retorno podremos usar tanto una ya declarada con anterioridad como declarar una nueva. si el sistema operativo es Windows y hay espacios en blanco en la senda, será necesario entrecomillarla, para ello podemos usar la secuencia de escape \c. Ejemplo:

"\c" + SENDA + "\c", donde SENDA es la variable local que contiene la senda de la aplicación a ejecutar.

Ejemplo

Lanzamos el programa testing.exe y al cerrar la ejecución del mismo retornamos a Velneo.

Lanzar aplicación ( Esperar, "C:/testing.exe", , OK )

Limpiar configuración de impresora lógica

Comando de instrucción del grupo sistema que permite limpiar la configuración de una impresora lógica.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de impresora lógica

Seleccionaremos la impresora lógica cuya configuración queremos limpiar.

Funcionalidad

Este comando de instrucción permite limpiar la configuración de una impresora lógica. Es decir, borra la asignación a la impresora física que tuviese asociada y toda la configuración que se haya hecho con el comando de instrucción de proceso configurar impresora lógica.

Comentarios

Es para uso exclusivo en Velneo vClient. El deshacer la asignación de la impresora tiene efecto permanente, es decir, modifica en archivo en disco donde se guarda la configuración de impresoras lógicas dejando la impresoras lógica sin asignar a una física.

Ejemplo

Limpiar configuración de impresora lógica ( FACTURAS@vERP2 app )

Portapapeles: get imagen

Comando de instrucción del grupo Sistema que permite guardar en un campo de tipo objeto dibujo una imagen copiada en el portapapeles del sistema.

Origen de la instrucción: ficha de la tabla en curso.

Destino del subproceso: ninguno.

Parámetros

Identificador del campo objeto dibujo

Debemos especificar el campo objeto dibujo de la ficha en curso donde queremos pegar la imagen del portapapeles.

Funcionalidad

Guarda en el campo objeto dibujo indicado en sus parámetros una imagen copiada previamente en el portapapeles. Usa el portapapeles.

Comentarios

Es para uso exclusivo en el vClient.

No es funcional en Android e iOS.

Ejemplo

El usuario ha copiado una imagen en el portapapeles y, en un manejador de evento de un formulario, queremos guardarla en un campo de tipo objeto dibujo de la tabla asociada:

Portapapeles: Get Imagen ( FOTO )

Portapapeles: get texto

Comando de instrucción del grupo Sistema que permite guardar en una variable local del proceso un texto copiado en el portapapeles del sistema.

Origen de la instrucción: ninguno.

Destino del subproceso: ninguno.

Parámetros

Identificador de variable local alfabética de retorno

Debemos especificar una variable local donde almacenar el texto copiado en el portapapeles.

Tipo MIME (opcional)

Está pensado para diferenciar de cuando se trata de un texto plano ("text/plain") o de un texto html ("text/html"), por ejemplo. Si lo dejamos vacío, el texto obtenido del portapapeles será tomado como texto plano ("text/plain").

Funcionalidad

Guarda en una variable local del proceso un texto que ha sido copiado previamente en el portapapeles del sistema. Al usar el portapapeles del sistema, podremos pegar un texto copiado desde otra aplicación.

Comentarios

Es para uso exclusivo en el vClient.

Ejemplo

Se ha copiado en el portapapeles un texto y, en un manejador de evento de un formulario de una tabla, lo pegamos en el campo NAME:

Portapapeles: Get texto ( PORTAPAPELES_TXT )
Modificar campo ( NAME, PORTAPAPELES_TXT )

Portapapeles: limpiar

Comando de instrucción del grupo Sistema que permite limpiar el contenido del portapapeles del sistema.

Origen de la instrucción: ninguno.

Destino del subproceso: ninguno.

Parámetros

No tiene.

Funcionalidad

Limpia el contenido del portapapeles.

Comentarios

Es para uso exclusivo en el vClient.

Ejemplo

Limpiamos el contenido del portapapeles:

Portapapeles: Limpiar

Portapapeles: set imagen

Comando de instrucción del grupo Sistema que permite guardar en el portapapeles del sistema el contenido de un campo de tipo objeto dibujo.

Origen de la instrucción: ficha de la tabla en curso.

Destino del subproceso: ninguno.

Parámetros

Identificador del campo objeto dibujo

Debemos especificar el campo objeto dibujo de la ficha en curso donde queremos pegar la imagen del portapapeles.

Funcionalidad

Guarda en el portapapeles el contenido del campo de tipo objeto dibujo indicado en sus parámetros. Al usar el portapapeles del sistema, podremos pegar la imagen copiada en otra aplicación.

Comentarios

Es para uso exclusivo en el vClient.

El contenido que tenía el portapapeles será reemplazado por la imagen copiada.

No es funcional en Android e iOS.

Ejemplo

En proceso con origen ficha de una tabla queremos copiar en el portapapeles el contenido del campo objeto dibujo llamado FOTO:

Portapapeles: Set Imagen ( FOTO )

Portapapeles: set texto

Comando de instrucción del grupo Sistema que permite guardar en el portapapeles del sistema un texto.

Origen de la instrucción: ninguno.

Destino del subproceso: ninguno.

Parámetros

Fórmula de texto

Expresión de tipo fórmula donde compondremos la fórmula de texto a copiar en el portapapeles.

Tipo MIME (opcional)

Está pensado para diferenciar de cuando se trata de un texto plano ("text/plain") o de un texto html ("text/html"), por ejemplo. Si lo dejamos vacío, el texto a copiar en el portapapeles será tomado como texto plano ("text/plain").

Funcionalidad

Guarda en el portapapeles el texto que establezcamos en sus parámetros. Al usar el portapapeles del sistema, podremos pegar el texto copiado en cualquier otra aplicación.

Comentarios

Es para uso exclusivo en el vClient.

El contenido que tenía el portapapeles será reemplazado por el texto copiado.

Ejemplo

En un formulario de un cliente queremos guardar en el portapapeles un texto que contenga el nombre del cliente y su NIF:

Portapapeles: Set texto ( #NAME + "-" + #NIF )

Reproducir sonido

Comando de instrucción del grupo Sistema que reproduce ficheros de sonido con extensión WAV.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de senda

Expresión de tipo fórmula con la senda del archivo a ejecutar.

Funcionalidad

Reproduce ficheros de sonido con extensión WAV especificado en su parámetro.

Comentarios

Para facilitar la especificación de la fórmula podremos hacer uso del asistente para edición de fórmulas.

Si se desea solicitar al usuario el archivo a reproducir, podremos hacer uso del comando Ventana de selección de fichero.

Si en la fórmula se va escribir una senda, se usará el carácter “/” para separar los distintos niveles de la misma. Ejemplo:

"c:/archivos de programa/archivo.wav"

Ejemplo

En el caso de que no existan registros en la tabla PERS_M se reproduce el sonido del fichero alerta.wav.

Cargar lista ( PERS_M@ejemplo, ID, , , ,  )
    If ( ! sysListSize )
        Reproducir sonido ( "c:/archivos/alerta.wav" )

Salir de la aplicación

Comando de instrucción del grupo Sistema que permite cerrar la aplicación en curso.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula valor de retorno de la aplicación (Opcional)

En este parámetro podemos establecer, mediante una fórmula, un valor de retorno. Para su especificación podremos hacer uso del asistente para edición de fórmulas.

Funcionalidad

Este comando de instrucción de proceso permite cerrar la aplicación en curso y retornar un valor.

Comentarios

El retornar un valor nos será de utilidad cuando la aplicación sea llamada desde otra mediante el comando de instrucción Lanzar aplicación. Supongamos que en el proceso donde cerramos aplicación evaluamos una serie de condiciones y, en función de las mismas, vamos a retornar distintos valores; en el proceso llamador o en el batch, por ejemplo, podremos evaluar el retorno obtenido y actuar en consecuencia.

Este comando solamente puede ser usado en manejadores de eventos de las señales pre-inicialización o post-inicializado del marco AUTOEXEC. Sin embargo, si desde esos manejadores lanzamos un proceso que ejecute el comando no se procesará, pues todavía la inicialización de la aplicación no ha finalizado, y no está disponible el gestor de cola de mensajes. En su lugar debemos podemos ejecutar set retorno = No.

En el caso de que queramos forzar el cierre desde cualquier otro punto de la aplicación, lo que haremos será crear una acción que dispare el comando archivo: salir; no es necesario que la acción esté incluida en la interfaz de la aplicación, simplemente basta con que esté declarada.

Ejemplo

Cuando el año actual del sistema sea inferior al 2000 salimos de la aplicación.

If ( year(currentDate()) < 2000 )
    Mensaje ( "Se ha superado el año 2020", Información, ,  )
    Salir de la aplicación ()

Última actualización