Documentación de Velneo
29
29
  • Introducción
  • Velneo
    • Requerimientos de Velneo
    • Notas de la versión
    • Funcionalidades comunes a los componentes de Velneo
      • Instalación
      • 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
      • Certificado de firma digital para componentes de Windows
    • Tipos de archivo generados por Velneo
    • Velneo Web
      • Plataformas y navegadores compatibles
      • Acceso a recursos del sistema
      • Siempre https
      • Funcionamiento de vatp por websocket
      • CORS para llamadas xmlhttprequest
  • Velneo vDevelop
    • ¿Qué es Velneo vDevelop?
    • Interfaz de Velneo vDevelop
      • Menú Soluciones
      • Menú Proyectos
      • Menú Objetos
      • Menú Scripts
      • Menú Edición
      • Menú Ver
      • Menú Componentes
      • Menú Ayuda
    • Lista de teclas aceleradoras de Velneo vDevelop
    • Soluciones y proyectos
    • Control y edición de proyectos
    • Herencia
    • Inspectores
    • Proyectos objetos y editores
      • Proyecto de datos
      • Proyecto de aplicación
        • Crear CSS para aplicar a objetos en edición
      • Objeto
      • Objetos de proyecto de datos
        • Indice complejo
        • Tabla
          • Actualización
          • Campo
          • Enlace
          • Indice
          • Plural
          • Traspaso de campo
          • Trigger
        • Tabla estática
        • Variable
      • Objetos de proyecto de aplicación
        • Acción
        • Alternador de lista
        • Arbol visor de tablas
        • Bloc de formularios
        • Casillero
        • Cesta
        • ComboView
        • Control SVG
        • Dispositivo serie
        • 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
            • Caja de texto
            • Caja de texto enriquecido
            • Data catcher edit
            • Edición alfabética
            • Edición fecha
            • Edición fecha/hora
            • Edición fórmula
            • Edición hora
            • Edición numérica
            • Edición senda fichero
            • Edición senda directorio
            • Objeto dibujo
          • Controles de entrada
            • Botón
            • Botón de check
            • Botón de radio
            • Calendario
            • ComboBox
            • Deslizador
            • Dial
            • ListBox
            • Rueda
          • Contenedores
            • Área de scroll
            • Caja de formularios
            • Pila de formularios
            • Separador de formularios
            • Splitter
            • Vista de datos
          • Layout
          • Tree widget
          • Controles SVG
          • Extensión de ficha
        • Formulario QML
        • Gráfico
        • Imagen SVG
        • Impresora lógica
        • Informe
          • Editor de informes
          • Agrupamiento
          • Sección
          • 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
          • Impresión de gráficos
          • Opciones html
        • ListView
        • Lista QML
        • Localizador
        • Marco
        • Menú
        • Multivista
        • Protocolo TCP-IP
        • Reemplazo
        • Rejilla
          • Propiedades de columna de rejilla
        • Rejilla avanzada
          • Propiedades de columna de rejilla avanzada
        • Toolbar
        • ViewFlow
        • Sub-objetos de vistas de datos
          • Conexión de evento
          • Drop
          • Inserción
          • Manejador de evento
      • Objetos comunes a proyecto de datos y de aplicación
        • Búsqueda
        • Cola
        • Constante
        • Dibujo
        • Esquema de tablas
        • Fichero adjunto
        • Función
        • Librería externa
        • Lupa
        • Proceso
          • Indice de comandos de instrucción de 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
              • Ejemplo de CSS
            • Diálogos
            • Formularios - comandos
            • Localizadores
            • Objeto - grupo de comandos
            • Ventana principal
            • Vista de datos - comandos
          • Sistema
            • Comandos de Sistema
            • Configuración
            • Directorios
            • Ficheros
        • Tubo de ficha
        • Tubo de lista
        • Variable local
      • Editores
        • 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 JSON
            • 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
          • Funciones de campo
          • 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
          • Composición de sendas en fórmulas
          • Operar con datos de tipo fecha, hora y tiempo
        • Editor de imágenes
        • Selector de fuentes
    • Scripts
      • Lenguajes
        • JavaScript
          • Procesos JavaScript
          • Fórmulas JavaScript
          • Clases
            • Funciones globales
            • Objetos
            • VAbstractBrowser
            • VAbstractDataView
            • VAbstractListDataView
            • VAdvandedGridListDataView
            • VAlternatorListDataView
            • VApp
            • VBoundFieldComboBox
            • VBoundFieldEdit
            • VBoundFieldEditBrowser
            • VBoundFieldListBox
            • VByteArray
            • VCheckBox
            • VClipboard
            • VClockWidget
            • VComboBox
            • VComboListDataView
            • VCoverFlowListDataView
            • VCWebView
            • VDataCatcherEdit
            • VDataCatcherEditBrowser
            • VDataView
            • 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
            • VMimeData
            • VMultiDataView
            • VNumberSpinBox
            • VNumberSpinBoxBrowser
            • VObjectInfo
            • VObjectInstance
            • VProcess
            • VProgressBar
            • VProjectInfo
            • VPushButton
            • VQmlFormDataView
            • VQmlListDataView
            • VQmlListModel
            • VQuery
            • VRadioButton
            • VRegister
            • VRegisterList
            • VReportListDataView
            • VRequest
            • VResponse
            • VRoot
            • VScreen
            • VScrollArea
            • 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
          • Funciones específicas de QML
    • Depuración
      • Depuración de procesos de Velneo
      • Depuración de procesos JavaScript
      • Monitor de vClient
    • Extensiones de Velneo vDevelop
    • Acceso directo a una solución desde vDevelop
    • Buenas prácticas
      • Buenas prácticas de organización
        • Proyectos
        • Organización de carpetas
        • Proyecto de datos
        • Proyecto de aplicación
      • Buenas prácticas de codificación
        • Identificadores
        • Teclas aceleradoras
        • Documenta
        • 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
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • Base de datos
          • Campos
          • Indices
          • Actualizaciones
          • Eventos de tabla o triggers
          • Variables globales y constantes
          • 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
          • 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?
        • Procesos y funciones y eventos
          • 1º, 2º, 3º y 4º 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
        • Carga de registros en objetos de lista
          • Rejillas
            • Campos punteros a singular
            • Totales
            • Condiciones de activo, visible y color en columna
            • Campos de tipo objeto
        • Conoce los límites
      • Imágenes
      • Buenas prácticas para el desarrollo en equipo
    • Análisis de bases de datos para aplicaciones de Velneo
      • Un centro de enseñanza
      • Facturas de un cliente
      • Repartos de obras de teatro
      • Galería de arte
      • Gestión de un colegio
      • Instalación de lunas para vehículos
      • Libros y autores
      • Tienda de discos
      • Últimos pedidos de un proveedor
      • Existencias por almacén y precios por cliente
      • Generación de tickets para un quiosco
      • Navegación por facturas
  • Velneo vDevelop Web
  • Velneo vAdmin
    • ¿Qué es Velneo vAdmin?
    • Gestión de usuarios
    • Gestión de aplicaciones
      • Soluciones
      • Instancias
      • Disco
    • Monitorización
      • Lista de comandos
    • Tareas
    • Acceso directo
    • Velneo vAdmin Web
  • 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
        • Submenú de filtros
      • Uso de la rejilla avanzada
      • Manejo de cestas
      • Refrescos
      • Caché local
      • Edición de campos enlazados a maestro
      • Edición de campos de tipo fecha
      • Capturar imagen desde una cámara
      • Asignar impresoras lógicas
      • Actualización automática
      • Personalización de la ventana de conexión de Velneo vClient
      • Instalador personalizado de Velneo vClient
      • Ordenación de listas
  • 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 y detener Velneo vServer
    • Funcionalidades
      • Protocolo VATP
      • Protocolo VATPS
      • Multi-hilo
      • Integridad referencial
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
    • Mensajes de log de sistema
    • vPacker
  • Velneo vInstallBuilder
    • ¿Qué es Velneo vInstallBuilder?
    • 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
    • Caché local de Velneo vModApache
  • 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 de la ApiRest
    • Novedades de la versión
  • Velneo vTutor
    • ¿Qué es vTutor?
    • Tutores de objetos básicos
      • Tutor de árboles visores de tablas arboladas
      • Tutor de búsquedas
      • Tutor de cestas
      • Tutor de formularios
      • Tutor de informes
      • Tutor de localizador básico
      • Tutor de marcos
      • Tutor de rejillas
      • Tutor de rejillas avanzadas
    • Tutores de objetos avanzados
      • Tutor de alternadores de lista
      • Tutor de comboview
      • Tutor de drag and drop
      • Tutor de eventos
      • Tutor de tablas de extensión y extensiones de ficha
      • Tutor de grabación de fichas
      • Tutor de gráficos
      • Tutor de impresión de informes
      • Tutor de lupas
      • Tutor de protocolo TCP/IP
      • Tutor de reemplazo
    • Tutores de controles
      • Tutor de botones de menú
      • Tutor de controles SVG
      • Tutor de edición numérica
      • Tutor de visor html dinámico
      • Tutor de vistas de datos de lista
    • Tutores de procesos y manejadores de evento avanzados
      • Tutor de cambio de marco
      • Tutor de comandos de interfaz y acciones
      • Tutor de importación y exportación de ficheros ASCII
      • Tutor de portapapeles
      • Tutor de procesos
      • Tutor de SDV
    • Tutores de scripts
      • QML: hola mundo
      • QML: tutor básico
      • QML: tutor de vistas
      • Tutor de XMLHttpRequest (webServices)
  • Velneo cloud
    • ¿Qué es Velneo Cloud?
    • Panel de control vServer cloud
      • URC
      • vServer
      • Apache
      • SFTP
      • Usuarios
    • Copias de seguridad
    • Velneo cloud API
      • Uso de Velneo cloud API
    • Explorador de archivos cloud sFTP
    • TCP en Velneo cloud
    • Velneo vModApache en cloud
    • SLA
    • Hora de los servidores en el cloud de Velneo
    • ¿Qué puedo hacer si tengo una incidencia en mi servidor cloud?
