Documentación de Velneo
21
21
  • Introducción
  • Velneo 21
    • ¿Qué es velneo?
    • Requerimientos de Velneo
    • Funcionalidades comunes a los componentes de Velneo
      • Conexión con Velneo vServer
      • Cambiar el estilo de visualización
      • Ver u ocultar barras de herramientas
      • Mensajería interna entre usuarios
      • Soporte de alta resolución (HighDPI)
      • Carpetas de trabajo de los componentes de Velneo
      • Numeración de versiones de Velneo
  • Velneo vDevelop
    • ¿Qué es Velneo vDevelop?
    • Interfaz de Velneo vDevelop
    • Lista de teclas aceleradoras de Velneo vDevelop
    • Soluciones y proyectos
    • Control y edición de proyectos
    • Herencia
    • Proyectos objetos y editores
      • Objeto
      • Proyecto de datos
        • Tabla
          • Campo
          • Enlace
          • Indice
          • Plural
          • Actualización
          • Trigger
          • Traspaso de campo
        • Tabla estática
        • Indice complejo
        • Variable
      • Proyecto de aplicación
        • Marco
        • Acción
        • Menú
        • Toolbar
        • Rejilla
          • Propiedades de columna
        • Formulario
          • Controles de visualización
            • Texto estático
            • Nombre de campo
            • Visor HTML
            • Dibujo
            • Imagen SVG
            • Caja de grupo
            • Menú arbolado
            • Barra de progreso
            • Reloj
            • Manómetro
            • Termómetro
          • Controles de edición
            • Edición alfabética
            • Edición numérica
            • Data catcher edit
            • Objeto dibujo
            • Edición fecha/hora
            • Edición fecha
            • Edición hora
            • Caja de texto
            • Caja de texto enriquecido
            • Edición fórmula
            • Edición senda fichero
            • Edición senda directorio
          • Controles de entrada
            • Botón
            • Botón de radio
            • Botón de check
            • ComboBox
            • ListBox
            • Deslizador
            • Rueda
            • Dial
            • Calendario
          • Contenedores
            • Separador de formularios
            • Splitter
            • Pila de formularios
            • Caja de formularios
            • Vista de datos
          • Layout
          • Tree widget
          • Controles SVG
          • Fichas de extensión
        • Búsqueda
        • Localizador
        • Lupa
        • Arbol visor de tablas
        • Casillero
        • Multivista
        • Bloc de formularios
        • Informe
          • Agrupamiento
          • Sección
          • Editor de informes
          • Cálculo
        • Informe personalizable
          • Diseñando un informe personalizable básico
          • Diseño avanzado
          • Diseñando un informe personalizable
          • Añadiendo orígenes de datos
          • Añadiendo elementos al informe
          • Características avanzadas
          • Etiquetas
          • Asistente de scripts
        • Impresora lógica
        • Cesta
        • Dispositivo serie
        • Imagen SVG
        • Control SVG
        • ViewFlow
        • Rejilla avanzada
        • Alternador de lista
        • ListView
        • ComboView
        • Formulario QML
        • Lista QML
        • Toolbar
        • Protocolo TCP-IP
        • Librería externa
        • Conexión de evento
        • Manejador de evento
        • Drop
        • Inserción
      • Objetos de proyectos de aplicación y datos
        • Dibujo
        • Constante
        • Proceso
          • Comandos de base de datos
            • API
            • Bases de datos externas
            • Búsquedas
            • Campos (grupo de comandos)
            • Cestas
            • Fichas
            • Fichas seleccionadas
            • Listas
            • Tablas
            • Tubos
          • Básicos
            • Controles de flujo
            • Debug
            • Ejecución
            • Salida/retornos
            • Scripts (grupo de comandos)
            • Transacciones (comandos)
            • Variables
          • Comunicación
            • Internet
            • Protocolo TCP
            • Puerto serie
            • SDV
          • Interfaz
            • Acciones (comandos)
            • Control
            • Diálogos
            • Formularios - comandos
            • Localizadores
            • Objeto - grupo de comandos
            • Ventana principal
            • Vista de datos - comandos
          • Sistema
            • Comandos de Sistema
            • Configuración
            • Directorios
            • Ficheros
        • Cola
        • Función
        • Variable local
        • Tubo de ficha
        • Tubo de lista
        • Esquema de tablas
        • Fichero adjunto
      • Editores
        • Editor de imágenes
        • Selector de fuentes
        • Asistente de fórmulas
          • Operadores
          • Funciones estándar
            • Funciones API
            • Funciones básicas
            • Funciones de cadenas
              • Expresiones regulares
            • Funciones científicas
            • Funciones de Cliente-servidor
            • Funciones de color
            • Funciones de códigos
            • Funciones de directorios
            • Funciones de fechas
            • Funciones de ficha en curso
            • Funciones de horas
            • Funciones de Internet
            • Funciones de juegos de caracteres
              • Codecs
            • Funciones numéricas
            • Funciones de sistema
            • Funciones de tiempo
            • Funciones trigonométricas
          • Funciones de dll
          • Funciones de proceso
          • Campos
          • Constantes
          • Variables globales
          • Variables locales
          • Variables del sistema
          • Verificador de fórmulas
          • Conversión automática de datos
          • Introducción de datos literales
          • Secuencias de escape en cadenas de caracteres
          • Funciones de campo
    • Inspectores
    • Scripts
      • Lenguajes
        • JavaScript
          • Procesos JavaScript
          • Fórmulas JavaScript
          • Clases
            • Funciones globales
            • Objetos
            • VAbstractBrowser
            • VAbstractDataView
            • VAbstractListDataView
            • VAdvandedGridListDataView
            • VAlternatorListDataView
            • VApp
            • VBoundFieldComboBox
            • VBoundFieldEdit
            • VBoundFieldEditBrowser
            • VBoundFieldListBox
            • VByteArray
            • VCheckBox
            • VClockWidget
            • VComboBox
            • VComboListDataView
            • VCoverFlowListDataView
            • VCWebView
            • VDataCatcherEdit
            • VDataCatcherEditBrowser
            • VDataViewDialog
            • VDateEdit
            • VDateEditBrowser
            • VDateTimeEdit
            • VDateTimeEditBrowser
            • VDial
            • VDir
            • VExtension
            • VFile
            • VFileInfo
            • VFilePathEditBrowser
            • VFinder
            • VFont
            • VFormBlockListDataView
            • VFormDataView
            • VFormulaEditBrowser
            • VGaugeWidget
            • VGridListDataView
            • VGroupBox
            • VImage
            • VImageEdit
            • VImageWidget
            • VInstancesList
            • VInstance
            • VInstances
            • VItemRegisterPattern
            • VLabel
            • VLineEdit
            • VLineEditBrowser
            • VListBox
            • VListDataView
            • VLogin
            • VMainWindow
            • VMdiView
            • VMultiDataView
            • VNumberSpinBox
            • VNumberSpinBoxBrowser
            • VObjectInfo
            • VObjectInstance
            • VProcess
            • VProgressBar
            • VProjectInfo
            • VPushButton
            • VQmlFormDataView
            • VQmlListDataView
            • VQmlListModel
            • VQuery
            • VRadioButton
            • VRegister
            • VRegisterList
            • VReportListDataView
            • VRequest
            • VResponse
            • VRoot
            • VScreen
            • VServerAdmin
            • VSettings
            • VSlider
            • VSlotListDataView
            • VSolutionInfo
            • VSplitter
            • VSqlDatabase
            • VSSLCertificate
            • VSSLInfo
            • VSSLSessionCipher
            • VStackedWidget
            • VSvgButton
            • VSvgSlideSwitch
            • VSvgToggleSwitch
            • VSvgWidget
            • VSysInfo
            • VTableInfo
            • VTabWidget
            • VTextEdit
            • VTextFile
            • VThermometerWidget
            • VThumbWheel
            • VTimeEdit
            • VTimeEditBrowser
            • VToolBox
            • VTreeItem
            • VTreeItemRegister
            • VTreeListDataView
            • VTreeMenu
            • VTreeMultiTableListDataView
            • VTreeWidget
            • VUser
            • VUserGroup
            • VUserGroupList
            • VUserList
            • VXmlReader
            • VXmlWriter
            • Widget
            • XMLHttpRequest
        • QML
          • Tipos QML
          • QML1 vs QML2
          • Migrar aplicaciones de QML 1 a QML 2
          • Funciones específicas de QML
    • Depuración
      • Depuración de procesos de Velneo
      • Depuración de procesos JavaScript
    • Extensiones de Velneo vDevelop
    • Acceso directo a una solución desde vDevelop
    • Buenas prácticas
      • Buenas prácticas de organización
        • Solución
        • Proyecto de datos
        • Proyecto de aplicación
      • Buenas prácticas de codificación
        • Diccionario de abreviaturas
        • No te olvides nunca. Escribes y mantienes código. Documenta bien
        • Diseña los formularios como si no existiesen los layouts
      • Buenas prácticas de rendimiento
        • Arquitectura
          • Listas de registros
          • Lista de resultados de una búsqueda
          • Las cestas
          • Las variables globales
          • La caché de fichas
          • Programa en cloud
        • Base de datos
          • Tablas en memoria vs tablas en disco
          • Optimizar migraciones de datos
          • Búsquedas en el servidor ¿Cuándo y Cómo?
          • Campos fórmula vs campos en disco
          • Reduce el número de índices
          • Indices condicionados vs búsquedas complejas
          • ¿Cuándo usar tablas de extensión?
          • Indices de trozos y palabras
          • ¿Cuándo usar cada tipo de campo alfa?
          • ¿Cúando usar índices complejos?
          • Actualizaciones vs triggers
          • Puntero indirecto real vs virtual
          • Campos alfa vs campos objeto texto
          • Uso de fórmulas JavaScript en campos
          • Evitar filtrar y ordenar
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • Procesos
          • 1º, 2º y 3º plano ¿Cuándo usar cada uno?
          • Bloqueo blando vs bloqueo duro
          • Pasar información del cliente al servidor
          • ¿Cómo optimizar transacciones grandes?
          • ¿Cómo gestionar las transacciones?
          • Grabaciones optimizadas para el usuario
        • Rejillas
          • Campos punteros a singular
          • Totales
          • Condiciones de activo, visible y color en columna
          • Campos de tipo objeto
        • Conoce los límites
      • Buenas prácticas para el desarrollo en equipo
  • Velneo vAdmin
    • ¿Qué es Velneo vAdmin?
    • Gestión de usuarios
    • Gestión de aplicaciones
      • Soluciones
      • Instancias
      • Disco
    • Monitorización
    • Tareas
    • Acceso directo
  • Velneo vClient
    • ¿Qué es Velneo vClient?
    • Movilidad
    • Funcionalidades de Velneo vClient
      • Accesos directos y VRL
      • Cambiar idioma
      • Panel de procesos en 2º plano
      • Manejo de rejillas
      • Manejo de cestas de la compra
      • Refrescos
      • Caché local
      • Edición de campos enlazados a maestro
      • Asignar impresoras lógicas
      • Actualización automática
      • Personalización de la ventana de conexión de Velneo vClient
      • Instalador personalizado de Velneo vClient
      • Uso de la rejilla avanzada
      • Ordenación de listas
      • Captura de imágenes desde cámara
  • Velneo vServer
    • ¿Qué es Velneo vServer?
    • Instalación y configuración
      • Activación de la licencia
      • Línea de comandos de Velneo vServer
      • Parámetros configurables de Velneo vServer
      • Estructura de directorios
    • Iniciar Velneo vServer
    • Funcionalidades
      • Protocolo VATP
      • Protocolo VATPS
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
      • Cómputo del consumo de puestos
    • vPacker
  • Velneo vInstallBuilder
    • ¿Qué es Velneo vInstall Builder?
    • Configurar una instalación
    • Probar una instalación
    • Crear el instalable
    • Accesos directos
  • Velneo vModApache
    • ¿Qué es Velneo vModApache?
    • Instalación y configuración
    • Nomenclatura de objetos en urls
    • Uso de ficheros adjuntos
  • Velneo vDataClient
    • ¿Qué es Velneo vDataClient?
    • Iniciar Velneo vDataClient
    • Interfaz de Velneo vDataClient
    • Procesos
    • Utilidades
    • Acceso directo a una instancia de datos
  • Velneo vTranslator
    • ¿Qué es Velneo vTranslator?
    • Importación y exportación basada en XLIFF
    • Acceso directo a una solución
  • Velneo ODBC Driver
    • ¿Qué es velneo ODBC Driver?
    • Referencia de comandos SQL
  • Velneo vVersion
    • ¿Qué es Velneo vVersion?
  • Velneo vERP
    • ¿Qué es Velneo vERP?
    • Manual del programador
    • Documentación del ApiRest
  • Velneo vTutor
    • ¿Qué es vTutor?
    • Tutores de objetos básicos
      • Tutor de marcos
      • Tutor de formularios
      • Tutor de rejillas
      • Tutor de árboles visores de tablas arboladas
      • Tutor de búsquedas
      • Tutor de informes
      • Tutor de cestas
      • Tutor de localizador básico
    • Tutores de objetos avanzados
      • Tutor de alternadores de lista
      • Tutor de impresión de informes
      • Tutor de tubos de ficha y de lista
      • Tutor de grabación de fichas
      • Tutor de comboview
      • Tutor de eventos
      • Tutor de drag and drop
      • Tutor de TCP/IP
    • Tutores de controles
      • Tutor de botones de menú
      • Tutor de controles SVG
      • Tutor de edición numérica
      • Tutor de vistas de datos de lista
      • Tutor de visor html dinámico
    • Tutores de procesos y manejadores de evento avanzados
      • Tutor de procesos
      • Tutor de importación y exportación de ficheros ASCII
      • Tutor de comandos de interfaz y acciones
    • Tutores de scripts
      • QML: Hola mundo
      • QML: tutorial básico
      • QML: Tutor de vistas
  • Velneo cloud
    • ¿Qué es Velneo Cloud?
    • Copias de seguridad
    • Velneo cloud API
      • Uso de Velneo cloud API
    • Explorador de archivos cloud sFTP
    • TCP en Velneo cloud
    • SLA
