Listas
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.
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.
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.
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.
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.
Damos de alta un contacto y lo añadimos a la lista en curso de la rejilla en la vista de datos actual.
Crear nueva ficha en memoria ( alta, [email protected]_dat )
Modificar campo ( NAME, "Juan Pérez GarcÃa" )
Alta de ficha ( alta )
Libre
Interfaz: procesar ( LST, Todas )
Añadir ficha a la lista ( alta )
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.
Fórmula a calcular
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, sobe todo ejecutando en cloud, se recomienda hacerlo en tercer plano.
Identificador de variable local numérica de retor
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.
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.
Ejecutamos una búsqueda y con la lista obtenida calculamos la suma, la media, el máximo y el mÃnimo:
Rem ( Ejecutamos una búsqueda de facturas y calculamos la suma, la media el máximo y el mÃnimo facturado )
Búsqueda ( [email protected]_2_dat )
Calcular fórmula sobre la lista ( #TOT_FAC, Suma, 3º plano: servidor (sÃncrono), SUM )
Calcular fórmula sobre la lista ( #TOT_FAC, Media, 3º plano: local (sÃncrono), MED )
Calcular fórmula sobre la lista ( #TOT_FAC, Máximo, 3º plano: local (sÃncrono), MAX )
Calcular fórmula sobre la lista ( #TOT_FAC, MÃnimo, 3º plano: local (sÃncrono), MIN )
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.
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.
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.
Obtenemos la lista top 10 de importes de pedidos realizados por los de clientes.
Limpiamos la rejilla para que no muestre ningún registro.
Cargar lista ( [email protected]_dat, ID, , , , )
Ordenar lista ( #TOT_PED, , , , , )
Cortar lista ( 10, 1 )
Añadir lista a la salida
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.
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.
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á la descripción de los errores encontrados. Si no hay errores quedará vacÃa.
A partir de un JSON, permite o bien crear nuevosr registros en una tabla, o bien modificar registros existente.
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.
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.
Rem ( Generamos el JSON con la lista de origen )
Generar JSON desde lista ( , SZ_JSON, BOK, ERROR )
If ( BOK )
Rem ( Generamos una nueva lista a partir del JSON generado )
Crear o modificar lista desde JSON ( SZ_JSON, Solo alta, [email protected], ID, BOK, ERROR_ALTA )
Libre
If ( !BOK )
Mensaje ( "No se ha podido crear la nueva lista. Error: " + ERROR_ALTA, Información, , )
Else
Mensaje ( "No se ha podido generar el JSON de origen. Error: " + ERROR, Información, , )
Proceso que da de alta o modifica artÃculos a partir de un JSON que hemos copiado previamente en el portapapeles:
Rem ( Leemos el contenido del portapapeles )
Portapapeles: Get texto ( SZ_JSON, )
Rem ( Creamos/modificamos lista con los datos del JSON )
Crear o modificar lista desde JSON ( SZ_JSON, Alta o modificación, [email protected] pruebas, ID, BOK, ERROR )
Libre
If ( !BOK )
Mensaje ( "No se ha poddo completar la operación. Error: " + ERROR, Información, , )
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.
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.
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.
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.
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.
Cargar lista ( [email protected]_dat, NAME, , , , )
Exportar informe a fichero ( [email protected]_app, sysCacheClientPath + "/listadecontactos.pdf" )
Ejecutar documento ( "file:///"+sysCacheClientPath + "/listadecontactos.pdf", )
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.
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.
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.
Para facilitar la especificación de la fórmula podremos hacer uso del asistente para edición de fórmulas.
Procesamos la lista de contactos de la rejilla en curso dejando los registros cuya campo #CAT (CategorÃa) sea igual a “1â€.
Interfaz: procesar ( LST, Todas )
Filtrar lista ( #CAT = "1", )
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.
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 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.
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.
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.
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:
Generar JSON desde lista ( , SZ_JSON, BOK, SZ_ERROR )
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:
Generar JSON desde lista ( "" + #ID:getID() +"," + #NAME:getID() +"," + #MAE:getID(), SZ_JSON, BOK, SZ_ERROR )
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.
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.
Comando de instrucción de proceso que realiza la acción de enviar a una impresora un informe.
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.
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.
Cargar lista ( [email protected]_dat, ID, , , , )
Imprimir informe ( [email protected]_app, [email protected]_app )
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.
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:

Permite exportar a disco un informe personalizable alimentado con los registros de la lista de origen.
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.
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.
Cargar lista ( [email protected]_dat, ID, , , , )
Informe personalizable: exportar a fichero ( Fichero, "c:\definforme.xml", PDF, sysCacheClientPath + "/infArticulos.pdf", )
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.
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.
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.
Cargar lista ( [email protected]_dat, ID, , , , )
Informe personalizable: exportar a fichero de texto ( Fichero, "c:\informe.xml", Fórmula, "ArtÃculo: " + #ID + " - " + #NAME + "|" + "Precio: " + #PRE + "|" + "Pte servir: " + #PDT_SRV, “c:\informe.txt", )
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.
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:

Este comando de instrucción permite imprimir un informe personalizable alimentado con los registros de la lista de origen.
No es posible imprimir informes personalizables desde procesos ejecutados en tercer o en cuarto plano ni desde Velneo vModApache.
Realizamos la impresión de la factura editada leyendo primero la definición del informe de la tabla de repositorios de informes.
Cargar lista ( [email protected]_dat, ID, "VERP_VTA_FAC", , , )
Seleccionar ficha por posición ( 1 )
Leer ficha seleccionada
Set ( INF_DEF, #DFN )
Cargar plurales ( MOV_G_VTA_FAC )
Informe personalizable: imprimir informe ( Fórmula, INF_DEF, 0, [email protected]_2_app, )
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.
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:

Este comando de instrucción permite hacer la vista previa de un informe personalizable con los registros de la lista de origen.
Previsualizar el albarán en edición leyendo primero la definición del informe de la tabla de repositorios de informes.
Cargar lista ( [email protected]_dat, ID, "VERP_VTA_ALB", , , )
Seleccionar ficha por posición ( 1 )
Leer ficha seleccionada
Set ( INF_DEF, #DFN )
Cargar plurales ( MOV_G_VTA_ALB )
Informe personalizable: previsualizar informe ( Fórmula, INF_DEF, )
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.
No tiene.
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.
Cargamos la lista de pedidos por orden numérico del Ãndice ID y posteriormente invertimos la lista para llevar el resultado a la salida.
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.
Identificador de campo
En este parámetro se especificará el campo de la tabla el curso por el que la lista será multipartida.
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.
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.
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.
Cargar lista ( [email protected]_dat, ID, , , , )
Multipartir lista ( CLT )
Informe personalizable: exportar a fichero ( Fórmula, "c:\pca.xml", PDF, sysCacheClientPath + "/pca" + #CLT + ".pdf", )
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.
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.
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.
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.
Leer lista de abreviaturas ordenando la lista por el campo #FECHA llevando el resultado a la salida del proceso.
Cargar lista ( [email protected]_dat, ID, , , , )
Ordenar lista ( #FECHA, , , , , )
Añadir lista a la salida
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.
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.
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.
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.​
Quitamos la primera ficha de la rejilla LST.
Interfaz: procesar ( LST, Todas )
Quitar ficha de la lista ( 1 )
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.
No tiene.
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.
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.
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.
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.
No tiene.
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.
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.​
Eliminamos las lÃneas del pedido cuyo ID es el 25. Esto hace que no se actualicen los totales del campo total del pedido.
Cargar lista ( [email protected]_dat, PED, 25, , , )
Recorrer lista eliminando fichas sin desactualizar
Libre
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.
No tiene.
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.
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.
Poner el campo total de pedidos a cero en todos los pedidos.
Cargar lista ( [email protected]_dat, ID, , , , )
Recorrer lista lectura/escritura
Modificar campo ( TOT_PED, 0 )
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.
No tiene.
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.
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.
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.
Set ( TOTAL, 0 )
Cargar lista ( [email protected]_dat, ID, , , , )
Recorrer lista sólo lectura
Set ( TOTAL, TOTAL + #TOT_PED )
Mensaje ( "Suma de todos los pedidos: " + TOTAL, Información, , )
Última actualización 2yr ago