Documentación de Velneo
25
25
  • Introducción
  • Velneo
    • ¿Qué es 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 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
    • Inspectores
    • Proyectos objetos y editores
      • Objeto
      • De proyecto de datos
        • Indice complejo
        • Tabla
          • Actualización
          • Campo
          • Enlace
          • Indice
          • Plural
          • Traspaso de campo
          • Trigger
        • Tabla estática
        • Variable
      • 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
          • Fichas de extensión
        • 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
        • Rejilla
          • Propiedades de columna
        • Rejilla avanzada
        • Toolbar
        • ViewFlow
        • Sub-objetos de vistas de datos
          • Conexión de evento
          • Drop
          • Inserción
          • Manejador de evento
      • 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
          • 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
        • 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 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
        • 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
            • 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
        • 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?
        • Formularios
          • Condiciones de visible y activo
          • Carga de subformularios en pestaña, caja o pila
        • 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 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 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
      • 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 Velneo vServer
    • Funcionalidades
      • Protocolo VATP
      • Protocolo VATPS
      • Multi-hilo
      • Integridad referencial
      • Refrescos terciarios
      • Sistema transaccional
      • Sistema de bloqueos
      • Tecnología bigkey
      • Hilo de control
    • 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 del 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 grabación de fichas
      • Tutor de gráficos
      • Tutor de impresión de informes
      • Tutor de lupas
      • Tutor de protocolo TCP/IP
    • 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 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
  • Contenido
  • Campos (grupo de comandos)
  • ¿Ha cambiado el campo?
  • ¿Ya existe en alguno de sus índices de clave única?
  • ¿Ya existe en el índice?
  • Calcula campos dependientes
  • Comprobar fórmula dinámica
  • Exportar binario
  • Exportar dibujo
  • Exportar texto
  • Get atributos de dibujo
  • Get campo
  • Importar binario
  • Importar dibujo
  • Importar texto
  • Limpiar campo objeto
  • Modificar campo
  • Modificar campo solamente

¿Te fue útil?

  1. Velneo vDevelop
  2. Proyectos objetos y editores
  3. Comunes a proyecto de datos y de aplicación
  4. Proceso
  5. Comandos de base de datos

Campos (grupo de comandos)

Última actualización hace 4 años

¿Te fue útil?

Contenido

Campos (grupo de comandos)

¿Ha cambiado el campo?

Comando de instrucción del grupo Ficha y campos que comprueba si ha cambiado o no un campo determinado de una ficha de una tabla.

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

Destino del subproceso: ninguno.

Parámetros

Identificador del campo

Identificador del campo a comprobar.

Identificador de variable local booleana de retorno de ok

Variable local de tipo booleano que recogerá si el campo ha cambiado (1) o no (0).

Funcionalidad

Este comando devuelve en una variable local booleana si el campo seleccionado ha cambiado (1) o no (0).

Comentarios

La variable local booleana de retorno podrá ser tanto una ya existente como una nueva.

Este comando compara el contenido que tiene el campo en memoria con contenido que tenía al abrir la ficha.

Si se trata de un alta de ficha, detectará que ha habido cambios si el campo a evaluar no está vacío.

Si se trata de una modificación, la comparación se hará con el valor que tenga ese campo en disco.

Ejemplo

Mostrar mensaje de que 'No es posible cambiar la fecha' cuando el campo FECHA ha cambiado de valor.

¿Ha cambiado el campo? ( FECHA, HA_CAMBIADO )
If ( HA_CAMBIADO )
    Mensaje ( "No es posible cambiar la fecha", Información, 10, "Aviso" )

¿Ya existe en alguno de sus índices de clave única?

Comando de instrucción del grupo Ficha y campos, que partiendo de una ficha de una tabla comprueba si existe alguna duplicidad en cualquier índice de clave única declarado en la misma.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de variable local booleana de retorno de ok

Identificador de variable local alfabética de retorno del mensaje