Con tecnología de GitBook
En esta página
  • Funcionalidades que podemos usar en un informe personalizable
  • Subinformes
  • Códigos de barras
  • Etiquetas
  • Texto enriquecido en múltiples páginas
  • Modo texto
  • Informe personalizables con múltiples orígenes
  • Editor de informes personalizables
  • Ventana principal del editor de informes personalizables
  • Editor de geometría

¿Te fue útil?

  1. Velneo vDevelop
  2. Proyectos objetos y editores
  3. Proyecto de aplicación

Informe personalizable

Última actualización hace 4 años

¿Te fue útil?

A partir de la versión 7.12, es posible generar informes externos personalizables en el menú objeto.

Podremos crear un nuevo informe o editar alguno existente, definir sus orígenes de datos y controles asignados a campos de las tablas declaradas en los proyectos de datos de Velneo.

Los informes personalizables permiten a los usuarios finales personalizar los informes si el programador lo desea. Los comandos de instrucción que se incorporan permitirán al programador lanzar el editor de informes en el punto de la aplicación que más nos interese, y ayudándonos de la gestión de definiciones de informe que aporta el generado de informes externos, podemos hacer que el usuario final personalice informes de forma muy sencilla.

Además, podremos programar nuestras aplicaciones para que el usuario final pueda diseñar sus propios informes de forma dinámica y haciendo uso de tablas, campos y procesos que permitamos que use en tiempo de ejecución.

