Listas
Conjunto de comandos de proceso que permite interactuar con una lista de registros de una tabla.
Este tipo de comandos solamente estarán accesibles en aquellas líneas de proceso cuyo origen sea una lista de de registros de una tabla.
Añadir ficha a la lista en curso
Comando de instrucción del grupo Listas que permite añadir una ficha a la lista en curso.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Manejador de ficha
Identificador o manejador dado a la ficha mediante la ejecución previa de los comandos Crear nueva ficha en memoria o Crear copia de ficha en memoria.
Funcionalidad
Permite añadir a la lista en curso una ficha local al proceso creada previamente mediante los comandos Crear nueva ficha en memoria o Crear copia de ficha en memoria.
Comentarios
Esta ficha será local al proceso, por lo que será destruida al finalizar el mismo. En el caso de una ficha creada mediante el comando crear nueva ficha en memoria, para que ésta pueda ser añadida a la lista ha de ser guardada en disco previamente, por lo que antes de añadirla a la lista tendremos que guardarla en disco usando el comando alta de ficha, en este comando la ficha será referenciada con el manejador declarado en su parámetro.
Ejemplo
Damos de alta un contacto y lo añadimos a la lista en curso de la rejilla en la vista de datos actual.
Calcular fórmula sobre lista
Comando de instrucción del grupo Listas que, a partir de la fórmula que establezcamos en sus parámetros, permite obtener la suma total, la media, el valor máximo y el valor mínimo.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Fórmula a calcular
Expresión de tipo fórmula que queremos calcular por cada registro.
Modo de cálculo
En este parámetro especificaremos qué tipo de cálculo queremos hacer con esa fórmula. Los valores posibles son:
Media: obtiene la media aritmética de la fórmula sobre el número total de registros.
Máximo: obtiene el valor máximo obtenido.
Mínimo: obtiene el valor mínimo obtenido.
Suma: obtiene el sumatorio de la fórmula en todos los registros.
Modo de ejecución
Indicaremos dónde queremos que se realice el cálculo:
1º plano: local (síncrono): el cálculo se hará en local.
3er plano: servidor (síncrono):el cálculo se hará en el servidor.
Si se trata de pocos registros el cálculo se podrá hacer en local pero si son muchos registros y, sobre todo ejecutando en cloud, se recomienda hacerlo en tercer plano.
Identificador de variable local numérica de retorno
Variable local del proceso donde se guardará el resultado.
Funcionalidad
A partir de la fórmula que establezcamos en sus parámetros, permite obtener la suma total, la media, el valor máximo y el valor mínimo y guardar el valor obtenido en una variable local.
Comentarios
Este comando ni transacciona ni es bloqueante, con lo cual no habrá ningún problema si se modifica la lista o se ejecutan otros procesos mientras se está realizando el cálculo.
Ejemplo
Ejecutamos una búsqueda y con la lista obtenida calculamos la suma, la media, el máximo y el mínimo:
Cortar lista
Comando de instrucción del grupo Listas que recorta el número de elementos de una la lista a partir de una posición determinada.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Fórmula de tamaño
Tamaño o número de elementos de la nueva lista.
Fórmula de posición
Posición a partir de la cual se quiere cortar la lista. La primera posición de la lista será la 1. El número 0 no es un valor válido para este parámetro.
Funcionalidad
Este comando de instrucción recorta el número de elementos de la lista de origen de la línea del proceso al tamaño dado en el primer parámetro desde la posición especificada en el segundo parámetro.
El resto de los elementos no son borrados de la tabla de datos, sólo son quitados de la lista de origen.
Este comando no crea ningún tipo de subproceso, es simplemente un paso que altera el contenido de la lista de origen. La siguiente línea del proceso al mismo nivel que ésta partirá de la lista obtenida.
Comentarios
Obtenemos la lista top 10 de importes de pedidos realizados por los de clientes.
Ejemplo
Limpiamos la rejilla para que no muestre ningún registro.
Crear o modificar lista desde CSV
Comando de instrucción de proceso que nos permite, o bien modificar, o bien dar de alta una lista de registros en una tabla a partir de un CSV.
Origen de la instrucción: ninguno.
Destino del subproceso: lista de la tabla de destino.
Parámetros
Fórmula de dato
Expresión fórmula con el CSV a importar, directamente como texto literal o variable local alfabética, variable global alfabética o campo alfabético u objeto texto.
El csv debe estar codificado en UTF-8.
Identificador de tabla
En este parámetro seleccionaremos la tabla de destino.
Identificador de índice
Este parámetro solo es necesario si en la operación permitida está incluida la modificación, en cuyo caso especificaremos un índice de clave única que permita localizar el registro.
Tipo de operación
Tipo de operación a realizar en la tabla de destino. Los valores posibles son:
Alta o modificación: los registros que no existen lo dará de alta en la tabla, los que existen, los modificará.
Solo alta: dará de alta nuevos registros. Sl el CSV incluye el campo ID de cada registro lo ignorará y creará un nuevo registro con el ID que le corresponda. Así que es una buena alternativa al tubo de lista.
Solo modificación: los registros del CSV que existan en la tabla serán modificados, y con los que no existan no hará nada.
Fórmula para los parámetros CSV (formato JSON) (opcional)
Permite especificar un objeto JSON con los distintos parámetros configurables del comando. Debe tener esta estructura:
id (true/false): para configurar si el CSV incluye identificadores en la primera línea. El valor por defecto es true.
fields (array de string): objeto array con la especificación de campos a importar. El valor por defecto es todos los campos.
registerSeparator (string): carácter separador de registro en el CSV. El valor por defecto es el salto de línea.
fieldSeparator (string): carácter que se usa en el csv para separar los campos. El valor por defecto es la coma (,).
numericFormat (string): cadena para especificar el formato numérico del los campos del CSV. La fórmula admite los valores siguientes
"L": formato decimal con ajustes locales. Aplica la configuración local (separador decimal, separador de miles, mostrar/ocultar ceros a la izquierda) del sistema en el que es ejecuta el comando.
"C": formato contable. Aplica el formato de moneda (número de decimales, separador de miles y decimal) para el idioma del sistema en el que se ejecuta el comando.
Si no es ni "L", ni "C" intentará construir un locale con ese valor siguiendo estas reglas.
Si no consigue construir un locale, aplicará el formato por defecto, que es "f": ([-]9.9).
Ejemplo:
En el caso de que queramos escribir directamente la cadena del JSON como constante en la fórmula será necesario entrecomillarlo y reemplazar en la fórmula las comillas por la secuencia de escape \c:
Identificador de variable local alfabética de retorno con el resultado de la operación (formato JSON) (opcional)
Identificador de una variable local de tipo alfabético en la que se retornará el resultado de la operación. El contenido será un objeto de JSON con la siguiente estructura:
{ "ok": true, "errores" : {"velneo_errorRegistersCount": X, "velneo_errorRegisters"=[{ "velneo_errorCode": 1, "velneo_errorString : "" },…] }}
ok: 0 si no hay errores, 1 si los hay.
errores: JSON con información sobres los errores generados:
velneo_errorRegistersCount: entero con el tamaño del array de "registers" (0 si es un error general).
velneo_errorRegisters: [] → array de objetos con el que se intento dar el alta o modificar el registro con la información extra de las claves velneo_errorCode y velneo_errorString (como se especifica más abajo.
velneo_errorCode: 0 si no hay errores generales, o valor en caso de haber un error general. Ver enum de errores de JSON/CSV.
Ejemplos
Replicamos los registros de una tabla en otra tabla idéntica, con todos los campos:
Replicamos solamente el ID y el NAME de una tabla tabla en otra tabla idéntica:
Crear o modificar lista desde CSV en disco
Comando de instrucción de proceso que nos permite, o bien modificar, o bien dar de alta una lista de registros en una tabla a partir de un fichero CSV almacenado en disco.
Origen de la instrucción: ninguno.
Destino del subproceso: lista de la tabla de destino.
Parámetros
Fórmula de senda
Expresión fórmula con la senda del fichero CSV a importar. El fichero debe estar codificado en UTF-8.
Identificador de tabla
En este parámetro seleccionaremos la tabla de destino.
Identificador de índice
Este parámetro solo es necesario si en la operación permitida está incluida la modificación, en cuyo caso especificaremos un índice de clave única que permita localizar el registro.
Tipo de operación
Tipo de operación a realizar en la tabla de destino. Los valores posibles son:
Alta o modificación: los registros que no existen lo dará de alta en la tabla, los que existen, los modificará.
Solo alta: dará de alta nuevos registros. Sl el CSV incluye el campo ID de cada registro lo ignorará y creará un nuevo registro con el ID que le corresponda. Así que es una buena alternativa al tubo de lista.
Solo modificación: los registros del CSV que existan en la tabla serán modificados, y con los que no existan no hará nada.
Fórmula para los parámetros CSV (formato JSON) (opcional)
Permite especificar un objeto JSON con los distintos parámetros configurables del comando. Debe tener esta estructura:
id (true/false): para configurar si el CSV incluye identificadores en la primera línea. El valor por defecto es true.
fields (array de string): objeto array con la especificación de campos a importar. El valor por defecto es todos los campos.
registerSeparator (string): carácter separador de registro en el CSV. El valor por defecto es el salto de línea.
fieldSeparator (string): carácter que se usa en el csv para separar los campos. El valor por defecto es la coma (,).
numericFormat (string): cadena para especificar el formato numérico del los campos del CSV. La fórmula admite los valores siguientes:
"L": formato decimal con ajustes locales. Aplica la configuración local (separador decimal, separador de miles, mostrar/ocultar ceros a la izquierda) del sistema en el que es ejecuta el comando.
"C": formato contable. Aplica el formato de moneda (número de decimales, separador de miles y decimal) para el idioma del sistema en el que se ejecuta el comando.
Si no es ni "L", ni "C" intentará construir un locale con ese valor siguiendo estas reglas.
Si no consigue construir un locale, aplicará el formato por defecto, que es "f": ([-]9.9).
Ejemplo:
En el caso de que queramos escribir directamente la cadena del JSON como constante en la fórmula será necesario entrecomillarlo y reemplazar en la fórmula las comillas por la secuencia de escape \c:
Identificador de variable local alfabética de retorno con el resultado de la operación (formato JSON) (opcional)
Identificador de una variable local de tipo alfabético en la que se retornará el resultado de la operación. El contenido será un objeto de JSON con la siguiente estructura:
{ "ok": true, "errores" : {"velneo_errorRegistersCount": X, "velneo_errorRegisters"=[{ "velneo_errorCode": 1, "velneo_errorString : "" },…] }}
ok: 0 si no hay errores, 1 si los hay.
errores: JSON con información sobres los errores generados:
velneo_errorRegistersCount: entero con el tamaño del array de "registers" (0 si es un error general).
velneo_errorRegisters: [] → array de objetos con el que se intento dar el alta o modificar el registro con la información extra de las claves velneo_errorCode y velneo_errorString (como se especifica más abajo.
velneo_errorCode: 0 si no hay errores generales, o valor en caso de haber un error general. Ver enum de errores de JSON/CSV.
Ejemplos
Exportamos a disco todos los registros de una tabla con todos sus campos y los importamos en otra:
Replicamos solamente el ID y el NAME de una tabla tabla en otra tabla idéntica:
Crear o modificar lista desde JSON
Comando de instrucción de proceso que nos permite, o bien modificar, o bien dar de alta una lista de registros en una tabla a partir de un JSON.
Origen de la instrucción: ninguno.
Destino del subproceso: lista de la tabla de destino.
Parámetros
Fórmula de dato
Expresión fórmula con el json a importar, directamente como texto literal o variable local alfabética, variable global alfabética o campo alfabético u objeto texto. El JSON debe estar codificado en UTF-8.
Tipo de operación
Tipo de operación a realizar en la tabla de destino. Los valores posibles son:
Alta o modificación: los registros que no existen lo dará de alta en la tabla, los que existen, los modificará.
Solo alta: dará de alta nuevos registros. Sl el JSON incluye el campo ID de cada registro lo ignorará y creará un nuevo registro con el ID que le corresponda. Así que es una buena alternativa al tubo de lista.
Solo modificación: los registros del json que existan en la tabla serán modificados, y con los que no existan no hará nada.
Tabla
En este parámetro seleccionaremos la tabla de destino.
Identificador de índice
Este parámetro solo es necesario si en la operación permitida está incluida la modificación, en cuyo caso especificaremos un índice de clave única que permita localizar el registro.
Identificador de variable local alfabética de retorno de ok (opcional)
Identificador de una variable local de tipo booleano que devolverá 1 si todo está correcto y 0 si hay errores.
Identificador de variable local booleana de retorno de ok (opcional)
Variable booleana con la que se devuelve un 1 si se ha podido realizar el alta o modificación, o un 0 si no se ha podido realizar el alta o modificación.
Identificador de variable local alfabética de retorno de mensaje de error (opcional)
Identificador de una variable local de tipo alfabético en la que se retornará si ha habido algún error. El contenido será un objeto de JSON con la siguiente estructura:
{
velneo_errorCode: 0 si no hay errores generales, o valor en caso de haber un error general. Ver enum de errores de JSON/CSV.
velneo_errorString: "" si errorCode es 0, o mensaje de error en caso de error general
velneo_errorRegistersCount: entero con el tamaño del array de "registers" (0 si es un error general)
velneo_errorRegisters: [] → array de objetos con el que se intento dar el alta o modificar el registro con la información extra de las claves velneo_errorCode y velneo_errorString (como se especifica más arriba
}
Funcionalidad
A partir de un JSON, permite o bien crear nuevosr registros en una tabla, o bien modificar registros existente.
Comentarios
Este comando de instrucción de proceso tiene el fin de facilitarnos el traspaso de información, de registros de tablas, entre aplicaciones. Nos permite duplicar o actualizar información entre aplicaciones o dentro de la propia aplicación, de forma sencilla, con el fin de dotar a nuestras aplicaciones de un sistema sencillo de exportación e importación de información usando JSON.
El comando no es case sensitive. Se hace un tratamiento de las claves que convierte a Identificador cualquier clave, permitiendo aceptar como claves tanto identificadores case insensitive como valores con símbolos no permitidos (como espacios) en los nombres.
En el JSON los campos no están ordenados, así que debemos tenerlo en cuenta para cuando existen contenidos iniciales .
Para ese caso, se recomienda o bien quitar las claves y valores correspondientes del JSON antes de emplearlo, o bien modificar posteriormente los campos de los que dependen contenidos iniciales usando las funciones JSON para obtener los valores.
Los objetos no permiten repetición de claves (debido a que su posición realmente es irrelevante) .
Una estructura de objeto se representa con un par de llaves {}
que contendrán cero o más pares de nombre/valor (o miembros). Un nombre es una cadena. Un signo de dos puntos :
va detrás de cada nombre, separando el nombre del valor. Una coma ,
separa un valor del nombre siguiente. Los nombres dentro de un objeto DEBEN ser únicos.
Los posible errores son:
No se puede dar de alta registros porque ya existe en alguno de los índices de clave única. (si es solo alta pero ya existe en alguno de los índices de clave única).
No es posible modificar registros porque no se encuentran (Si el tipo de operación es solo modificación y no se encuentra el registro) .
El campo %1 que está en el índice %2 no existe en el JSON.
El campo destino %1 no existe en la tabla.
El valor %1 a asignar al campo %2 no es válido.
Ejemplo
Un manejador de evento que duplica los registros que tenemos en una rejilla:
Proceso que da de alta o modifica artículos a partir de un JSON que hemos copiado previamente en el portapapeles:
Exportar informe a fichero
Comando de instrucción del grupo Listas que se encarga de realizar la acción de generar un fichero en disco a partir del informe.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador del informe (Obligatorio)
Objeto informe cuya tabla asociada es la misma que la del origen de la línea del proceso donde estamos incluyendo este comando de instrucción.
Fórmula de senda de destino
Senda del fichero a generar. La senda ha de incluir el nombre y la extensión del fichero. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc. Para su especificación podemos hacer uso del asistente para la creación de formularios.
Funcionalidad
Comando de instrucción de proceso que genera el fichero indicado en el segundo parámetro a partir del informe seleccionado en el primer parámetro.
Comentarios
El proceso se paralizará durante la generación del informe y, una vez generado, continuará la ejecución secuencial del proceso.
Los formatos posibles de fichero son pdf y eps. La generación de uno u otro dependerá de la extensión que especifiquemos al definir la senda. Ejemplo:
Exportar informe a fichero (FACTURA, sysCacheClientPath + “/Informe.pdf”) El informe se generará en formato pdf.
Exportar informe a fichero (FACTURA, sysCacheClientPath + “/Informe.eps”) El informe se generará en formato eps.
No es posible exportar informe a fichero desde procesos ejecutados en tercer o en cuarto plano ni desde triggers.
No es posible exportar informe a fichero desde procesos ejecutados por Velneo vModApache en Linux ni tampoco si las instancias ejecutadas desde Apache las ejecutamos en modo server.
Ejemplo
Generamos y mostramos un informe en formato .pdf que contiene la lista de contactos en orden alfabético guardándolo en la caché del cliente.
Filtrar lista
Comando de instrucción del grupo Listas que quita de la lista de origen los elementos que no cumplan una determinada condición.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Fórmula filtro
Expresión de tipo fórmula en la que se establecerá el filtro a realizar. En la misma podremos usar campos de la tabla en curso.
Fórmula de porcentaje que realiza del proceso (opcional)
Expresión de tipo fórmula en la que se establecerá el porcentaje que que representará el filtr filtrar dentro de todo el proceso. Esta estimación debemos calcularla manualmente. Es decir, si preveemos que filtrar es el 30% del proceso, pues eso será lo que pase cuando termine del filtrar la barra de progreso.
Funcionalidad
Quita de la lista los elementos que no cumplan la condición especificada en sus parámetros. Los elementos filtrados no son borrados en la tabla de datos, sólo son quitados de la lista.
Este comando no crea ningún tipo de subproceso, es simplemente un paso que altera el contenido de la lista en curso. La siguiente función del proceso al mismo nivel tendrá como origen la lista filtrada.
Comentarios
Para facilitar la especificación de la fórmula podremos hacer uso del asistente para edición de fórmulas.
Ejemplo
Procesamos la lista de contactos de la rejilla en curso dejando los registros cuya campo #CAT (Categoría) sea igual a “1”.
Generar CSV desde lista
Comando de instrucción de proceso que convierte una lista de registros de una tabla en una cadena con formato CSV (valores separados por comas).
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de variable local alfabética de retorno
Identificador de una variable local de tipo alfabético donde se retornará el CSV generado.
Fórmula de dato (Opcional)
Expresión fórmula con los campos a incluir en el CSV, debemos especificar cada campo con la función de campo getID, separando cada campo por una coma. Ejemplo:
"" + #ID:getID() + "," + #NAME:getID()
Si lo dejamos vacío, generará el csv con todos los campos.
Incluir identificadores en primera línea (opcional)
Nos permite configurar si queremos que se incluyan en la primera línea los identificadores de los campos (1) o no (0). Si lo dejamos vacío, los incluirá.
Fórmula de separador de registro (opcional)
Nos permite configurar qué carácter se usará para separar los registros en el CSV. Si se deja vacío, usará el salto de línea.
Fórmula de separador de campo (opcional)
Nos permite configurar qué carácter se usará para separar los campos en el CSV. Si se deja vacío, usará la coma (,), el estándar para CSV.
Formato numérico (opcional)
Nos permite configurar en qué formato que generarán los campos numéricos en el CSV. Los valores que podemos usar son:
"L": local.
"C": moneda.
"K": el formato que usará es en el que Velneo guarda los números internamente (sin separador de miles y usando el punto "." como separador decimal).
Si lo dejamos vacío, tomará el valor "L". Cualquier otro valor será tomado como sin formato.
Funcionalidad
Este comando de instrucción de proceso convierte una lista de registros de una tabla en una cadena con formato CSV (valores separados por comas), permitiendo definir si se incluyen todos o algunos campos. Es posible configurar los campos a incluir y los caracteres para la separación de línea y de campos. La codificación es UTF-8.
Ejemplos
Cargar una lista y generar en memoria un CSV con todos los campos, carácter separador de líneas por defecto, carácter separador de campos por defecto y formato numérico por defecto:
Cargar una lista y generar en memoria un CSV solo con los campos ID y NAME, carácter separador de líneas por defecto, usando como carácter separador de campos el punto y coma (;) y con formato numérico de moneda:
Generar fichero CSV desde lista
Comando de instrucción de proceso que genera en disco un fichero con formato CSV (valores separados por comas) a partir de una lista.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Fórmula senda
Expresión fórmula con la senda completa del fichero a generar, incluyendo nombre y extensión.
Fórmula de dato (Opcional)
Expresión fórmula con los campos a incluir en el CSV, debemos especificar cada campo con la función de campo getID, separando cada campo por una coma. Ejemplo:
"" + #ID:getID() + "," + #NAME:getID()
Si lo dejamos vacío, generará el csv con todos los campos.
Incluir identificadores en primera línea (opcional)
Nos permite configurar si queremos que se incluyan en la primera línea los identificadores de los campos (1) o no (0). Si lo dejamos vacío, los incluirá.
Fórmula de separador de registro (opcional)
Nos permite configurar qué carácter se usará para separar los registros en el CSV. Si se deja vacío, usará el salto de línea.
Fórmula de separador de campo (opcional)
Nos permite configurar qué carácter se usará para separar los campos en el CSV. Si se deja vacío, usará la coma (,), el estándar para CSV.
Formato numérico (opcional)
Nos permite configurar en qué formato que generarán los campos numéricos en el CSV. Los valores que podemos usar son:
"L": local.
"C": moneda.
"K": el formato que usará es en el que Velneo guarda los números internamente (sin separador de miles y usando el punto "." como separador decimal).
Si lo dejamos vacío, tomará el valor "L". Cualquier otro valor será tomado como sin formato.
Funcionalidad
Este comando de instrucción de proceso genera un fichero con formato CSV en disco a partir de una lista de registros de una tabla, permitiendo definir si se incluyen todos o algunos campos. Es posible configurar los campos a incluir y los caracteres para la separación de línea y de campos. La codificación es UTF-8.
Comentarios
Los ficheros serán codificados como UTF-8.
Ver RFC que se sigue para crear el CSV.
Ejemplos
Cargar una lista y generar en memoria un CSV con todos los campos, carácter separador de líneas por defecto, carácter separador de campos por defecto y formato numérico por defecto:
Cargar una lista y generar en memoria un CSV solo con los campos ID y NAME, carácter separador de líneas por defecto, usando como carácter separador de campos el punto y coma (;) y con formato numérico de moneda:
Generar JSON desde lista
Comando de instrucción de proceso que convierte una lista de registros de una tabla en un array de JSON en base al estándar RFC-4627, permitiendo definir si se incluyen todos o algunos campos.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Fórmula de dato
Expresión fórmula con los campos a incluir, debemos especificar cada campo con la función de campo getID, separando cada campo por una coma. Ejemplo:
"" + #ID:getID() + "," + #NAME:getID()
Si lo dejamos vacío, generará el json con todos los campos.
Identificador de variable local alfabética de retorno
Identificador de una variable local de tipo alfabético donde se retornará el array de JSON.
Identificador de variable local alfabética de retorno de ok (opcional)
Identificador de una variable local de tipo booleano que devolverá 1 si todo está correcto y 0 si hay errores.
Identificador de variable local alfabética de retorno de mensaje de error (opcional)
Identificador de una variable local de tipo alfabético en la que se retornará la descripción de los errores encontrados. Si no hay errores quedará vacía.
Funcionalidad
Convierte una lista de registros de una tabla en un array de JSON, permitiendo definir si se incluyen todos o algunos campos y retorna el resultado en una variable local.
Comentarios
A tener en cuenta respecto a los campos a los datos a exportar :
Los campos fórmula de cualquier tipo sí se exportan.
Los campos de tipos objeto texto, textos enriquecido, fórmula, se exportan tal cual están.
Los campos objeto dibujo y binario se exportan en base64.
Los campos numéricos se exportan con separador de punto decimal y sin separador de miles.
Los campos fecha se exportan en formato YYYY-MM-DD.
Los campos hora se exportan en formato HH:MM:SS.
Los campos tiempo se exportan en formato YYYY-MM-DDTHH:MM:SS:ZZZ
Los booleanos se exportar como true/false .
No se exportan los campos de tipo puntero indirecto real o virtual, singular de plural por índice o posición y los hermanos contiguos.
El JSON tendrá codificación UTF-8.
Ejemplos
En un manejador de evento de una rejilla generamos un array de JSON con los todos los campos de la tabla y lo guardamos en una variable local alfabética llamada SZ_JSON:
En un manejador de evento de una rejilla generamos una array de JSON con los siguientes campos de la tabla: ID, NAME y MAE y lo guardamos en una variable local alfabética llamada SZ_JSON:
Guardar en lista virtual
Comando de instrucción que permite guardar, o bien en memoria, o bien en disco, una lista de registros de una tabla que posteriormente podrá ser recuperada con el comando de instrucción de proceso recuperar de lista virtual.
Origen de la instrucción: lista o ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de variable local alfabética de retorno (opcional)
Si queremos guardar la lista en una variable local, la especificaremos en este parámetro. Ha de ser una variable local alfabética.
Fórmula de senda de destino (opcional)
Si queremos guardar la lista virtual en disco, en este parámetro especificaremos la senda completa del archivo a generar (incluido nombre y extensión). Podremos darle la extensión que queramos.
Funcionalidad
Este comando de instrucción permite guardar, o bien en memoria, o bien en disco, una lista de registros de una tabla que posteriormente podrá ser recuperada con el comando de instrucción de proceso recuperar de lista virtual.
Comentarios
Es importante indicar que lo que guarda es la lista con las posiciones de los registros en la tabla.
Este comando de instrucción, si bien es de lista, también podemos lanzarlo desde un origen ficha; en ese caso lo que hará será guardar una ficha de un único elemento.
Ver el capítulo listas virtuales para ampliar información sobre su funcionamiento.
Ejemplo
Desde un manejador de evento de un formulario que contienen una rejilla con multiselección guardamos tanto en memoria como en disco una lista virtual con los registos seleccionados:
Imprimir informe
Comando de instrucción del grupo Listas que se encarga de realizar la acción de enviar a una impresora un informe.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador del informe (Obligatorio)
Objeto informe cuya tabla asociada es la misma que la del origen de la línea del proceso donde estamos incluyendo este comando de instrucción.
Identificador de impresora lógica (Opcional)
Si queremos imprimir el informe en una impresora lógica en este parámetro seleccionaremos la impresora lógica de salida.
Si seleccionamos el valor .ninguno lo que mandará será la salida declarada en el objeto informe:
Si la salida del informe es cuadro selección de impresora: antes de imprimir el informe en el proceso se presentará el cuadro de selección de impresora del sistema.
Si la salida del informe es impresora por defecto: el informe será enviado directamente a la impresora por defecto del sistema.
Si la salida del informe es impresora lógica: el informe será impreso en la impresora lógica asociada al objeto informe.
Si la salida del informe es presentación preliminar: el informe será enviado directamente a la impresora por defecto del sistema.
Si la salida del informe es fichero: el informe será generado directamente en el disco en la senda y con el nombre especificado en sus propiedades.
No es posible exportar informe a fichero desde procesos ejecutados en tercer o en cuarto plano.
No es posible exportar informe a fichero desde procesos ejecutados por Velneo vModApache en Linux.
Funcionalidad
Comando de instrucción de proceso que realiza la acción de enviar a una impresora un informe.
Comentarios
El proceso se paralizará durante la generación del informe y, una vez generado, continuará la ejecución secuencial del proceso.
Este comando está programado para imprimir directamente sin generar interfaz. Por eso en aquellos informes cuya salida genere interfaz, como la presentación preliminar, si no se selecciona impresora lógica, son enviados directamente a la impresora por defecto del sistema.
Como sabemos, en las propiedades de un objeto informe de Velneo se define una salida, pues bien, en el caso de que desde un proceso queramos enviar un informe usando la salida definida en sus propiedades, podremos hacerlo usando comandos de objeto.
Si en el parámetro Identificador de impresora lógica hemos seleccionado alguna y ésta no está asociada a ninguna impresora física, al imprimir el informe se abrirá el cuadro de diálogo de selección de impresora del sistema operativo.
No es posible imprimir informes desde procesos ejecutados en tercer o en cuarto plano ni desde Velneo vModApache.
Ejemplo
Imprimir la lista de contactos de la tabla CTT_M por orden de ID por la impresora lógica LST_VER usando el informe INFORME.
Informe personalizable: exportar a fichero
Comando de instrucción del grupo listas que permite exportar a disco un informe personalizable alimentado con los registros de la lista de origen. Un informe personalizable es un archivo con formato XML que puede ser usado desde Velneo, de forma integrada con la base de datos.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Origen de definición de informe
En este parámetro especificaremos de qué modo vamos a suministrar el XML del informe a exportar a disco. Los valores posibles son fórmula, que implicará que compondremos el código XML directamente en una fórmula o fichero, que implicará la selección de un fichero externo que contendrá el XML con la configuración del informe.
Definición informe
En este parámetro, que es de tipo fórmula, resolveremos el informe personalizable. El contenido dependerá de lo que hayamos indicado en el parámetro anterior. Si es fórmula, en la fórmula compondremos directamente el código xml correspondiente a la definición del informe. Si es fichero, indicaremos la senda donde está almacenado el archivo XML con la definición del informe.
Tipo de fichero
Nos permitirá definir el tipo de fichero de salida. Los formatos posibles son: html, imagen, pdf y svg.
Fórmula de senda de destino
Senda del fichero a generar. La senda ha de incluir el nombre y la extensión del fichero. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc. Para su especificación podemos hacer uso del asistente para la creación de formularios.
Parámetros en formato id1:valor1|id2:valor2… (opcional)
Es posible pasar parámetros al informe personalizable a generar. Estos han de ser resueltos con el formato siguiente: parametro1:valor1|parametro2:valor2….
Para usar estos parámetros en un campo de un informe, tendremos que especificar en la propiedad tipo de origen de campo el valor parámetro y, en la propiedad campo especificar el identificador del parámetro dado en este comando de instrucción de proceso.
Por lo tanto, estos parámetros no se declaran en el informe, sino que se declaran en el comando de instrucción de proceso que genera el informe.
Por ejemplo, supongamos que en el comando de instrucción de proceso de Informe personalizable: previsualizar informe queremos pasar en, sendas variables, la fecha y la hora del sistema. Podríamos resolverlos como sigue:
"fecha:" + currentDate() + "|" + "hora:" + currentTime()
Para crear un campo en el informe para imprimir el parámetro al que hemos llamado fecha, haríamos:
Funcionalidad
Permite exportar a disco un informe personalizable alimentado con los registros de la lista de origen.
Comentarios
No es posible exportar informe a fichero desde procesos ejecutados en tercer o en cuarto plano ni desde triggers.
No es posible exportar informe a fichero desde procesos ejecutados por Velneo vModApache en Linux ni tampoco si las instancias ejecutadas desde Apache las ejecutamos en modo server.
Ejemplo
Generamos en la caché del cliente un informe .pdf de artículos partiendo de la definición de un informe personalizable definido previamente en el fichero .xml.
Informe personalizable: exportar a fichero de texto
Comando de instrucción de proceso que permite exportar a un fichero de texto en disco un informe personalizble con los registros de la lista de origen. Un informe personalizable es un archivo con formato XML que puede ser usado desde Velneo, de forma integrada con la base de datos.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Origen de definición de informe
En este parámetro especificaremos de qué modo vamos a suministrar el XML del informe a exportar a disco. Los valores posibles son fórmula, que implicará que compondremos el código XML directamente en una fórmula o fichero, que implicará la selección de un fichero externo que contendrá el XML con la configuración del informe.
Definición informe
En este parámetro, que es de tipo fórmula, resolveremos el informe personalizable. El contenido dependerá de lo que hayamos indicado en el parámetro anterior. Si es fórmula, en la fórmula compondremos directamente el código xml correspondiente a la definición del informe. Si es fichero, indicaremos la senda donde está almacenado el archivo XML con la definición del informe. El informe solamente se necesita para obtener el origen de datos y definir las secciones y es en el siguiente parámetro donde definimos qué campos se muestran y cómo.
Origen de definición de la plantilla de texto
La plantilla de texto será un fichero de texto donde se indica qué campos se muestran y cómo serán impresos. Los valores posibles son fórmula, que implicará que compondremos el texto directamente en una fórmula o fichero, que implicará la selección de un fichero externo que contendrá el fichero de texto.
Definición plantilla de texto
En este parámetro, que es de tipo fórmula, resolveremos el fichero de texto. El contenido dependerá de lo que hayamos indicado en el parámetro anterior. Si es fórmula, en la fórmula compondremos directamente el contenido del fichero de texto. Si es fichero, indicaremos la senda donde está almacenado el archivo fichero de texto.
Fórmula de senda de destino
Senda del fichero a generar. La senda ha de incluir el nombre y la extensión del fichero. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc. Para su especificación podemos hacer uso del asistente de fórmulas.
Parámetros en formato id1:valor1|id2:valor2…(opcional)
Es posible pasar parámetros al informe personalizable a generar. Estos han de ser resueltos con el formato siguiente: parametro1:valor1|parametro2:valor2….
Para usar estos parámetros en un campo de un informe, tendremos que especificar en la propiedad tipo de origen de campo el valor parámetro y, en la propiedad campo especificar el identificador del parámetro dado en este comando de instrucción de proceso.
Por lo tanto, estos parámetros no se declaran en el informe, sino que se declaran en el comando de instrucción de proceso que genera el informe.
Por ejemplo, supongamos que en el comando de instrucción de proceso de informe personalizable: previsualizar informe queremos pasar en, sendas variables, la fecha y la hora del sistema. Podríamos resolverlos como sigue:
"fecha:" + currentDate() + "|" + "hora:" + currentTime()
Para crear un campo en el informe para imprimir el parámetro al que hemos llamado fecha, haríamos:
Funcionalidad
Este comando de instrucción permite exportar a un fichero de texto plano en disco un informe personalizable con los registros de la lista de origen.
El informe solamente se necesita para obtener el origen de datos y definir las secciones y es en el siguiente parámetro donde definimos qué campos se muestran y cómo.
Ejemplo
Generamos un informe en el directorio raíz de la unidad c: de precios de artículos y cantidades pendientes de servir con en formato de texto usando la plantilla de texto definida.
Informe personalizable: imprimir informe
Comando de instrucción del grupo listas que permite imprimir un informe personalizable alimentado con los registros de la lista de origen. Un informe personalizable es un archivo con formato XML que puede ser usado desde Velneo, de forma integrada con la base de datos.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Origen de definición de informe
En este parámetro especificaremos de qué modo vamos a suministrar el XML del informe a exportar a disco. Los valores posibles son fórmula, que implicará que compondremos el código XML directamente en una fórmula o fichero, que implicará la selección de un fichero externo que contendrá el XML con la configuración del informe.
Definición informe
En este parámetro, que es de tipo fórmula, resolveremos el informe personalizable. El contenido dependerá de lo que hayamos indicado en el parámetro anterior. Si es fórmula, en la fórmula compondremos directamente el código xml correspondiente a la definición del informe. Si es fichero, indicaremos la senda donde está almacenado el archivo XML con la definición del informe.
Impresora por defecto
Nos permitirá definir si el informe será enviado a la impresora por defecto del sistema o no.
Identificador impresora lógica (opcional)
Si queremos que el informe sea enviado a una impresora lógica, la seleccionaremos en este parámetro.
Parámetros en formato id1:valor1|id2:valor2… (opcional)
Es posible pasar parámetros al informe personalizable a generar. Estos han de ser resueltos con el formato siguiente: parametro1:valor1|parametro2:valor2….
Para usar estos parámetros en un campo de un informe, tendremos que especificar en la propiedad tipo de origen de campo el valor parámetro y, en la propiedad campo especificar el identificador del parámetro dado en este comando de instrucción de proceso.
Por lo tanto, estos parámetros no se declaran en el informe, sino que se declaran en el comando de instrucción de proceso que genera el informe.
Por ejemplo, supongamos que en el comando de instrucción de proceso de informe personalizable: previsualizar informe queremos pasar en, sendas variables, la fecha y la hora del sistema. Podríamos resolverlos como sigue:
"fecha:" + currentDate() + "|" + "hora:" + currentTime()
Para crear un campo en el informe para imprimir el parámetro al que hemos llamado fecha, haríamos:
Funcionalidad
Este comando de instrucción permite imprimir un informe personalizable alimentado con los registros de la lista de origen.
Comentarios
No es posible imprimir informes personalizables desde procesos ejecutados en tercer o en cuarto plano ni desde Velneo vModApache.
Ejemplo
Realizamos la impresión de la factura editada leyendo primero la definición del informe de la tabla de repositorios de informes.
Informe personalizable: previsualizar informe
Comando de instrucción del grupo listas que permite hacer la vista previa de un informe personalizable con los registros de la lista de origen. Un informe personalizable es un archivo con formato XML que puede ser usado desde Velneo, de forma integrada con la base de datos.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Origen de definición de informe
En este parámetro especificaremos de qué modo vamos a suministrar el XML del informe a exportar a disco. Los valores posibles son fórmula, que implicará que compondremos el código XML directamente en una fórmula o fichero, que implicará la selección de un fichero externo que contendrá el XML con la configuración del informe.
Definición informe
En este parámetro, que es de tipo fórmula, resolveremos el informe personalizable. El contenido dependerá de lo que hayamos indicado en el parámetro anterior. Si es fórmula, en la fórmula compondremos directamente el código xml correspondiente a la definición del informe. Si es fichero, indicaremos la senda donde está almacenado el archivo XML con la definición del informe.
Parámetros en formato id1:valor1|id2:valor2… (opcional)
Es posible pasar parámetros al informe personalizable a generar. Estos han de ser resueltos con el formato siguiente: parametro1:valor1|parametro2:valor2….
Para usar estos parámetros en un campo de un informe, tendremos que especificar en la propiedad tipo de origen de campo el valor parámetro y, en la propiedad campo especificar el identificador del parámetro dado en este comando de instrucción de proceso.
Por lo tanto, estos parámetros no se declaran en el informe, sino que se declaran en el comando de instrucción de proceso que genera el informe.
Por ejemplo, supongamos que en el comando de instrucción de proceso de informe personalizable: previsualizar informe queremos pasar en, sendas variables, la fecha y la hora del sistema. Podríamos resolverlos como sigue:
"fecha:" + currentDate() + "|" + "hora:" + currentTime()
Para crear un campo en el informe para imprimir el parámetro al que hemos llamado fecha, haríamos:
Funcionalidad
Este comando de instrucción permite hacer la vista previa de un informe personalizable con los registros de la lista de origen.
Ejemplo
Previsualizar el albarán en edición leyendo primero la definición del informe de la tabla de repositorios de informes.
Invertir lista
Comando de instrucción del grupo Listas que invierte el orden de la lista de origen.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
No tiene.
Funcionalidad
Invierte el orden de la lista de origen, tomando como campo de referencia aquel por el que la lista haya sido ordenada previamente.
Este comando no crea ningún tipo de subproceso. La siguiente línea del proceso al mismo nivel tendrá como origen la lista ya invertida.
Ejemplo
Cargamos la lista de pedidos por orden numérico del índice ID y posteriormente invertimos la lista para llevar el resultado a la salida.
Multipartir lista
Comando de instrucción del grupo Listas que parte la lista actual por cada ficha encontrada en la que el valor del campo de partición sea diferente al anterior.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: lista de la tabla en curso.
Parámetros
Identificador de campo
En este parámetro se especificará el campo de la tabla el curso por el que la lista será multipartida.
Funcionalidad
Por cada valor diferente que tenga el campo seleccionado se originará una nueva sub-lista que agrupará los registros correspondientes a ese valor. El subproceso que este comando genera será ejecutado por cada sub-lista obtenida. Si no hay registros en la lista de origen, no será ejecutado el subproceso.
Comentarios
Este comando ordena ascendentemente la lista por el campo seleccionado en el parámetro antes de realizar la multipartición.
La ordenación previa de los registros se hará en el servidor, excepto si multipartimos por los tipos de campo siguientes:
Fórmula.
Hermano contiguo.
Puntero indirecto real y virtual.
Singular de plural por índice y por posición.
Tabla de extensión.
Es posible abortar la ejecución del bucle que este comando genera usando en el subproceso del mismo el comando de instrucción de Finalizar bucle.
Ejemplo
Agrupamos o multipartimos los pedidos por clientes y exportamos el informe diseñado en el fichero .xml en un fichero .pdf en la caché del cliente.Se generará un informe por cada cliente.
Multipartir lista por nº de registros
Comando de instrucción que, partiendo de una lista, nos permite procesarla por lotes. Lo que hace es dividirla en listas más pequeñas. El número de sub-listas dependerá del número de registros de la lista de origen y del número de registros que configuremos en el comando.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: lista de la tabla en curso.
Parámetros
Fórmula de número
En este parámetro se especificará, mediante una expresión fórmula, el número de registros que queramos que contenga cada sub-lista en la que se dividirá la lista de origen.
Funcionalidad
Este comando de instrucción, a partir de una lista de registros nos permite partirla en varias sub-listas más pequeñas. El número total de sub-listas generadas dependerá del número de registros de la lista inicial y del número de registros que configuremos en el comando.
Genera un subproceso que será ejecutado por cada sub-lista que se haya generado.
La última lista será con el resto de registros pendientes.
Comentarios
Este comando de instrucción de proceso es ideal para optimizar transacciones grandes. Ver el siguiente capítulo de nuestra documentación.
Es posible abortar la ejecución del bucle que este comando genera usando en el subproceso del mismo el comando de instrucción de Finalizar bucle.
Ejemplo
Supongamos que hemos programado un proceso de lista que factura todos los albaranes del mes. En una empresa con poca facturación no dará problemas pero en una empresa que genere cientos de facturas al mes, la transacción podría llegar a ser demasiado grande, lo que supondría un elevado consumo de hardware (memoria y disco) y su ejecución sería lenta. Con este comando lo que podemos hace es dividir la lista origina en listas más pequeñas y así tener la certeza de que, sea cual sea el volumen de facturación de las empresas en las que instalemos nuestro programa, el proceso de facturación se ejecutará de forma optimizada. Aclara que este número de registros a procesar ha sido establecido al azar, dependerá del tamaño de las transacciones el número óptimo a procesar en cada caso.
Ordenar lista
Comando de instrucción del grupo Listas que permite ordenar la lista en curso por uno o varios campos.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Campo de resolución
Primer campo de ordenación. Podrá tratarse de un campo de la tabla de origen o de un campo de cualquiera de sus tablas enlazadas.
Campo de resolución (Opcional)
Segundo campo de ordenación.
Campo de resolución (Opcional)
Tercer campo de ordenación.
Campo de resolución (Opcional)
Cuarto campo de ordenación.
Campo de resolución (Opcional)
Quinto campo de ordenación.
Campo de resolución (Opcional)
Sexto campo de ordenación.
Funcionalidad
Este comando de instrucción permite ordenar la lista en curso por el campo o campos especificados en sus parámetros. La lista será ordenada en primera instancia por el campo seleccionado en el primer parámetro y si se especifica más de un campo de ordenación, la lista ordenará por el segundo cuando haya valores coincidentes en el primero, por el tercero cuando haya valores coincidentes en el segundo y así sucesivamente.
Ejemplo: si ordenamos una lista de artículos por los campo FAMILIA, MARCA y NOMBRE, ésta será ordenada por FAMILIA dentro de cada familia por MARCA y dentro de cada MARCA por orden alfabético.
Comentarios
La ordenación se hará en el servidor, a excepción de si ordenamos por los tipos de campo siguientes:
Fórmula.
Hermano contiguo.
Puntero indirecto real y virtual.
Singular de plural por índice y por posición.
Tabla de extensión.
Esta función no crea ningún subproceso, es un simple paso. La siguiente línea del proceso que se cree al nivel de ésta, tendrá como origen la lista ordenada.
Para realizar la ordenación, el sistema hace una indexación previa. El tamaño de las claves es de 24 caracteres para los campos alfabéticos menores que alfa256 y de 48 para campos alfa256 y superiores. Por lo tanto, si queremos ordenar listas que contengan cadenas cuya parte común supere esos límites, nuestra recomendación es crear un índice alfabético con dicho campo y en el proceso usar el comando Cargar lista.
No se puede multipartir por un campo enlazado a tablas de datos indirecta. El motivo es que la información del puntero indirecto no es un valor sino que es binaria y no da resultado en una fórmula de Velneo.
Ejemplo
Leer lista de abreviaturas ordenando la lista por el campo #FECHA llevando el resultado a la salida del proceso.
Quitar ficha de la lista
Comando de instrucción del grupo Listas que permite quitar un elemento de la lista de origen pero sin borrarlo de la base de datos.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Fórmula posición
Expresión fórmula que resuelva la posición del elemento a quitar de la lista. La primera posición será 1.
Funcionalidad
Comando de instrucción que permite quitar el elemento especificado en el parámetro fórmula posición de la lista de origen pero sin borrarlo de la base de datos.
Comentarios
Para facilitar la especificación del elemento a quitar podremos hacer uso del asistente para edición de fórmulas. Al tratarse de una fórmula podrá ser tanto un dato constante como uno variable.
La última posición de la lista podremos obtenerla por medio de la variable del sistema sysListSize.
Ejemplo
Quitamos la primera ficha de la rejilla LST.
Recorrer lista eliminando fichas
Comando de instrucción del grupo Listas que recorre la lista de origen borrando los registros de la misma, disparando, por cada ficha borrada, las actualizaciones declaradas en la tabla asociada a la lista.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
No tiene.
Funcionalidad
Recorre la lista de origen borrando los registros de la misma, disparando, por cada ficha borrada, las actualizaciones declaradas en la tabla asociada a la lista.
Este comando genera un subproceso que será ejecutado por cada ficha a borrar; el origen de dicho subproceso, por tanto, será ficha de la tabla en curso. Las instrucciones que se incluyan dentro del subproceso serán ejecutadas por cada registro de la lista. Este subproceso será ejecutado antes del borrado de la ficha. El subproceso que genera no se ejecutará si no hay registros.
Comentarios
Este comando, dado que implica escritura en disco, genera transacción.
El borrado de un registro implicará la ejecución de los eventos de tabla de baja de ficha.
Si queremos borrar las fichas sin que se disparen las actualizaciones tendremos que usar el comando de instrucción Recorrer lista eliminando fichas sin desactualizar.
Es posible abortar la ejecución del bucle que este comando genera usando en el subproceso del mismo el comando de instrucción de Finalizar bucle.
Ejemplo
Eliminamos las líneas del pedido cuyo ID es el 25. Esto hace que se actualicen los totales del campo total del pedido en una estructura de cabeceras y líneas, como puede ser pedidos y sus líneas de pedidos.
Recorrer lista eliminando fichas sin desactualizar
Comando de instrucción del grupo Listas que recorre la lista de origen borrando los registros de la misma sin disparar, por cada ficha borrada, las actualizaciones declaradas en la tabla asociada a la lista.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
No tiene.
Funcionalidad
Recorre la lista de origen borrando los registros de la misma pero no disparará, por cada ficha borrada, las actualizaciones declaradas en la tabla asociada a la lista.
Este comando genera un subproceso que será ejecutado por cada ficha a borrar; el origen de dicho subproceso, por tanto, será ficha de la tabla en curso. Las instrucciones que se incluyan dentro del subproceso serán ejecutadas por cada registro de la lista. Este subproceso será ejecutado antes del borrado de la ficha. Dicho subproceso no se ejecutará si no hay registros.
Comentarios
Este comando, dado que implica escritura en disco, genera transacción.
El borrado de un registro implicará la ejecución de los eventos de tabla de baja de ficha.
Si queremos borrar las fichas y que se disparen las actualizaciones tendremos que usar el comando de instrucción Recorrer lista eliminando fichas.
Es posible abortar la ejecución del bucle que este comando genera usando en el subproceso del mismo el comando de instrucción de Finalizar bucle.
Ejemplo
Eliminamos las líneas del pedido cuyo ID es el 25. Esto hace que no se actualicen los totales del campo total del pedido.
Recorrer lista lectura/escritura
Comando de instrucción del grupo Listas que recorre la lista de origen y modifica los registros de la misma.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguna.
Parámetros
No tiene.
Funcionalidad
Recorre la lista de origen y ejecuta las instrucciones que cuelgan en el subproceso con cada registro de la misma. Este comando genera un subproceso que será ejecutado por cada ficha a modificar; el origen de dicho subproceso, por tanto, será ficha de la tabla en curso.
Las instrucciones que se incluyan dentro del subproceso serán ejecutadas por cada registro de la lista. Este subproceso será en el que se incluyan las instrucciones que modifiquen los campos de la ficha. Dicho subproceso no se ejecutará si no hay registros en la lista.
Comentarios
Este comando, dado que implica escritura en disco, genera transacción.
La modificación de un registro implicará la ejecución de los eventos de tabla de modificación de ficha y el disparo de las actualizaciones en las que intervengan los campos modificados en el proceso.
Cada ficha procesada permanecerá bloqueada mientras dure el subproceso que este comando genera; esto quiere decir que la ficha podrá ser leída pero no bloqueada en modo lectura-escritura desde otros procesos o por otros usuarios.
Para modificar el contenido de un campo usaremos el comando de proceso Modificar campo.
Este comando debe ir leyendo la lista registro a registro, por lo que no puede hacer una lectura de registros en bloque como hace el comando recorrer lista sólo lectura.
Es posible abortar la ejecución del bucle que este comando genera usando en el subproceso del mismo el comando de instrucción de Finalizar bucle.
Ejemplo
Poner el campo total de pedidos a cero en todos los pedidos.
Recorrer lista solo lectura
Comando de instrucción del grupo Listas que recorre la lista de origen y permite leer uno a uno los registros de la misma.
Origen de la instrucción: lista de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
No tiene.
Funcionalidad
Recorre la lista de origen y ejecuta las instrucciones que cuelgan en el subproceso con cada registro de la misma. Este comando genera un subproceso que será ejecutado por cada ficha a leer; el origen de dicho subproceso, por tanto, será ficha de la tabla en curso.
Las instrucciones que se incluyan dentro del subproceso serán ejecutadas por cada registro de la lista. Dicho subproceso no se ejecutará si no hay registros en la lista.
Comentarios
Este comando abre las fichas en modo de sólo lectura, por tanto, no genera transacción y no es posible modificar las fichas procesadas en el subproceso que genera.
En el caso de que se desee recorrer la lista de origen para modificar los registros contenidos en la misma, tendremos que usar el comando de instrucción Recorrer lista lectura/escritura.
Este comando hace una lectura optimizada de los registros, leyéndolos por bloques en el servidor.
Es posible abortar la ejecución del bucle que este comando genera usando en el subproceso del mismo el comando de instrucción de Finalizar bucle.
Ejemplo
Recorremos la lista de pedidos para mostrar un mensaje con la suma total de todos los pedidos haciendo uso de una variable local TOTAL, acumulando en ella el valor del campo #TOT_PED del pedido leído en ese momento.
Recuperar de lista virtual
Comando de instrucción que permite recuperar una lista virtual en memoria previamente generada con el comando de instrucción de proceso guardar en lista virtual.
Origen de la instrucción: ninguno.
Destino del subproceso: lista de la tabla seleccionada en sus parámetros.
Parámetros
Identificador de la tabla
Seleccionaremos la tabla de la que se desea recuperar la lista.
Fórmula de lista virtual
Expresión fórmula con la lista virtual. Normalmente ésta se habrá guardado previamente en una variable alfabética.
Identificador de variable local booleana de retorno de ok (opcional)
Variable local donde se retornará si la lista ha sido recuperada (1) o no (0).
Identificador de la variable local alfabética de mensaje de error (opcional)
Si se ha producido algún error en la recuperación, en esta variable local se guardará el texto informativo del mismo.
Funcionalidad
Este comando de instrucción permite recuperar una lista virtual guardada previamente en memoria con el comando de instrucción de proceso guardar en lista virtual.
Comentarios
Es importante indicar que lo que guarda es la lista con las posiciones de los registros en la tabla. Ver el capítulo listas virtuales para ampliar información sobre su funcionamiento.
Ejemplo
En un manejador de evento de un formulario de un proveedor, recuperamos una lista virtual de artículos que habíamos guardado previamente en memoria y generamos un pedido con los mismos:
Recuperar de lista virtual en fichero
Comando de instrucción que permite recuperar una lista virtual en disco previamente generada con el comando de instrucción de proceso guardar en lista virtual.
Origen de la instrucción: ninguno.
Destino del subproceso: lista de la tabla seleccionada en sus parámetros.
Parámetros
Identificador de la tabla
Seleccionaremos la tabla de la que se desea recuperar la lista.
Fórmula de senda
Expresión fórmula con la senda del fichero en disco que contiene la lista virtual.
Identificador de variable local booleana de retorno de ok (opcional)
Variable local donde se retornará si la lista ha sido recuperada (1) o no (0).
Identificador de la variable local alfabética de mensaje de error (opcional)
Si se ha producido algún error en la recuperación, en esta variable local se guardará el texto informativo del mismo.
Funcionalidad
Este comando de instrucción permite recuperar una lista virtual guardada previamente en disco con el comando de instrucción de proceso guardar en lista virtual.
Comentarios
Es importante indicar que lo que guarda es la lista con las posiciones de los registros en la tabla. Ver el capítulo listas virtuales para ampliar información sobre su funcionamiento.
Ejemplo
En un manejador de evento de un formulario de un proveedor, recuperamos una lista virtual de artículos que habíamos guardado previamente en disco y generamos un pedido con los mismos:
Última actualización