Formularios
Los formularios ofrecen la interfaz a través de la cual se introduce, modifica e imprime la información en una aplicación de escritorio. Los usuarios interactúan con los datos de una base de datos mediante formularios e imprimen informes utilizando formularios. Los formularios pueden utilizarse para crear cajas de diálogo personalizadas, paletas o toda ventana personalizada.
Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades:
Creación de formularios
Puede añadir o modificar formularios 4D utilizando los siguientes elementos:
- La interfaz 4D Developer: cree nuevos formularios desde el menú Archivo o la ventana del Explorador.
- El editor de formularios: modifique sus formularios utilizando el editor de formularios.
- El código JSON: cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la ubicación adecuada. Ejemplo:
{
"windowTitle": "Hello World",
"windowMinWidth": 220,
"windowMinHeight": 80,
"method": "HWexample",
"pages": [
null,
{
"objects": {
"text": {
"type": "text",
"text": "Hello World!",
"textAlign": "center",
"left": 50,
"top": 120,
"width": 120,
"height": 80
},
"image": {
"type": "picture",
"pictureFormat": "scaled",
"picture": "/RESOURCES/Images/HW.png",
"alignment":"center",
"left": 70,
"top": 20,
"width":75,
"height":75
},
"button": {
"type": "button",
"text": "OK",
"action": "Cancel",
"left": 60,
"top": 160,
"width": 100,
"height": 20
}
}
}
]
}
Formulario proyecto y formulario tabla
Hay dos categorías de formularios:
-
Los formularios de proyecto - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo.
-
Los formularios tablas - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados.
Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después.
Páginas formulario
Cada formulario consta de al menos dos páginas:
- una página 1: una página principal, mostrada por defecto
- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas.
Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente:
- Coloque la información más importante en la primera página y la menos importante en otras.
- Organice cada tema en su propia página.
- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el orden de entrada.
- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo.
Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera.
No hay restricciones en el número de páginas que puede tener un formulario. El mismo campo puede aparecer un número ilimitado de veces en un formulario y en todas las páginas que desee. Sin embargo, cuantas más páginas tenga un formulario, más tiempo tardará en mostrarse.
Un formulario multipáginas tiene una página de fondo y varias páginas de visualización. Los objetos que se colocan en la página de fondo pueden ser visibles en todas las páginas de visualización, pero sólo se pueden seleccionar y editar en la página de fondo. En los formularios multipágina, debe colocar su paleta de botones en la página de fondo. También es necesario incluir uno o más objetos en la página de fondo que ofrezcan las herramientas de navegación para el usuario.
Fluent UI rendering (Developer Preview)
On Windows, 4D supports Fluent UI form rendering, Microsoft's modern graphical user interface design, based upon WinUI 3 technology. WinUI 3 is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces.
Fluent UI support is currently in the Developer Preview phase. No debe utilizarse en producción.
This feature can only be used on Windows. On macOS, it is ignored.
Fluent UI rendering availability
The Fluent UI rendering is available in the following execution environments only:
- Windows with Windows App SDK version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms).
- Fusionado aplicación 4D autónomo o cliente
- Test application feature available from the Run menu.
If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error.
Enabling the Fluent UI rendering
You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting.
Application setting
Check the Use Fluent UI on Windows option in the "Interface" page of the Settings dialog box.
In this case, the Fluent UI rendering mode will be used by default on Windows for all forms.
Form setting
Each form can define its own rendering via the Widget appearance property. Las siguientes opciones están disponibles:
- Inherited: inherits the global application setting (default),
- Classic: uses the classic Windows style,
- Fluent UI: enables the modern rendering based on Fluent UI.
The corresponding JSON form property is fluentUI
with value undefined (i.e. inherited, default value), "true" or "false".
Features and limitations
Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications.
When using 4D forms with Fluent UI rendering, you need to pay attention to the following points:
- The
FORM Window theme
command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If
GET STYLE SHEET INFO
is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the global project settings. SET MENU ITEM STYLE
withUnderline
itemStyle parameter is not supported (ignored) for pop up menus.- A focus ring can be added to picture and text inputs.
- Stepper form object does not support double-click event.
- Circle buttons are supported (similar as macOS).
- The
WA ZOOM IN
/WA ZOOM OUT
commands are not supported in Web areas with system rendering engine.
Formularios heredados
Los formularios 4D pueden utilizar y ser utilizados como "formularios heredados", lo que significa que todos los objetos de Formulario A pueden ser utilizados en Formulario B. En este caso, Formulario B "hereda" los objetos de Formulario A.
Las referencias a un formulario heredado están siempre activas: si se modifica un elemento de un formulario heredado (estilos de botón, por ejemplo), se modificarán automáticamente todos los formularios que utilicen este elemento.
Todos los formularios (formularios tabla y formularios proyecto) pueden ser designados como un formulario heredado. Sin embargo, los elementos que contienen deben ser compatibles con el uso en diferentes tablas de la base de datos.
Cuando se ejecuta un formulario, los objetos se cargan y combinan en el siguiente orden:
- Página cero del formulario heredado
- Página 1 del formulario heredado
- Página cero del formulario abierto
- Página actual del formulario abierto.
Este orden determina el orden de entrada de los objetos en el formulario.
Sólo las páginas 0 y 1 del formulario heredado pueden aparecer en otros formularios.
Las propiedades y el método de un formulario no se tienen en cuenta cuando ese formulario se utiliza como formulario heredado. Por otro lado, se llaman los métodos de los objetos que contiene.
Para definir un formulario heredado, el nombre del formulario heredado y la Tabla de formularios heredada (para el formulario tabla) las propiedades deben definirse en la forma que heredará algo de otro formulario.
Un formulario puede heredar de un formulario proyecto, definiendo la propiedad Inherited Form Table en \<None>
en la Lista de propiedades (o " " en JSON).
Para dejar de heredar un formulario, seleccione \<None>
en la lista de propiedades (o " " en JSON) para la propiedad Inherited Form Name.
Es posible definir un formulario heredado en un formulario que eventualmente se utilizará como formulario heredado para un tercer formulario. La combinación de objetos se realiza de forma recursiva. 4D detecta los bucles recursivos (por ejemplo, si el formulario [table1]form1 se define como el formulario heredado de [table1]form1, es decir, él mismo) e interrumpe la cadena de formularios.
Propiedades soportadas
Barra de menú asociada - Altura fija - Ancho fijo - Divisor de formulario - Detalle de formulario - Pie de formulario - Encabezado de formulario - Nombre de formulario - Tipo de formulario - Nombre de formulario heredado - Tabla de formulario heredado - Altura máxima - Ancho máximo - Método - Altura mínima - Ancho mínimo - Páginas - Configuración de impresión - Publicado como subformulario - Guardar geometría - Título de ventana