Variable local de tipo alfabético donde se retornará, en caso de existir duplicidad, la lista de índices por los que existe.

Funcionalidad

Partiendo de una ficha de una tabla comprueba si existe alguna duplicidad en cualquier índice de clave única declarado en la misma, devolviendo en una Variable local si se ha encontrado o no duplicidad y devolviendo en otra la lista de los índices de clave única por los que se ha detectado duplicidad.

Comentarios

Las variables locales de retorno podrán ser tanto unas declaradas previamente como nuevas.

Será el propio sistema quien se encargue de componer la clave adecuada a cada índice de clave única de la tabla en base al contenido de la ficha en curso.

Ejemplo

Comprobamos si existe alguna duplicidad en los índices de clave única de los campos del registro en curso mostrando un mensaje indicando el índice duplicado.

¿Ya existe en alguno de sus índices de clave única? ( EXISTE, MENSAJE )
If ( EXISTE )
    Mensaje ( "Registro existente en el índice : " + MENSAJE, Información, 10, "Aviso" )
    Set retorno proceso = NO

¿Ya existe en el índice?

Comando de instrucción del grupo Ficha y campos que permite comprobar si en un índice de clave única existe una clave concreta.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de índice

Identificador del índice de clave única a consultar.

Identificador de variable local booleana de retorno de ok

Variable local de tipo booleano en la que se guardará si la clave ya existe (1) o no (0).

Funcionalidad

Esta comando de instrucción devuelve, en una variable local del proceso, el resultado de comprobar si en el índice de clave única identificado ya existe la clave actual.

Comentarios

El comando compondrá la clave adecuada al índice en el que se realiza la consulta en base al contenido de la ficha en curso. El programador no tiene que ocuparse de ello.

Cuando se da de alta o se modifica un registro a través de un formulario el sistema, antes de grabar la ficha, comprobará que no se produzca duplicidad de clave en todos los índices de clave única de la tabla; pero en altas a través de proceso el sistema solamente comprueba la clave primaria, es decir, el ID, el campo clave de la tabla. En ese caso, sería recomendable para evitar errores de integridad, comprobar el resto de los índices de clave única en los eventos de tabla previos al alta y a la modificación de la ficha por medio de este comando. En los eventos, para cancelar el alta o la modificación de la ficha en caso de producirse una duplicidad de clave se usará el comando de instrucción Set retorno proceso = NO.

La variable local de retorno deberá ser de tipo booleano y podrá ser tanto una declarada previamente como una nueva.

Ejemplo

Comprobamos si en la tabla de abreviaturas ya existe en el índice IDENTIFICADOR el valor del campo identificador que estamos dando de alta en el formulario. Cancelando el alta del registro usando la instrucción Set retorno de proceso = No.

¿Ya existe en el índice? ( IDENTIFICADOR, EXISTE )
If ( EXISTE )
    Mensaje ( "El identificador ya existe", Información, 10, "Aviso" )
    Set retorno proceso = NO

Calcula campos dependientes

Comando de instrucción del grupo Ficha y campos que fuerza el recálculo de todos los contenidos iniciales de una ficha.

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

Destino del subproceso: ninguno.

Parámetros

No tiene.

Funcionalidad

Comentarios

Tiene sentido utilizarlo solamente si hemos usado previamente en el proceso el comando modificar campo solamente ya que si usamos el comando modificar campo ya implica el cálculo de campos dependientes.

Ejemplo

Cargamos las líneas de pedidos de la tabla LIN_G modificando el campo CNT (Cantidad) multiplicándolo por 2, calculando los campos dependientes al final de la modificación forzando el cálculo de campos con contenidos iniciales.