Con tecnología de GitBook
En esta página
  • Añadiendo etiquetas de encabezados
  • Añadiendo líneas
  • Añadiendo campos al informe
  • Añadiendo un control texto html
  • Modo plantilla
  • Limitaciones
  • Añadiendo variables para totales
  • Añadiendo agrupamientos al detalle
  • Añadiendo campo de variable de totalización
  • Añadiendo otros elementos
  • Ajustando y dando formato
  • Probando el informe

¿Te fue útil?

  1. Velneo vDevelop
  2. Proyectos objetos y editores
  3. Objetos de proyecto de aplicación
  4. Informe personalizable

Añadiendo elementos al informe

Después de haber definido tanto el origen de datos como las opciones del informe, ahora podemos diseñarlo añadiendo elementos a las secciones.

Tanto en el menú insertar como en la toolbar del editor de informes encontraremos los distintos tipos de elemento que podemos incluir en el informe. Estos son:

Texto

Representa un texto simple o etiquetas de texto. Las etiquetas de texto son usadas para mostrar información descriptiva en la definición de un informe tales como títulos, encabezados, etc. Las etiquetas son elementos estáticos y sus contenido no cambia cuando se imprime el informe.

Campo

Representa los objetos de datos de campo. Los tipos de dato posibles son texto, numérico y fecha. Estos controles son usados para la extracción de datos generados dinámicamente en el informe desde la tabla de Velneo que lo alimente.

