4D v16.3

Subformularios lista

Inicio

 
4D v16.3
Subformularios lista

Subformularios lista  


 

 

Un subformulario lista es un formulario de otra tabla que se muestra en un formulario de entrada. Un subformulario permite introducir, ver y modificar datos en otras tablas. Los subformularios generalmente se utilizan en bases de datos que utilizan relaciones Uno a Muchos. 

Un subformulario lista muestra los registros de la tabla Muchos relacionada por una relación automática de tipo 1 a muchos. Puede tener varios subformularios de diferentes tablas en el mismo formulario. Sin embargo, no es posible ubicar dos subformularios que pertenezcan a la misma tabla en la misma página del formulario.

Por ejemplo, una base de gestión de contactos puede utilizar una instancia de subformulario lista para mostrar todos los números telefónicos de un contacto particular. Aunque los números telefónicos aparecen en la pantalla Contactos, la información se guarda realmente en una tabla relacionada. Utilizando una relación Uno a Muchos, este diseño de base de datos facilita el almacenamiento de un número ilimitado de números telefónicos por contacto. Las relaciones automáticas, permiten la entrada de datos directamente en la tabla Muchos relacionada sin programación.

Aunque los subformularios generalmente se asocian a tablas Muchos, un subformulario puede mostrar los registros de cualquier otra tabla de la base de datos.

Puede crear un subformulario utilizando el asistente de creación de formularios o añadir un nuevo subformulario al formulario existente utilizando el editor de formularios. Debe crear de antemano el formulario listado que quiere utilizar como subformulario.

Los subformularios lista pueden utilizarse para la entrada de datos de dos formas: el usuario puede introducir datos directamente en el subformulario o introducirlos en un formulario de entrada asociado. En esta configuración, el formulario utilizado como subformulario se llama formulario listado. El formulario de entrada se llama formulario detallado.

Puede permitirle al usuario introducir datos en el formulario listado:

Para definir un formulario lista, debe crear y configurar el subformulario a utilizar en un formulario padre. Para mayor información sobre los formularios lista, consulte el capítulo Formularios de salida e informes

En el formulario padre, cree un objeto de tipo subformulario utilizando la herramienta Subformulario de la barra de objetos (variación del último botón). 

Nota: puede igualmente efectuar un arrastrar y soltar desde la Página Formularios del Explorador.

En la Lista de propiedades (tema “Subformulario”), asegúrese de seleccionar la opción Subformulario lista y seleccione la tabla fuente en el menú Fuente así como también el Formulario listado a utilizar.

En el formulario padre, puede redimensionar y reposicionar el contenedor del subformulario como lo prefiera.

Puede añadir los botones personalizados para controlar la entrada de datos en un subformulario. Puede utilizarse todo tipo de botón: estándar, invertido o invisible.

Es posible definir la acción de estos botones por programación (ver Entrada de datos) o utilizando las Acciones estándar

4D ofrece tres acciones estándar para responder a las necesidades básicas para la gestión de subregistros: Editar subregistro, Eliminar subregistro y Añadir subregistro. Cuando el formulario incluye varios subformularios, la acción aplica al formulario que tiene el foco.

Para mayor información sobre la adición de estos botones y sus acciones automáticas asociadas, consulte Botones y Acciones estándar.

Puede definir varias propiedades específicas relativas a los subformularios lista. Estas propiedades permiten controlar diferentes automatismos de funcionamiento y las acciones autorizadas a los usuarios (modos de selección y de entrada).

Estas propiedades se destinan principalmente al uso con los subformularios en página. Consulte la sección Subformularios en página.

Fuente  

Esta propiedad permite definir el tipo de fuente para el subformulario. Para los subformularios lista, elija la tabla a la que pertenece el subformulario.

Esta opción permite asociar un formulario detallado a un subformulario lista. El formulario detallado puede utilizarse para introducir o visualizar subregistros. Generalmente contiene más información que el subformulario. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Generalmente usted utiliza un formulario de salida como formulario listado y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la página de entrada, 4D utiliza automáticamente el formato de entrada por defecto de la tabla.

Dependiendo de la configuración del subformulario, el usuario puede mostrar el formulario detallado haciendo doble clic en un subregistro o utilizando los comandos para añadir y modificar los subregistros.

Nota: puede asociar un formulario detallado a un subformulario lista presionando la tecla Mayús y arrastrando el formulario detallado desde el Explorador al subformulario.

Puede redimensionar el área del subformulario en el formulario como prefiera, al igual que cualquier otro objeto del formulario.
Igualmente puede dejar que 4D defina automáticamente el ancho del subformulario de manera que se muestren todos los campos que contenga. Para hacer esto, marque la opción Ancho automático en las propiedades del objeto.

Nota: cuando crea un área de subformulario arrastrando un formulario directamente del Explorador, 4D define automáticamente el ancho del subformulario.

