Campos (grupo de comandos)

Contenido

¿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

Campos (grupo de comandos)

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

¿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

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

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.

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 proceso 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 Set retorno proceso = NO.

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

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 función, una constante, una variable, etc.

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.

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 Get campo.

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

Campo de la tabla en curso de tipo objeto binario 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 un archivo almacenado en un campo de tipo objeto binario y lo exporta a disco.

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/documento.doc”.

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

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

Comando de instrucción del grupo Ficha y campos que exporta a disco una imagen almacenada en un campo de tipo objeto 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

Genera un fichero en disco a partir del contenido de un campo de tipo objeto texto u objeto texto enriquecido, 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/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

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

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

Comando de instrucción del grupo Ficha y campos que importa un archivo de tipo imagen en un campo de tipo objeto 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

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.

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 limpiar campo objeto.

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 modificar campo solamente; ya que no dispara el recálculo de contenidos iniciales dependientes.

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.

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

Nota

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 modificar campo.

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

Última actualización