Línea

Permite crear líneas dentro del informe. Por lo general, las líneas son usadas para dibujar líneas horizontales y verticales en encabezados, subrayar títulos, etc.

Rectángulo

Permite crear figuras rectangulares en el informe. Es usado habitualmente para dibujar cajas o bordes alrededor de un área específica. Este control hace más fácil el pintado de rectángulos en lugar de hacerlo usando cuatro líneas.

Elipse

Permite crear círculos o elipses en el informe. Suelen usarse para dibujar gráficos o bordes alrededor de un texto.

Imagen

Permite crear elementos de tipo imagen. Suele usarse para incluir imágenes tanto estáticas como dinámicas en la definición de un informe. Las imágenes estáticas, tales como el logo de la empresa que a menudo son impresas en el encabezado de un informe, pueden ser alimentadas o bien por un archivo de imagen del disco, o bien por definición del informe. Las imágenes dinámicas estará alimentadas por campos de tipo objeto dibujo de tablas de Velneo.

Si la la imagen va a ser una imagen de una tabla de Velneo el control deberá estar alimentado directamente por un campo de tipo objeto dibujo, ejemplo: #IMG. No es posible usar una fórmula, ejemplo: choose(#CM=1, #IMG_1, #IMG_2).

Código de barras

Permite crear códigos de barras.