Puedes hacer uso de la Open App Velneo vReport como repositorio de tus informes, heredándola en tus aplicaciones, pero no es necesario y puedes crear tú mismo tu propio repositorio de informes.

NOTA: En versiones anteriores a la 7.16 era necesario heredar la Open App Velneo vReport para que los informes personalizables estuviesen disponibles. A partir de la versión 7.16 no será necesario heredar nada para que sean funcionales los informes personalizables.

Los informes personalizables no son más que ficheros xml en disco que pueden ser editados en tiempo de ejecución. Su gestión se hace a través de procesos. Para ello disponemos de los comandos de instrucción de proceso siguientes:

Informe personalizable: editar informe: Permite editar un informe personalizable. Como parámetro debemos especificar la senda en disco del fichero XML correspondiente al informe que se quiere editar.

Informe personalizable: exportar a fichero: Este comando de instrucción permite enviar el informe a un fichero de disco. No la definición del informe, sino la “impresión” del informe en un fichero en disco.

Informe personalizable: exportar a fichero de texto: Similar al comando anterior, pero lo envía en formato TXT.

Informe personalizable: Imprimir informe: Imprimir informe: Imprime el informe.

Informe personalizable: Previsualizar informe: Previsualiza el informe.

Estos otros comandos son de origen lista porque deben estar alimentados por la lista de registros a imprimir. En ellos, el informe se podrá especificar, o bien mediante su senda en disco, o bien mediante una fórmula que contenga el código xml correspondiente.