Cargar lista ( LIN_G@ejemplo_dat, ID, , , ,  )
    Recorrer lista lectura/escritura
        Modificar campo solamente ( CNT, #CNT * 2 )
        Calcula campos dependientes

Comprobar fórmula dinámica

Comando de instrucción del grupo Ficha y campos que permite verificar si la fórmula escrita por un usuario en un campo de tipo fórmula dinámica tiene o no errores de sintaxis.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Campo de tipo fórmula dinámica que se desea verificar.

Identificador de variable local booleana de retorno ok

Variable local del proceso, de tipo booleano, donde se retornará si la fórmula contiene o no errores.

Identificador de variable local alfabética de retorno de mensaje de error

Variable local del proceso, de tipo alfabético, donde se atrapará el mensaje de error.

Funcionalidad

Verificar si la fórmula escrita por un usuario en un campo de tipo fórmula dinámica tiene o no errores de sintaxis y, en caso de tenerlos, captura el mensaje descriptivo del error.

Comentarios

Si la variable de retorno ok devuelve un 1 querrá decir que la fórmula no contiene errores de sintaxis y un 0 si los contiene. En caso de contener errores de sintaxis, el mensaje del error será almacenado en la variable local alfabética de retorno de mensaje de error.

Las variables podrán ser variables locales del proceso declaradas previamente o pueden ser nuevas.

Ejemplo

Si incluimos en la tabla PED_G (Pedidos) un campo de tipo objeto fórmula, podremos en el formulario de edición correspondiente a través de un control de edición fórmula comprobar si el contenido que estamos poniendo como fórmula es correcto o no.

En las instrucciones del ejemplo se evalúa el campo FORMULA_DINAMICA y se informa mediante un mensaje si es correcta o incorrecta la fórmula.

Comprobar fórmula dinámica ( FORMULA_DINAMICA, CORRECTA, MENSAJE )
If ( CORRECTA )
    Mensaje ( "La fórmula es correcta", Información, 10, "Aviso" )
Else
    Mensaje ( "La fórmula es incorrecta", Información, 10, "Aviso" )

Exportar binario

Comando de instrucción del grupo Ficha y campos que extrae un archivo almacenado en un campo de tipo objeto binario y lo exporta a disco.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Fórmula senda

Expresión de tipo fórmula con la especificación de la vía de acceso al fichero donde se va a exportar el contenido del campo.

Identificador de variable local booleana de retorno ok

Funcionalidad

Extrae un archivo almacenado en un campo de tipo objeto binario y lo exporta a disco.

Comentarios

La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).

Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/documento.doc”.

La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.

Ejemplo

En la tabla CLT_T (Clientes) disponemos de un campo de tipo objeto binario para poder incorporar en él algún tipo de fichero, podemos exportar su contenido a disco para que sea ejecutado por el programa encargado de ejecutar los ficheros según la extensión del mismo por el sistema operativo.

En este ejemplo se exporta el contenido del campo objeto binario DOCUMENTO a la caché del cliente con el texto 'Documento' seguido del número de registro de la tabla. En caso de ser exportado de forma incorrecta se muestra el mensaje correspondiente y, en el caso contrario es ejecutado el documento.