Los subformularios pueden tener tres modos de selección: Ninguno, Sencillo y Múltiple.

  • Ninguno
    Los registros no pueden seleccionarse si este modo está seleccionado. Un clic en la lista no tiene efecto a menos que la opción Editable en lista esté seleccionada. Las teclas de navegación sólo hacen que la lista se desplace; no se genera el evento de formulario On Selection Change
  • Sencillo
    En este modo sólo puede seleccionarse un registro a la vez. Un clic en un registro lo selecciona y se convierte en el registro actual. La combinación Ctrl+clic (Windows) o Comando+clic (Mac OS) en un registro cambia su estado (entre seleccionado o no).
    Las teclas de flecha Arriba y Abajo seleccionan el registro anterior/ siguiente de la lista. Las otras teclas de navegación desplazan la lista. El evento de formulario On Selection Change se genera cada vez que el registro actual cambia.
  • Múltiple
    Varios registros pueden seleccionarse simultáneamente en este modo. Los subregistros seleccionados son devueltos por el comando GET HIGHLIGHTED RECORDS. Al hacer clic en el registro se selecciona, pero no se modifica el registro actual. La combinación de teclas Ctrl+clic (Windows) o Comando+clic (Mac OS) en un registro cambia su estado (seleccionado o no). Las combinaciones Ctrl+clic (Windows) o Comando+clic (Mac OS) y Mayús+clic le permiten hacer selecciones múltiples. Las teclas de flecha Arriba y Abajo seleccionan el registro anterior/ siguiente de la lista. Las otras teclas de navegación desplazan la lista. El evento de formulario On Selection Change se genera cada vez que cambia el registro seleccionado.

Cuando un subformulario es Editable en lista, el usuario puede modificar los datos de los subregistros directamente en la lista, sin tener que utilizar el formulario detallado asociado. Para hacer esto, simplemente haga clic dos veces en el campo a modificar para pasar al modo edición (asegúrese de dejar tiempo suficiente entre los dos clics para no generar un doble clic).

Por defecto, este modo se activa para todos los subformularios lista:

Cuando esta opción no está seleccionada, la entrada pasa obligatoriamente por el formulario detallado asociado.

Puede definir los parámetros de funcionamiento de los subformularios en respuesta a un doble clic del usuario. En bases de datos creadas con una versión anterior de 4D, puede definir la respuesta en caso de doble clic en una línea vacía (opción de compatibilidad).

  • Doble-clic en una línea: acción a realizar en caso de un doble clic en un registro de subformulario. Las siguientes opciones están disponibles:
    • No hacer nada: ignorar el doble clic.
    • Modificar registro: cambiar el registro de subformulario a modo edición. La modificación se efectúa directamente en la lista si la opción “Editable en lista” está seleccionada. De otra forma, se efectuará en modo página, en el formulario detallado asociado al subformulario.
    • Mostrar registro: muestra los datos del registro en modo página en el formulario detallado asociado con el subformulario (sólo lectura).
  • Doble clic en una línea vacía: acción a realizar en caso de doble clic en una línea vacía de un subformulario. Las siguientes opciones están disponibles:
    • No hacer nada: ignorar el doble clic.
    • Añadir registro: crear un nuevo registro en el subformulario y pasar a modo edición. El registro se creará directamente en la lista si la opción “Editable en lista” está seleccionada. De lo contrario, se creará en modo página, en el formulario detallado asociado con el subformulario.

Por defecto, el usuario puede borrar subregistros en un subformulario lista utilizando la tecla Supr o Retroceso.

Esto puede afectar la operación estándar de la interfaz de ciertas aplicaciones (basadas por ejemplo en botones), puede evitar esto utilizando la opción Permitir supresión.

Cuando esta opción no está seleccionada, el usuario no puede borrar los subregistros utilizando las teclas de eliminación del teclado.

Una instancia de subformulario puede tener la propiedad Accesible (tema “Entrada”). Cuando una instancia de subformulario tiene el foco, el usuario puede controlar con las teclas de navegación, utilizando el comando de menú Seleccionar todo (si la selección es multilíneas), etc. 

Cuando un subformulario recibe o pierde el foco, el método formulario del formulario padre se llama utilizando los eventos On getting focus u On losing focus. En este caso, el comando OBJECT Get pointer (o el comando Focus object) devuelve un puntero a la tabla del subformulario.

Como para todos los objetos accesibles, la propiedad Ocultar rectángulo de foco permite no representar gráficamente el foco.

Como puede haber varios registros que el área de subformulario no puede mantener, 4D ofrece tres opciones (tema “Impresión”) para controlar la impresión de los registros de subformularios:

  • Variable (opción por defecto)
    Si selecciona esta opción, 4D extiende o reduce el área del subformulario para imprimir todos los subregistros.
  • Fijo (Truncamiento)
    Si selecciona esta opción, 4D sólo imprime los subregistros que aparecen en el área del subformulario. El formulario sólo se imprime una vez y se ignoran los registros no impresos.
  • Fijo (Múltiples registros)
    Si selecciona esta opción, el tamaño inicial del área del subformulario se conserva pero 4D imprime el formulario varias veces con el fin de imprimir todos los registros.
    Notas:
    • No puede poner objetos a los lados de un objeto contenedor de subformulario. Los objetos ubicados a los lados del contenedor se repetirán para cada línea del subformulario.
    • No puede imprimir más de un subformulario de la misma tabla en la misma página del formulario.
    • Los comandos Print object y Print form no son compatibles con las opciones de impresión de tamaño variable.
    • La opción de impresión en tamaño variable puede definirse por programación utilizando el comando OBJECT SET PRINT VARIABLE FRAME.
    • Para mayor información sobre la impresión de objetos de tamaño variable, consulte [#title id="8521"/].



Ver también 

Subformularios en página

 
PROPIEDADES 

Producto: 4D
Tema: Subformularios y widgets

 
HISTORIA 

 
ARTICLE USAGE

Manual de Diseño ( 4D v16)
Manual de Diseño ( 4D v16.1)
Manual de Diseño ( 4D v16.3)