Los códigos soportadosson:

  • AUS POST

  • AUS REDIRECT

  • AUS REPLY

  • AUX ROUTE

  • AZRUNE

  • AZTEC

  • C25 IATA

  • C25 IND

  • C25 INTER

  • C25 LOGIC

  • C25 MATRIX

  • CHANNEL

  • CODABLOCK F

  • CODE 11

  • CODE 128B

  • CODE 39

  • CODE 93

  • CODE32

  • CODEONE

  • Codabar

  • Code 128

  • Code 16k

  • Code 49

  • DAFT

  • DATAMATRIX

  • DF Indent

  • DP Left

  • EAN 128

  • EAN 14

  • EAN 8, 13, 14, X

  • EAN128_CC

  • ENAX_CC

  • EXCODE 39

  • FIM

  • FLAT

  • GRIDMATRIX

  • HIBC_128

  • HIBC_39

  • HIBC_AZTEC

  • HIBC_BLOCKF

  • HIBC_DM

  • HIBC_MICPDF

  • HIBC_PDF

  • HIBC_QR

  • ISBNX

  • ITF M

  • JAPAN POST

  • KIX

  • KOREA POST

  • LOGMARS

  • MAXICODE

  • MICRO PDF 417

  • MICRO QR

  • MSI PLESSEY

  • NVE 18

  • ONE CODE

  • PDF 417

  • PDF 417 TRUNC

  • PHARMA

  • PHARMA TWO

  • PLANET

  • PLESSET

  • POSTNET

  • PZN

  • QR CODE

  • RM4 SCC

  • RSS 14

  • RSS 14 STACK

  • RSS 14 STACK OMNI

  • RSS EXP

  • RSS EXPSTACK

  • RSS LTD

  • RSS14STACK_CC

  • RSS14_CC

  • RSS14_OMNI_CC

  • RSS_EXPSTACK_CC

  • RSS_EXP_CC

  • RSS_LTD_CC

  • TELEPEN

  • TELEPEN NUM

  • UPC A

  • UPC E

  • UPCA_CC

  • UPCE_CC

Imagen personalizada

Esta opción le permite representar contenidos especiales, personalizados definidos en los informes. El campo típico de aplicación utiliza esta función para los gráficos de representación o contenidos similares.

Añadiendo etiquetas de encabezados

En primer lugar, añadamos las etiquetas que representen el encabezado de cada columna de las filas de datos. Para crear un nuevo objeto etiqueta, primero seleccionar la herramienta etiqueta del menú insertar. Al hacerlo el cursor se transformará en una cruz, entonces, hacer clic sobre la sección donde queramos incluirla (por ejemplo, en la sección de cabecera de informe). Haciendo esto crearemos el objeto etiqueta en esa sección y se abrirá el diálogo de configuración correspondiente. En él podremos definir las siguientes opciones:

Etiqueta

Escribir el texto de la etiqueta.

Ajuste de texto

Si esta opción está activada, el texto será ajustado para adaptarse a la caja que lo contenga.

Imprimir sólo si la fórmula script es verdadera