Exportar binario ( DOCUMENTO, sysCacheClientPath + "Documento" + #ID + ".pdf", EXPORTADO )
If ( ! EXPORTADO )
    Mensaje ( "Error en la exportación", Información, 10, "Error" )
Else
    Ejecutar documento ( "file:///" + sysCacheClientPath + "Documento" + #ID + ".pdf",  )

Exportar dibujo

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Campo de la tabla en curso de tipo objeto dibujo que se desea exportar.

Fórmula senda

Expresión de tipo fórmula con la especificación de la vía de acceso al fichero donde se va a exportar el contenido del campo.

Identificador de variable local booleana de retorno ok

Variable local del proceso donde se retornará si el campo ha sido exportado (1) o no (0).

Funcionalidad

Extrae una imagen almacenada en un campo de tipo objeto dibujo y la exporta a disco, retornando en una variable local del proceso si el archivo ha sido o no generado.

Comentarios

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

La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).

Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/img.png”.

Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.

Si bien en Velneo las imágenes internamente son guardadas en formato jpg, se podrá exportar en los formatos siguientes:

  • bmp (Windows bitmap)

  • jpeg/jpg (Joint Photographic Experts Group)

  • pbm (Portable Bitmap Format)

  • pgm (Portable Graymap Format)

  • png (Portable Network Graphics)

  • ppm (Portable Pixmap Format)

La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.

Ejemplo

En la tabla CLT_T (Clientes) disponemos de un campo de tipo objeto dibujo donde podemos incorporar una foto.

En este ejemplo se exporta el contenido del campo objeto dibujo IMG a la caché del cliente con el texto 'Foto' seguido del numero de registro de la tabla. En caso de ser exportado de forma incorrecta se muestra el mensaje correspondiente y, en el caso contrario es ejecutado el documento.

Exportar dibujo ( IMG, sysCacheClientPath + "Foto" + #ID + ".jpg", EXPORTADO )
If ( ! EXPORTADO )
    Mensaje ( "Error en la exportación", Información, 10, "Error" )
Else
    Ejecutar documento ( "file:///" + sysCacheClientPath + "Foto" + #ID + ".jpg",  )

Exportar texto

Comando de instrucción del grupo Ficha y campos que exporta a disco el contenido de un campo de tipo objeto texto u objeto texto enriquecido.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Campo de la tabla en curso campo de tipo objeto texto u objeto texto enriquecido que se desea exportar.

Fórmula senda

Expresión de tipo fórmula con la especificación de la vía de acceso al fichero donde se va a exportar el contenido del campo.

Identificador de variable local booleana de retorno ok

Variable local del proceso donde se retornará si el campo ha sido exportado (1) o no (0).

Funcionalidad

Comentarios

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

La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).

Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/texto.txt”.

Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.

Si el campo a exportar es de tipo texto el contenido del campo será exportado como texto plano; si es de tipo texto enriquecido, lo exportará a html.

La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.

Nota

El texto será exportado usando el codec del sistema operativo donde se ejecute el proceso. Por ejemplo, si es Windows, lo exportará en formato ANSI.

Ejemplo

En este ejemplo se exporta el contenido del campo objeto texto OBS a la caché del cliente con el texto 'Observaciones' seguido del numero de registro de la tabla. En caso de ser exportado de forma incorrecta se muestra el mensaje correspondiente y, en el caso contrario es ejecutado el documento.

Exportar texto ( OBS, sysCacheClientPath + "Observaciones" + #ID + ".txt", EXPORTADO )
If ( ! EXPORTADO )
    Mensaje ( "Error en la exportación", Información, 10, "Error" )
Else
    Ejecutar documento ( "file:///" + sysCacheClientPath + "Observaciones" + #ID +".txt",  )

Get atributos de dibujo

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo objeto dibujo

Identificador de un campo de tipo objeto dibujo de la tabla de origen de la línea del proceso. Se abrirá una lista desplegable que solamente mostrará los campos de este tipo que existan en la tabla origen de la línea del proceso.

Identificador de variable local numérica de retorno de dimensión x en píxels

Variable local del proceso, de tipo numérico, donde se retornará el ancho de la imagen en píxels.

Identificador de variable local numérica de retorno de dimensión y en píxels

Variable local del proceso, de tipo numérico, donde se retornará la altura de la imagen en píxels.

Identificador de variable local numérica de retorno de tamaño en bytes

Variable local del proceso, de tipo numérico, donde se retornará el tamaño de la imagen en bytes.

Funcionalidad

Este comando devuelve los atributos (alto, ancho y tamaño) de una imagen almacenada en un campo de tipo objeto dibujo de un registro de una tabla.

Comentarios

Las variables locales de retorno de sus parámetros podrán ser tanto variables ya declaradas previamente como nuevas.

Las imágenes internamente son almacenadas con compresión JPG al 100% de calidad.

Ejemplo

Mostramos los atributos del campo IMG (Foto) de la tabla indicando sus atributos mediante mensajes mostrando los contenidos de las variables locales PIXELS_X, PIXELS_Y, y TAMAÑO.

Get atributos de dibujo ( IMG, PIXELS_X, PIXELS_Y, TAMAÑO )
Mensaje ( "Atributos dibujo =>  Pixels X: " + PIXELS_X , Información, ,  )
Mensaje ( "Atributos dibujo =>   Pixels Y: " + PIXELS_Y , Información, ,  )
Mensaje ( "Atributos dibujo =>  Tamaño: " + TAMAÑO + " en bytes", Información, ,  )

Get campo

Comando de instrucción del grupo Ficha y campos que permite obtener el contenido de un campo de la ficha en curso y guardarlo en una variable local del proceso.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Identificador del campo cuyo contenido queremos obtener.

Identificador de variable local de retorno

Identificador de la variable donde se retornará el contenido del campo.

Funcionalidad

Permite obtener el contenido de un campo de la ficha en curso y guardarlo en una variable local del proceso.

Comentarios

La variable de retorno podrá ser tanto una declarada previamente en el proceso como una nueva. Si la creamos nueva el sistema la creará de tipo alfabético.

Para leer el contenido de un campo también podríamos usar el comando Set, la diferencia entre usar uno y otro radica solamente en el caso de que el campo a leer sea de tipo fórmula dinámica; Set devolverá el resultado de la fórmula y Get campo devolverá la fórmula.

Ejemplo

Leemos el contenido del campo NAME de la tabla en curso de clientes, guardamos su contenido en la variable local NOMBRE y mostramos su contenido mediante un mensaje.

Get campo ( NAME, NOMBRE )
Mensaje ( "Nombre del cliente: " + NOMBRE, Información, 30, "Nombres de campos" )

Importar binario

Comando de instrucción del grupo Ficha y campos que permite importar cualquier tipo de archivo en un campo de tipo objeto binario.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Campo de la tabla en curso de tipo objeto binario en el que se desea importar el fichero.

Fórmula senda

Expresión de tipo fórmula con la especificación de la vía de acceso al fichero a importar. Para facilitar la especificación de la fórmula de la senda podremos hacer uso del asistente para edición de fórmulas.

Identificador de variable local booleana de retorno ok

Variable local del proceso donde se retornará si el campo ha sido importado (1) o no (0).

Funcionalidad

Importa un archivo indicado en sus parámetros en un campo de tipo objeto binario de la tabla en curso.

Comentarios

La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).

Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/documento.doc”.

Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.

Si es el usuario final quien ha de seleccionar el fichero a importar, podremos hacer uso del comando de instrucción Ventana de selección de fichero.

La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.

Ejemplo

Seleccionamos el fichero que deseamos importar como DOCUMENTO en el campo DOCUMENTO de la tabla y lo importamos con 'Importar binario'.

Usamos la variable local IMP_OK para comprobar que el fichero se importó al campo de forma correcta.

Ventana de selección de fichero ( SENDA_FICHERO, SEL_OK, "*.*", homePath() )
Importar binario ( DOCUMENTO, SENDA_FICHERO, IMP_OK )
If ( ! IMP_OK )
    Mensaje ( "No se importó el fichero", Información, ,  )
    Finalizar proceso

Importar dibujo

Origen de la instrucción: ficha de la tabla en curso. Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Campo de la tabla en curso de tipo objeto dibujo en el que se desea importar la imagen.

Fórmula senda

Expresión de tipo fórmula con la especificación de la vía de acceso al fichero a importar.

Identificador de variable local booleana de retorno ok

Variable local del proceso donde se retornará si el fichero ha sido importado (1) o no (0).

Funcionalidad

Importa un fichero de tipo imagen en disco en un campo de tipo objeto dibujo, retornando en una variable local del proceso si el archivo ha sido o no importado.

Comentarios

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

La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).

Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/img.png”.

Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.

Si es el usuario quien ha de indicar el archivo a importar podremos hacer uso del comando Ventana de selección de fichero.

La imagen importada, sea del tipo que sea, internamente será guardada como jpg. Se podrán importar imágenes de los formatos siguientes:

  • bmp (Windows bitmap)

  • gif (Graphics Interchange Format)

  • jpeg/jpg (Joint Photographic Experts Group)

  • pbm (Portable Bitmap Format)

  • pgm (Portable Graymap Format)

  • png (Portable Network Graphics)

  • ppm (Portable Pixmap Format)

La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.

Ejemplo

Importamos el fichero dibujo.png al campo IMG dejando el resultado de la importación en la variable IMP_OK.

Set ( DIBUJO, "C:\dibujo.png" )
Importar dibujo ( IMG, DIBUJO, IMP_OK )

Importar texto

Comando de instrucción del grupo Ficha y campos que importa el contenido de un fichero de texto en un campo de tipo objeto texto u objeto texto enriquecido.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Campo de la tabla en curso de tipo objeto texto u objeto texto enriquecido en el que se desea importar el archivo de texto.

Fórmula senda

Expresión de tipo fórmula con la especificación de la vía de acceso al fichero a importar.

Identificador de variable local booleana de retorno ok

Variable local del proceso donde se retornará si el archivo ha sido importado (1) o no (0).

Funcionalidad

Importa un archivo de texto en un campo de tipo objeto texto u objeto texto enriquecido, retornando en una variable local del proceso si el archivo ha sido o no importado.

Comentarios

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

La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).

Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/texto.txt”.

Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.

Si el campo de destino es de tipo texto el fichero de texto a importar deberá ser contener texto plano; si es de tipo texto enriquecido, el archivo de texto a importar podrá tener tanto formato de texto plano como formato html.

Si ha de ser el usuario final quien deba indicar el fichero a importar, podremos hacer uso del comando Ventana de selección de fichero.

La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.

Ejemplo

Seleccionamos el fichero que deseamos importar como TEXTO en el campo OBS de la tabla y lo importamos con 'Importar texto'.

Usamos la variable local SEL_OK para comprobar si se seleccionó algún fichero partiendo de la ruta homPath().

Usamos la variable local IMP_OK para comprobar que el fichero se importó al campo de forma correcta.

En caso de no haber seleccionado de forma correcta el fichero o en caso de no haber sido posible la importación del fichero, se muestra un mensaje y posteriormente se finaliza el proceso.

Ventana de selección de fichero ( SENDA_FICHERO, SEL_OK, "*.*", homePath() )
If ( ! SEL_OK )
    Mensaje ( "Canceló la selección de fichero", Información, ,  )
    Finalizar proceso
Importar texto ( OBS, SENDA_FICHERO, IMP_OK )
If ( ! IMP_OK )
    Mensaje ( "No se importó el fichero", Información, ,  )
    Finalizar proceso

Limpiar campo objeto

Comando de instrucción del grupo Ficha y campos que limpia el contenido de un campo de tipo objeto.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo objeto

Identificador del campo de tipo objeto a limpiar.

Funcionalidad

Este comando de instrucción limpia el contenido de un campo de tipo objeto, es decir, lo borra del contenedor y en el campo elimina la referencia al mismo, pero no borra el registro.

Comentarios

Hay que tener en cuenta que los campos de tipo objeto son almacenados en un contenedor aparte de los datos. El nombre de este fichero será el mismo de la tabla y con la extensión CND. En el fichero de datos lo que se guarda es la dirección donde está el objeto en el contenedor.

Aunque los campos objeto se almacenan en el contenedor y no en el fichero de datos, si borramos el registro, el sistema borrará también en el contenedor los campos objeto del mismo. No será necesario que lo hagamos nosotros.

Ejemplo

Limpiamos los contenidos de distintos tipos de campos de la tabla en curso.

Rem ( Limpiamos el contenido del campo OBS de tipo objeto texto )
Limpiar campo objeto ( OBS )
Rem ( Limpiamos el contenido del campo DOCUMENTO de tipo objeto binario )
Limpiar campo objeto ( DOCUMENTO )
Rem ( Limpiamos el contenido del campo IMG de tipo objeto imagen )
Limpiar campo objeto ( IMG )

Modificar campo

Comando de instrucción del grupo Ficha y campos que modifica el contenido de un campo y dispara el recálculo de los contenidos iniciales dependientes del mismo.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Identificador del campo cuyo contenido se desea modificar.

Fórmula de dato

Establece el nuevo contenido del campo. Se trata de una expresión de tipo fórmula.

Funcionalidad

Modifica el contenido del campo indicado en el primer parámetro, con el resultado de la fórmula establecida en el segundo parámetro y dispara los contenidos iniciales que dependan del mismo.

Comentarios

En un proceso, para que el nuevo valor del campo sea guardado en disco, la ficha deberá haber sido abierta previamente en modo lectura/escritura, por ejemplo, mediante el uso de comandos del tipo Modificar ficha seleccionada, Recorrer lista lectura/escritura, etc.

Para facilitar la creación de la fórmula del segundo parámetro podremos hacer uso del asistente para edición de fórmulas.

Ejemplo

Modificamos todos los registros de las lineas de pedidos de la tabla (LIN_G) modificando el campo booleano SRV (Servido) a 1.

Cargar lista ( LIN_G@ejemplo_dat, ID, , , ,  )
    Recorrer lista lectura/escritura
        Modificar campo ( SRV, 1)

Modificar campo solamente

Comando de instrucción del grupo Ficha y campos que modifica el contenido de un campo sin disparar contenidos iniciales dependientes.

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

Destino del subproceso: ninguno.

Parámetros

Identificador de campo

Identificador del campo cuyo contenido se desea modificar.

Fórmula de dato

Establece el nuevo contenido del campo. Se trata de una expresión de tipo fórmula.

Funcionalidad

Modifica el contenido del campo indicado en el primer parámetro, con el resultado de la fórmula establecida en el segundo parámetro y no dispara contenidos iniciales que dependan del mismo.

Comentarios

Este comando no genera transacción por sí mismo; esto quiere decir que el uso de este comando modifica el contenido del campo pero no graba el cambio en disco.

En un proceso, para que el nuevo valor del campo sea guardado en disco, la ficha deberá haber sido abierta previamente en modo lectura/escritura, por ejemplo, mediante el uso de comandos del tipo Modificar ficha seleccionada, Recorrer lista lectura/escritura, etc.

Para facilitar la creación de la fórmula del segundo parámetro podremos hacer uso del asistente para edición de fórmulas.

Si queremos dejar vacío el contenido de un campo de tipo fecha, en la fórmula escribiremos: "".

Este comando no desencadenará el recálculo de contenidos iniciales de campos dependientes (ver el capítulo dedicado a los campos.

Este comando es muy aconsejable, por ejemplo, en la importación masiva de registros, en las que habitualmente todos los campos son asignados en la importación, no siendo necesario, por tanto, forzar el recálculo de contenidos iniciales; lo que mejorará notablemente los tiempos de ejecución de los procesos.

Nota

Ejemplo

Cargamos las líneas de pedidos de la tabla LIN_G modificando los campos y calculando los campos dependientes al final de la modificación forzando el cálculo de campos con contenidos iniciales.

Cargar lista ( LIN_G@ejemplo_dat, ID, , , ,  )
    Recorrer lista lectura/escritura
        Modificar campo solamente ( CNT, #CNT * 2 )
        Modificar campo solamente ( PRE, 2575 )
        Modificar campo solamente ( SRV, 1 )
        Modificar campo solamente ( CNT_COL, "4" )
        Calcula campos dependientes

Grupo de comandos de Bases de datos que nos permiten interactuar con

de tipo booleano en la que se retornará si hay duplicidad por algún índice de clave única (1) o no (0).

Debemos saber que cuando se da de alta o se modifica un registro a través de un formulario el sistema, antes de grabar la ficha, comprobará que no se produzca duplicidad de clave en todos los índices de clave única de la tabla; pero en altas realizadas a través de el sistema solamente comprobará la clave primaria, es decir, el ID, el campo clave de la tabla. En ese caso, sería recomendable para evitar errores de integridad, comprobar el resto de los índices de clave única en los eventos de tabla previos al alta y a la modificación de la ficha por medio de este comando.

En los eventos, para cancelar el alta o la modificación de la ficha en caso de producirse una duplicidad de clave se usará el comando de instrucción .

Fuerza el recálculo de los contenidos iniciales de aquellos campos de una ficha que usan otros campos, pero no contenidos iniciales que no usen campos, por ejemplo, que usen únicamente una , una , una , etc.

Si en un proceso queremos tener acceso a la fórmula contenida en un campo de tipo fórmula dinámica y no al resultado de la misma usaremos el comando de instrucción de proceso .

Campo de la tabla en curso de tipo que se desea exportar.

del proceso donde se retornará si el campo ha sido exportado (1) o no (0).

Para facilitar la especificación de la fórmula de la senda podremos hacer uso del .

Para la especificación de la senda podremos hacer uso de de fórmula de directorios tales como homePath, rootPath o tempPath.

Comando de instrucción del grupo Ficha y campos que exporta a disco una imagen almacenada en un campo de tipo

Genera un fichero en disco a partir del contenido de un campo de tipo objeto texto u objeto texto enriquecido, retornando en una del proceso si el archivo ha sido o no generado.

Comando de instrucción del grupo Ficha y campos que permite obtener los atributos de una imagen almacenada en un de tipo objeto dibujo de un registro de una tabla.

Comando de instrucción del grupo Ficha y campos que importa un archivo de tipo imagen en un campo de tipo .

Este comando no genera por sí mismo; esto quiere decir que el uso de este comando modifica el contenido del campo pero no graba el cambio en disco.

Podremos usar este comando para limpiar el contenido de un campo. Si se trata de campos alfabéticos o de tipo fecha, en la fórmula escribiremos: "". En numéricos, un 0 y si se trata de campos objeto, entonces no usaremos este comando sino el comando .

Este comando desencadenará el recálculo de contenidos iniciales de campos dependientes, tal y como se explica en el capítulo dedicado a los campos. Esto es muy importante tenerlo en cuenta a la hora de programar procesos que importación masiva de registros o de transacciones que en las que se vaya a realizar una modificación masiva de fichas, en cuyo caso podría usarse el comando de instrucción ya que no dispara el recálculo de contenidos iniciales dependientes.

En el caso de que en el proceso nos interese disparar los contenidos iniciales dependientes, entonces podremos hacer uso del campo

Este comando de instrucción de proceso no es funcional para campos de tipo objeto texto u objeto texto enriquecido. Estos deberán ser gestionados con el comando de instrucción de proceso

campos.
Variable local
proceso
Set retorno proceso = NO
función
constante
variable
objeto binario
Variable local
asistente para edición de fórmulas
funciones
objeto dibujo.
variable local
campo
objeto dibujo
¿Ha cambiado el campo?
¿Ya existe en alguno de sus índices de clave única?
¿Ya existe en el índice?
Calcula campos dependientes
Comprobar fórmula dinámica
Exportar binario
Exportar dibujo
Exportar texto
Get atributos de dibujo
Get campo
Importar binario
Importar dibujo
Importar texto
Limpiar campo objeto
Modificar campo
Modificar campo solamente
Get campo
limpiar campo objeto
modificar campo solamente;
calcula campos dependientes.
modificar campo.
transacción