Para gestionar los informes en tiempo e ejecución, podremos usar distintos métodos. A continuación comentamos tres ejemplos distintos:

1) Cuando se quiera crear un nuevo informe personalizable, ejecutaremos un proceso que cree en disco un fichero de texto plano, vacío, con extensión xml. Una vez creado, lo editaremos con el comando informe personalizable: editar informe. Una vez diseñado podremos guardarlo en disco nuevamente desde el editor de informes personalizables. Cuando queramos imprimirlo, en los comandos de impresión de informes externos, lo identificaremos por su senda en disco.

2) Podemos crear un modelo de informe tipo (con una cabecera de página con logo, datos de empresa por ejemplo) con el editor de informes personalizables y generar el xml correspondiente. En nuestra solución declararemos ese fichero XML en un proyecto. Recordar que un objeto fichero adjunto se descarga a la caché local de cada estación cliente cuando se ejecuta la aplicación.

Cuando se quiera crear un informe, se creará una copia de ese fichero con otro nombre y se editará con el comando informe personalizable: editar informe. Una vez diseñado podremos guardarlo en disco nuevamente desde el editor de informes personalizables. Cuando queramos imprimirlo, en los comandos de impresión de informes externos, lo identificaremos por su senda.

En el tutor de Velneo vReport encontraremos un ejemplo de la tercera opción: crear un repositorio de informe en la base de datos.