Se trata de una expresión lógica que nos permitirá definir cuándo será impresa o no. Veremos más adelante los detalles.

Añadir una etiqueta por cada campo de la tabla que deseemos imprimir.Podremos cambiar su situación dentro de la sección simplemente pinchando, arrastrando y soltando.

Para borrar una etiqueta, seleccionarla y pulsar la tecla alt y la tecla supr.

Añadiendo líneas

Para crear un nuevo objeto de línea seleccionar el comando línea del menú insertar o seleccionar el comando correspondiente de la toolbar. El cursor se transformará en una cruz, entonces, hacer clic en la sección del informe en la zona donde queramos que comience, pincharemos y arrastraremos hasta el zona donde queramos que termine. Para mover la línea añadida simplemente habrá que hacer clic sobre ella, arrastrar y soltar. Para borrar una línea, seleccionarla y pulsar el botón supr.

Para editar las propiedades de una línea simplemente hacer doble clic sobre la misma. Las siguientes opciones están disponibles:

Imprimir sólo si la fórmula script es verdadera

Se trata de una expresión lógica que nos permitirá definir cuándo será impresa o no. Veremos más adelante los detalles.

Añadiendo campos al informe

Ahora debemos añadir los elementos más importantes del informe. Los objetos de campo contienen información dinámica extraída de un origen de datos, un parámetro o una variable. Para crear un nuevo objeto campo seleccionar la opción del mismo nombre del menú insertar o el comando correspondiente de la toolbar. Al hacerlo, el cursor se transformará en una cruz. Hacer clic sobre la sección en la que queramos situar el campo. La sección será generalmente la de detalle. Haciendo esto crearemos el objeto campo en una sección específica en esa posición y abrirá el diálogo donde podremos establecer sus propiedades. Estas son:

Tipo de origen del campo

Este combo contiene los posibles orígenes de los cuales el campo puede obtener datos. Los datos del campo pueden ser cargados de los orígenes siguientes:

  • Origen de datos.

  • Parámetro.

  • Variable.

  • Variable de sistema.

  • Script.

  • Plantilla.

Campo/Expresión

Esta propiedad representa el nombre de la columna de datos de la cual el campo va a tomar la información (ejemplo: campo de tabla de Velneo). Cuando se usa como origen de datos una consulta SQL, el nombre se corresponderá con el nombre de la columna sql incluida en la consulta sql. Cuando se trata de otros orígenes de datos, tales como texto, este valor suele ser el número de la columna de datos. En el caso de que sea una tabla de Velneo, se activará el editor de fórmulas de Velneo para que podamos componer la fórmula que alimenta al campo.

Tipo de datos

El tipo de datos correspondiente al campo. Se soportan los siguientes tipos de datos:

  • Texto.

  • Numérico.

  • Fecha.

  • Booleano.

Ajuste de texto

Si esta opción está activada, el campo será ajustado para adaptarse a la caja que lo contenga.

Las opciones ajustar a la derecha y ajustar a la izquierda, podremos usarlas cuando la alineación horizontal del campo sea derecha o izquierda, respectivamente.

Si el campo está alineado a la derecha, éste será alineado al margen derecho del control, pero si también activamos la opción ajustar a la derecha lo que hará será ajustar el campo al margen derecho del informe.

Si el campo está alineado a la izquierda, éste será alineado al margen izquierdo del control, pero si también activamos la opción ajustar a la izquierda lo que hará será ajustar el campo al margen izquierdo del informe.

Cadena plantilla de argumentos arg()

Se trata de una expresión de tipo cadena con el símbolo %1 que será sustituido por el contenido establecido en el control. Supongamos que en un control de un informe mostramos el campo #NAME y en esta propiedad le establecemos la cadena plantilla de argumentos siguiente: A la atención de %1. Al imprimir el informe en este control se imprimiría:

A la atención de José Luis Díaz
A la atención de  Alfonso Gracía
etc.

Imprimir sólo si la fórmula script es verdadera

Se trata de una expresión lógica que nos permitirá definir cuándo será impresa o no. Veremos más adelante los detalles.

A continuación mostramos una tabla de fórmulas de columna de campo:

Tipo de origen de datos

Fórmula de columna de campo

Descripción

Origen de datos Velneo

Expresión fórmula Velneo

Mediante el asistente para edición de fórmulas de Velneo especificaremos el campo o definiremos la fórmula que se aplicará en ese campo.

Origen de datos

[ID del origen de datos.]Columna

La columna equivale a una nombre de columna SQL válido en la consulta SQL. Si el ID del origen de datos es especificado, el generador de informes asignará el origen de datos nombrado por su ID. Si no se especifica el ID del origen de datos, el origen de datos actual (el procesado en curso) se asume que lo hemos asociado previamente al detalle.

Parámetro

nombreParámetro

El nombre/ID del parámetro.

Variable del sistema

nombreVariable

El nombre/ID de la variable.

Expresión

Expresión

Plantilla

Expresión de plantilla

Una plantilla es simplemente una sustitución de elementos de un informe tales como los datos del origen de datos, parámetro o variable. Todos ellos unidos en una única cadena.

Algunas propiedades están disponibles solamente para determinados tipos de datos. Están localizadas en separadores independientes dentro del diálogo. Las siguientes opciones están disponibles para campos numéricos:

Formato numérico

Si se activa esta opción, se activará el formateo del número.

Usar configuración local

Si se activa esta opción, el generador de informes usará los formatos numéricos locales.

Vacío si valor igual a 0

Si se activa esta opción, el contenido del campo no se imprimirá en el caso de que su valor sea 0.

Precisión decimal

El número de decimales a imprimir.

Ancho del campo

Ancho del número en dígitos. Especifica la cantidad mínima de espacio que se rellena y llenado con el carácter de relleno.

Carácter de formato

En esta opción de un único dígito se especificará el código del formato para los números. Los valores posibles son: e, E, f. Con e, E y f, la precisión es el número de dígitos después del separador decimal. Con ‘g’ y ‘G’, la precisión es el número máximo de dígitos significativos. Usado por la función QString::arg( double a, int fieldWidth = 0, char format = ‘g’, int precision = -1, const QChar fillChar).

Para continuar nuestro informe, añadir los campos de la tabla de Velneo correspondientes a las etiquetas que hemos creado previamente.

Esta constante para fórmulas script es la que fuerza el salto de registro, para poder imprimir varios registros distintos en el mismo detalle. Este salto se produce por orden de tabulación, por lo que debemos asegurarnos de que, los elementos correspondientes al siguiente registro, se encuentren por detrás en el orden de tabulación al control que incluye la constante.

Debemos tener en cuenta que cuando usamos la condición @SKIP_NEXT para el salto de registro en el detalle y en la última línea, en el caso de que no se completen los registros, se repite el último registro en aquellas etiquetas que deberían quedar vacías al no tener más registros que imprimir.

Para evitar esto, usaremos la variable de sistema @ISNOTFINISHED como condición para imprimir; evitaremos que se impriman estas etiquetas de más, mejorando el resultado final del informe.

El ámbito de uso de la constante @skip_next se ciñe exclusivamente a su uso en la impresión de etiquetas (informes solamente con una sección de detalle y de altura fija).

Añadiendo un control texto html

A este tipo de control le podemos definir las propiedades alto automático y salto de página, que nos permitirán que el control crezca en altura en función de su contenido y que, si no entra entero en una página, se pueda imprimir en varias páginas, respectivamente.

Modo plantilla

En el controle HTML de un informe encontraremos el modo plantilla. Este nuevo modo permite definir contenido de textos que incluyen fórmulas. Podemos incluir fórmulas de Velneo o parámetros ($P{} ó $D{}).

En ejecución se realizará la sustitución del contenido de un control por el resultado de la fórmula del tipo $P{} ó $D{}. De esta forma obtenemos texto continuo que incluye valores dinámicos, permitiéndonos definir informes del tipo combinar correspondencia para cartas, u otros documentos personalizados.