Si descargamos el tutor de vReport, observaremos que descarga un fichero zip. Este contiene dos instalaciones: la del componente vReport y la del tutor de vReport, basta con que instalar únicamente el segundo.

Este tutor, además, incluye varios ejemplos de distintos tipos de informe, así que también es un recurso formativo importante para estudiar la configuración de los informes personalizables.

Funcionalidades que podemos usar en un informe personalizable

A continuación veremos qué funciones podemos usar en un informe personalizable.

Subinformes

Los informes personalizables nos dan la posibilidad de combinar en el mismo informe información de diferentes tablas. El informe parte de una tabla de origen y adicionalmente podemos crear tantas secciones como necesitamos teniendo cada sección un origen diferente. Los controles de cada sección permiten mostrar información de su origen. Gracias a esta funcionalidad ya es posible crear informes con subinformes.

Códigos de barras

Los informes personalizables permiten imprimir códigos de barras haciendo uso del componente personalizable Zint.

Los informes personalizables admiten más de 50 tipos de códigos de barras: Code 128, Data Matrix, USPS OneCode, EAN-128, UPC/EAN, ITF, QR Code, Code 16k, PDF417, MicroPDF417, LOGMARS, Maxicode, GS1 DataBar, Aztec, Composite Symbols y muchos más.

Etiquetas