Solamente podremos resolver fórmula que contengan un campo de Velneo, pero no fórmulas que realicen operaciones, concatenaciones o llamadas a funciones.

Limitaciones

Los contenidos html que cotienen elementos tales como tablas o viñetas pederán la configuración de tabla o las viñetas cuando su contenido ocupa más de una página. Solamente podremos hacer que se impriman correctamente si el informe está configurado del modo siguiente:

  • En la configuración del informe esté configurado como tipo de Informe el valor documento de texto.

  • El informe no tenga activada la opción de pasada doble.

  • Debe tener solamente un registro de origen, y en el detalle solamente se puede imprimir el campo html, no otros campos.

  • No puede tener más de un detalle.

  • Puede tener secciones de cabecera y pie de página.

Añadiendo variables para totales

Antes de añadir campos de variables al informe, veamos el manejo de variables en los informes personalizables. Las variables son unos elementos especiales usados para proveer contadores y totales. Cada variable tiene un nombre, un tipo de función, tipo de datos y tiene asignada una columna de fuente de datos. Para añadir una variable seleccionar la opción variables… del menú informes. Están disponibles las opciones siguientes:

ID de variable

Identificador de la variable.

Fórmula script de la variable

Esta propiedad representa el nombre de la columna de datos de la cual la variable obtendrá los datos. No es posible usar otras variables en la fórmula.

Tipo de función

El tipo de función de la variable. Los tipos de función soportados son:

  • Sum: la variable de tipo suma totalizará el valor en la columna de datos especificada retornada por el campo.

  • Count: el tipo de variable COUNT será incrementado en 1 unidad por cada fila del detalle.

Reinicializar

Nos permite configurar cuándo se podrá a 0 la variable. Podremos hacer que la variable sea puesta a 0 solamente al comienzo del informe, o en cada página en cada agrupamiento.

Valor inicial

Valor inicial que tendrá la variable.

Desde este diálogo podremos tanto añadir como editar y/o borrar variables de un informe.

Añadiendo agrupamientos al detalle

Mientras que la mayoría de los informes pueden ser definidos usando una única sección de detalle que contenga múltiples columnas y filas de datos, otros -como es el caso de nuestro informe de ejemplo- requieren datos de resumen, totales y subtotales. Para informes que requieren datos de resumen el editor de informes personalizables soporte las secciones de agrupamiento. Las secciones de agrupamiento tienen las características siguientes:

  • Siempre están asociadas a una sección de detalle.

  • Definidas por cabeceras de agrupamiento y pies de agrupamiento.

  • Las cabeceras de agrupamiento siempre se imprimen encima de la sección de detalle.

  • Los pies de agrupamiento siempre se imprimen debajo de la sección de detalle.

  • Referenciar las columnas de base de datos en las cuales se interrumpirán los encabezados y los pies de agrupamiento.

  • Fuerzan un nuevo encabezado de agrupamiento cada vez que el valor de la columna referenciada cambie.

  • Fuerzan un nuevo pie de agrupamiento cada vez que el valor de la columna referenciada cambie.

  • No hay limitación en el nivel de agrupamientos permitido.

El el diálogo de agrupamientos se muestran los grupos añadidos al informe en el orden en el que han sido creados. Las secciones de agrupamiento añadidas aparecerán en el editor después de haber aplicado la configuración de los agrupamientos. Los agrupamientos son estructurados jerárquicamente. El primer agrupamiento será el primer nivel de agrupamiento, el segundo será el segundo nivel y así sucesivamente.

Para añadir un nuevo grupo al detalle, abrir el menú informe y seleccionar la opción detalle y agrupamientos… En la lista seleccionar el detalle deseado, entonces, para abrir el diálogo de agrupamientos hacer clic en el botón agrupamientos. Esto abrirá el diálogo de configuración de agrupamientos. El agrupamiento pertenecerá al grupo que hayamos seleccionado en la ventana anterior. Para añadir un nuevo agrupamiento hacer clic en el botón +. Podremos configurar las opciones siguientes:

ID de agrupamiento

El identificador del agrupamiento.