Los informes personalizables permiten crear de forma sencilla informes de etiquetas sin necesidad de utilizar tablas temporales.

Texto enriquecido en múltiples páginas

Los informes personalizables permiten imprimir campos de texto enriquecido sin limitación de longitud, lo que permite imprimir textos largos en múltiples páginas. Esta opción abre, entre otras muchas posibilidades, la de generar información en formato HTML sobre un campo objeto texto enriquecido y luego imprimirlo como un informe.

IMPORTANTE: Si en un informe vamos a incluir campos de longitud variable, para una correcta impresión del mismo, debemos asegurarnos de configurar lo siguiente:

En la opción configuración de informe y página… del informe, en la pestaña “opciones de sección”, activar la propiedad salto de página permitido entre zonas.

La sección donde esté incluido el control debe tener activada la propiedad alto automático.

El control del informe que contenga el campo debe tener activadas las propiedades alto automático y salto de página.

Modo texto

Los informes personalizables te permiten imprimir en modo texto. Con esta posibilidad se pueden generar informes para imprimir en modo texto o incluso que el usuario final pueda, a través de un informe personalizable, generar un fichero de texto con el formato de un cuaderno bancario.

Informe personalizables con múltiples orígenes

Otra de las características adicionales de los nuevos informes personalizables es que además de integrar la información de la base de datos Velneo permite combinar en el mismo informe información proveniente de diferentes orígenes combinando datos de Velneo con datos obtenidos de otras base de datos o ficheros.

Editor de informes personalizables

La ventana del diseñador de informes consta de una barra de menú, una toolbar y el editor de geometría para editar la posición y tamaño de los objetos. El editor de geometría puede ser habilitado o inhabilitado mediante la opción editor de geometría del menú ver.

Ventana principal del editor de informes personalizables

El menú principal contiene las acciones estándar para abrir y guardar archivos de informes, gestionar secciones de informes, usar el portapapeles, etc. La toolbar contiene acciones comunes que son usadas al editar un informe. Estas acciones también están accesibles desde el menú principal. El menú archivo contiene las operaciones de archivo. El menú informe contiene la configuración del informe en curso y de sus secciones. El menú ver contiene los elementos específicos que podemos habilitar o inhabilitar en el área MDI. El menú insertar contiene los objetos que podemos usar para construir un informe. El menú alineamiento contiene las acciones de alineamiento para aquellos controles de informes que pueden ser alineados. Con el menú ventana podremos gestionar las ventanas que sean abiertas de forma concurrente.

La mayoría de las características del editor de informes están accesibles a través del menú o de la toolbar Algunas características también están disponibles a través de los menús de contexto que pueden ser abiertos sobre las secciones del informe. En la mayoría de las plataformas, el botón derecho del ratón se usa para abrir los menús de contexto.

Editor de geometría

Se trata de una herramienta de ventana que pueda ser habilitada a través de la opción editor de geometría del menú ver. Esta ventana muestra información de la posición y el tamaño del objeto o de la sección en curso. El objeto o la sección en curso serán activados mediante un clic del ratón. Podemos teclear el número correspondiente al tamaño o a la posición dentro de los controles correspondientes. Cualquier cambio que se haga en las propiedades del objeto será actualizado de forma inmediata.

En los dos casos anteriores debemos tener en cuenta que estamos hablando de trabajar desde local con los informes, con lo que debemos tener en cuenta que una vez creados, deberían subirse al servidor mediante comandos de , para que el resto de los usuarios puedan tener acceso a los mismos.

3) Otra posibilidad y que es la que usamos en consistiría en crear en nuestra solución un repositorio de informes, esto es, guardar en una tabla la definición de cada informe, en un campo de tipo objeto texto. Para editarlo exportaremos a disco el contenido del campo (en un fichero con extensión xml), editarlo y una vez guardado, importarlo nuevamente en el campo de tipo objeto texto. En este caso, en los comandos de instrucción de impresión de informes externos asignaríamos el contenido del campo objeto texto a una variable local de proceso y la usaríamos para especificar el informe.

fichero adjunto
SDV
vERP,