Fórmula script del agrupamiento

El nombre de la columna del origen de datos en la que se basa el cálculo. Si cambiamos el valor de la columna referenciada, el agrupamiento se interrumpirá. También podemos usar como fórmula valores constantes tales como 0 o 1. En ese caso el agrupamiento no se interrumpirá, simplemente finalizará. Esto podría ser muy útil para campos totalizadores finales.

Cabecera del agrupamiento y pie del agrupamiento

Para habilitar o inhabilitar la cabecera o el pie del agrupamiento. Podremos especificar también la altura inicial de estas secciones.

Salto de página

En esta sección podemos configurar si queremos que el agrupamiento siempre se imprima en una página.

En el caso de que vayamos a usar las variables del sistema pageno (número de página en curso) y pagecount (número total de páginas), podremos activar la opción de resetear número de pagina por agrupamiento para que la primera página de cada agrupamiento comience siempre a numerarse desde 1.

Reiniciar variables

Esta lista contiene los nombres de las variables que están disponibles para ser reinicializadas al finalizar los agrupamientos. Por lo tanto, solamente estarán visibles aquellas variables que tengan establecido algún valor en la opción reinicializar.

Los grupos añadidos a un detalle aparecerán en la lista de agrupamientos. Desde dicha lista podremos tanto añadir, como editar y/o borrar grupos.

Añadiendo campo de variable de totalización

Si ya tenemos definido un agrupamiento con encabezado y pie. los pies de agrupamiento generalmente son secciones usadas para mostrar totales y subtotales. Añadiremos un campo al pie del informe con los parámetros siguientes:

Tipo de origen de datos

Variable.

campo

Especificaremos el identificador que hayamos dado a la variable y tipo de datos: numérico.

Añadiendo otros elementos

A continuación enumeramos otras cosas que podríamos añadir:

Añadir un campo en el pie de página:

Tipo de origen de datos

Variable del sistema

Campo

pageno.

Tipo de dato

Numérico.

Cadena plantilla de argumentos arg()

Página: %1.

pageno es una variable del sistema que devuelve el número de la página en curso.

Ajustando y dando formato

Para terminar el informe vamos a dar formato y a ajustar los elementos. Estas son las tareas que se deberían hacer:

Ajustar la altura de las secciones haciendo uso del ratón o a través del editor de geometría. Es muy importante la altura del detalle, ya que es una sección de carácter repetitivo.

Seleccionar las etiquetas en la cabecera de la página y poner la fuente en negrita.

Seleccionar y alinear a la derecha todos los campos numéricos.

Establecer las opciones de formato para campos numéricos: activar la opción formato numérico y establecer una precisión de 2 decimales.

Activar también la opción usar configuración local para campos con valores y totales.

Probando el informe

Dispones de una serie de comandos de instrucción que te permiten elegir la salida de la impresión:

Informe externo: previsualizar informe: para previsualizar el informe. Informe externo: imprimir informe: para imprimir el informe.

Por lo tanto, necesitaremos programar un proceso que haga la vista previa o la salida a papel del informe y ejecutarlo desde Velneo vClient. El origen de la línea donde se vaya a imprimir el informe tendrá que ser una lista de registros del origen principal del informe.

Última actualización hace 3 años

¿Te fue útil?

Este control puede estar alimentado, o bien por una de Velneo, o bien por una expresión de tipo script, de forma que podemos definir el contenido no sólo por medio de un valor o un campo, sino también mediante un script que se calcula en el momento de imprimir.

Es posible usar incluso un script con la expresión para el campo. Tanto los datos como el origen de datos, parámetros y variables pueden ser usados en las expresiones. Para ampliar información sobre las expresiones consultar el capítulo .

Para su uso en etiquetas existe la constante @SKIP_NEXT. Debemos usarlo en un control (usado sólo para esto) como condición de visualización, en la fórmula script. No obstante, existe una .

Se trata del control que debemos usar para imprimir .

fórmula
forma más sencilla de generar informes de etiquetas
usando expresiones
campos de tipo objeto texto enriquecido