Formularios dinámicos son formularios cuyas estructuras se definen en un archivo .json o en un objeto 4D. Se regeneran cada vez que se ejecutan y ofrecen un nivel superior de flexibilidad. Algunas ventajas notables incluyen:
Usabilidad
actualizaciones sencillas
modificaciones dinámicas del usuario
fácil reutilización
búsqueda más rápida
Portabilidad
intercambio simplificado
puede ser almacenado en control de fuente
Cada objeto definido en un formulario dinámico, incluido el formulario en sí, tiene una o más propiedades. Consulte Directorio de páginas para ver rápidamente sus descripciones.
cumplir con el esquema JSON. El esquema de formulario JSON 4D se puede encontrar en la carpeta del programa 4D: Resources/formsSchema.json. Es su responsabilidad verificar la validez del archivo de formulario .json. Ver el comando JSON Validate.
estar en archivos con una extensión de archivo ".json".
almacenarse dentro del paquete de la aplicación, relativo al archivo de estructura.
Notas:
Los comentarios dentro de los archivos .json deben estar dentro de la propiedad "comentarios". Los caracteres de codificación estándar para comentarios (es decir, "//", "/ *", "'", etc.) renderizarán el archivo inválido.
Los arrays en JSON actúan como las colecciones en 4D.
Todas las rutas de archivos pueden ser relativas o absolutas. Deben utilizar '/' como delimitador de ruta y se resuelven de la siguiente manera:
Una ruta relativa no debe comenzar por '/'. Se resuelve relativamente al documento JSON donde se ha encontrado la cadena de ruta,
Una ruta absoluta comienza con '/'. Por razones de seguridad, solo se acepta "/RESOURCES" como ruta absoluta y se designa la carpeta de recursos de la base actual. Por ejemplo, "/RESOURCES/templates/myfile.json" apunta al archivo "myfile.json" ubicado en la carpeta de recursos de la base actual.
Notas:
La resolución del nombre es sensible a mayúsculas y minúsculas
4D no resuelve una ruta a un archivo .json ubicado en la red (a partir de "http/https").
Si la ruta es incorrecta o el archivo no es válido por el esquema JSON, se generará un error.
Los formularios dinámicos pueden contener punteros JSON. Los punteros JSON se resuelven automáticamente cuando llama uno de los comandos 4D que aceptan un formulario dinámico como parámetro (ruta del archivo .json u objeto 4D):
Nombre (cadena) de tabla o formulario de proyecto O una ruta POSIX (cadena) a un archivo .json que describe el formulario O un objeto que describe el formulario
formulario
inheritedFormTable
tabla
Designa la tabla que usará un formulario heredado.
Ruta(s) del archivo CSS ofrecido como una cadena, una colección de cadenas, o una colección de objetos con propiedades "path" y "media"
form
entryOrder
colección
Colección de nombres de objetos de formulario que definen el orden de entrada (el orden en el que los objetos de formulario se resaltan secuencialmente cuando el usuario presiona Tab o Ctrl/Cmd+Tab. Si esta propiedad no está definida, se utiliza el orden de entrada predeterminado (basado en el orden de definición de objeto para la página).
Los marcadores especifican ubicaciones precisas en la regla vertical del formulario. Usados principalmente en formularios de salida, controlan la información listada y establecen áreas de encabezado, ruptura, detalle y pie de página de un formulario.
Propiedad
Tipo
Descripción
Valores posibles
Objetos soportados
markerBody
entero
El área entre la línea de control 1 del encabezado del formulario y la línea de ruptura del formulario
mínimo: 0
formulario
markerBreak
entero/array entero
Designa áreas para mostrar información que no forma parte de los registros, o líneas/elementos gráficos que concluyen la visualización de la pantalla.
mínimo: 0
formulario
markerFooter
entero
El área entre la línea Ruptura de formulario 1 y la línea Pie de formulario
mínimo: 0
formulario
markerHeader
enter/array entero
El área sobre la línea 1 del encabezado del formulario.
texto, rectángulo, área de grupo, pestaña, línea, botón, casilla de selección, botón radio, lista desplegable, combo box, área Web, área 4D Write Pro, subformulario, plug-in, separador, rejilla de botones, termómetro, regla, indicador de progreso asíncrono (spinner), stepper, lista, botón imagen, popup menu imagen, list box, área de entrada (input), View Pro
False para especificar un objeto invisible pero activo
TRUE / FALSE
botón, menú desplegrable
class
cadena
Nombre CSS
Una lista de palabras separadas por espacios utilizadas como un selector de clase en archivos css
texto, rectángulo, área de grupo, pestaña, línea, botón, casilla de selección, botón radio, lista desplegable, combo box, área web, Write Pro, subformulario, plugin, separador, rejilla de botones, termómetro, regla, indicador de progresión asíncrono (spinner), stepper, lista, botón imagen, Popup menú imagen, list box, área de entrada(input), View Pro
Un subformulario es un formulario incluido en otro formulario.
Propiedad
Tipo
Descripción
Valores posibles
Objetos soportados
deletableInList
booleano
Especifica si el usuario puede eliminar los subregistros en un subformulario lista.
TRUE / FALSE
subformulario
detailForm
cadena
Nombre de un formulario detallado existente.
Nombre (cadena) de tabla o formulario proyecto O una ruta POSIX (cadena) a un archivo .json que describe el formulario O un objeto que describe el formulario
subformulario, list box
doubleClickInEmptyAreaAction
cadena
Acción a realizar en caso de hacer doble clic en una línea vacía de un subformulario.
"addSubrecord"
subformulario
doubleClickInRowAction
cadena
Acción a realizar en caso de hacer doble clic en un registro de subformulario.
"editSubrecord", "displaySubrecord"
subformulario, list box
enterableInList
booleano
Especifica si el usuario puede modificar los datos del registro directamente en la lista, sin tener que utilizar el formulario detallado asociado
TRUE / FALSE
subformulario
listForm
cadena
Un subformulario listado existente donde puede introducir, ver y modificar datos en otras tablas.
Nombre (cadena) de tabla o formulario proyecto O una ruta POSIX (cadena) a un archivo .json que describe el formulario O un objeto que describe el formulario
subformulario
selectionMode
cadena
Designa las opciones para permitir a los usuarios seleccionar registros.
Para llamar a un evento, ingrese el título del evento en la propiedad "events" en cameLlúsculas, entre corchetes, rodeado de comillas y con la primera letra de la primera palabra en minúsculas (por ejemplo, "events": ["onLoad"], "events": [1]).
Propiedad
Tipo
Descripción
Valores posibles
Objetos soportados
events
String array or number array
The event(s) to listen for in order to trigger an action.
Cuando un objeto separador tiene esta propiedad, otros objetos a la derecha (vertical) o debajo (separador horizontal) se presionan al mismo tiempo que el separador, sin detenerse.
Permite agregar automáticamente un valor a una lista almacenada en la memoria cuando un usuario ingresa un valor que no se encuentra en la lista de opciones asociada con el objeto.
TRUE / FALSE
combo, columna de list box
choiceList
lista
Asocia una lista de opciones con una columna de un list box.
varía
input, dropdown, combo, columna de list box
currentItemSource
cadena
El último elemento seleccionado.
Expresión de objeto
list box
currentItemPositionSource
cadena
Posición del último elemento seleccionado.
Expresión de número
list box
dataSource
cadena, o array cadena para columna de listbox jerárquica
Especifica la fuente de datos.
Una variable 4D, nombre de campo o una expresión de lenguaje compleja arbitraria.
tab, input, button, checkbox, radio, dropdown, combo, write, subform, plugin, splitter, buttonGrid, progress, ruler, spinner, stepper, list, pictureButton, picturePopup, list box column, list box header, list box footer, list box, view
dataSourceTypeHint
cadena
Se usa como una sugerencia para escribir una variable asociada automática cuando fuendeDatos no se especifica o para elegir la propiedad de formato de visualización apropiada (textFormat, numberFormat, timeFormat, dateFormat, pictureFormat, booleanFormat).
Controla la forma en que aparecen las fechas cuando se muestran o imprimen. Solo se debe seleccionar entre los formatos integrados 4D.
"systemShort", "systemMedium", "systemLong", "iso8601", "rfc822", "short", "shortCentury", "abbreviated", "long", "blankIfNull" (se puede combinar con los otros valores posibles)
input, list box column, dropdown, combo, list box footer
numberFormat
cadena
Controla la forma en que aparecen los números cuando se muestran o imprimen.
Números (incluido un punto decimal o signo menos si es necesario)
input, dropdown, combo, ruler, progress, list box column, list box footer
pictureFormat
cadena
Controla cómo aparecen las imágenes cuando se muestran o se imprimen.
input, combo, dropdown, list box column, list box footer
timeFormat
cadena
Controla el modo en que las horas aparecen cuando se muestran o se imprimen. Solo se debe seleccionar entre los formatos integrados 4D.
"systemShort", "systemMedium", "systemLong", "iso8601", "hh_mm_ss", "hh_mm", "hh_mm_am", "mm_ss", "HH_MM_SS", "HH_MM", "MM_SS", "blankIfNull" (se puede combinar con los otros valores posibles)
input, dropdown, list box column, list box footer
truncateMode
cadena
Controla la visualización de valores cuando las columnas del list box son demasiado angostas para mostrar su contenido completo.
"withEllipsis"; "none"
columna de list box, pie de list box
visibility
cadena
Permite ocultar el objeto en el entorno de la aplicación.
Permite configurar una lista cuyos valores no pueden ingresarse en la columna. Si se ingresa un valor excluido, no se acepta y se muestra un mensaje de error.
varia
input, combo, list box column
max
cadena/ número
El valor máximo permitido. Para los paso a paso numéricos, estas propiedades representan segundos cuando el objeto está asociado con un valor de tipo tiempo y se ignoran cuando se asocia con un valor de tipo fecha.
varia
input, progress, ruler, stepper
min
cadena/ número
El valor mínimo permitido. Para los paso a paso numéricos, estas propiedades representan segundos cuando el objeto está asociado con un valor de tipo de tiempo y se ignoran cuando se asocia con un valor de tipo de fecha.
varia
input, progress, ruler, stepper
requiredList
list
Permite configurar una lista donde solo se pueden insertar estos valores. Cuando se define una lista requerida, la entrada del teclado ya no es posible.
Similar a un botón estándar excepto que tiene una apariencia modificada, con la intención de indicar la opción recomendada para el usuario.
TRUE / FALSE
botón
dpi
cadena
Define la resolución de la pantalla para los contenidos del área 4D Write Pro.
0, 72, 96
write
hideFocusRing
booleano
Durante la ejecución, un campo de selección o cualquier objeto editable se delimita mediante un rectángulo de selección cuando tiene el foco. Puede ocultar este rectángulo con esta opción.
TRUE / FALSE
input, Write Pro, subform, list, list box
hideSystemHighlight
booleano
Esta propiedad se agrega solo para list boxes de tipos de selección. Se usa para especificar la ocultación de los registros resaltados en el list box.
TRUE / FALSE
list box
labelsPlacement
cadena
Especifica la ubicación del texto que se muestra en un objeto.
"none", "top", "bottom", "left", "right"
tab, progress indicators, ruler
layoutMode
cadena
Define el modo para mostrar el documento 4D Write Pro en el área del formulario.
"embedded, "draft", "page"
Write Pro
scrollbarHorizontal
cadena
Una herramienta que permite al usuario mover el área de visualización hacia la izquierda o hacia la derecha.
"visible", "hidden", "automatic"
input, Write Pro, subform, list, listbox
scrollbarVertical
cadena
Una herramienta que permite al usuario mover el área de visualización hacia arriba y hacia abajo.
"visible", "hidden", "automatic"
input, Write Pro, subform, list, listbox
showBackground
booleano
Muestra/oculta las imágenes de fondo y el color de fondo (se muestran de forma predeterminada).
TRUE / FALSE
Write Pro
showHeaders
booleano
Activa o desactiva la visibilidad del documento o de los encabezados de columna del list box.
TRUE / FALSE
Write Pro, list box
showHiddenChars
booleano
Muestra/oculta caracteres invisibles (ocultos por defecto).
TRUE / FALSE
Write Pro
showHorizontalRuler
booleano
Muestra/oculta la regla horizontal (mostrados por defecto).
TRUE / FALSE
Write Pro
showVerticalRuler
booleano
Muestra/oculta la regla vertical (mostrados por defecto).
TRUE / FALSE
Write Pro
showHTMLWysiwyg
booleano
Activa/desactiva la vista HTML WYSIWYG, en la que se eliminan todos los atributos avanzados de 4D Write Pro que no son compatibles con todos los navegadores (desactivado de forma predeterminada).
TRUE / FALSE
Write Pro
showFooters
booleano
Activa o desactiva la visibilidad del documento o pies de página de la columna list box.
TRUE / FALSE
Write Pro, list box
showPageFrames
booleano
Muestra/oculta el marco de página cuando el modo de vista de página está configurado en "Página". Por defecto está oculto.
TRUE / FALSE
Write Pro
showReferences
booleano
Muestra todas las expresiones 4D insertadas en el documento como referencias.
TRUE / FALSE
Write Pro
userInterface
string
Displays/hides 4D View Pro user interface.
"ribbon", "toolbar", "none" (default value)
View Pro
withFormulaBar
booleano
Muestra/oculta la barra de fórmulas 4D View Pro. Para utilizar con la interfaz Toolbar únicamente.
TRUE / FALSE (valor por defecto)
View Pro
zoom
string
Define el porcentaje de zoom para mostrar los contenidos del área 4D Write Pro. El valor por defecto es 100%.
Permite ciclar a través del contenido del botón de imagen a la velocidad especificada (en tics).
mínimo: 0
pictureButton
loopBackToFirstFrame
booleano
Las imágenes se muestran en un bucle continuo.
TRUE / FALSE
pictureButton
switchBackWhenReleased
booleano
Muestra la primera imagen todo el tiempo, excepto cuando el usuario hace clic en el botón. Muestra la segunda imagen hasta que se suelta el botón del ratón.
TRUE / FALSE
pictureButton
switchContinuously
booleano
Permite al usuario mantener presionado el botón del ratón para mostrar las imágenes continuamente (es decir, como una animación).
TRUE / FALSE
pictureButton
switchWhenRollover
booleano
Modifica el contenido del botón de imagen cuando el cursor del ratón pasa sobre él. La imagen inicial se muestra cuando el cursor abandona el área del botón.
TRUE / FALSE
pictureButton
useLastFrameAsDisabled
booleano
Permite configurar la última miniatura como la que se mostrará cuando el botón esté desactivado.
Permite modificar la ubicación relativa del título en relación con el objeto asociado. No tiene efecto si el objeto contiene solo un título (sin imagen asociada) o una imagen (sin título).
"left", "right", "top", "bottom", "center"
button, ckeckbox, radio
threeState
booleano
Permite un objeto casilla de selección para aceptar un tercer estado.
Intervalo mínimo aceptado entre los valores durante el uso. Para los botón paso a paso numéricos, esta propiedad representa los segundos cuando el objeto está asociado con un valor de tipo de tiempo y días cuando está asociado con un valor de tipo de fecha.
varia
indicadores de progreso, regla, botón paso a paso
showGraduations
booleano
Muestra/Oculta las graduaciones junto a las etiquetas.
Contiene los atributos para las columnas del list box.
varia
list box
highlightSet
cadena
Se utiliza para especificar el conjunto que se utilizará para administrar los registros resaltados en el list box (cuando se selecciona la fuente de datos Arrays, se usa un array booleano con el mismo nombre que el list box).
varia
list box
lockedColumnCount
entero
Número de columnas que deben permanecer permanentemente en la parte izquierda del list box, incluso cuando el usuario se desplaza horizontalmente por las columnas.
horizontally.
mínimo: 0
list box
staticColumnCount
entero
Número de columnas que no se pueden mover durante la ejecución.
Se usa para mostrar u ocultar los pies de página de la columna. Esta propiedad es booleana para los list boxes y un objeto para las columnas del list box.
TRUE / FALSE
write, list box
showHeaders
booleano
Se usa para mostrar u ocultar encabezados de columna. Esta propiedad es booleana para los list boxes y un objeto para las columnas del list box.
Propiedades específicas del plug-in, pasadas al plugin como una cadena JSON si es un objeto, o como un búfer binario si es una cadena codificada de base64
Instancia un objeto JavaScript especial ($4d) para administrar las llamadas a los métodos de proyecto 4D. Se debe usar con la propiedad webEngine.
"all", "none"
Área web
progressSource
cadena
Un valor entre 0 y 100, que representa el porcentaje de finalización de carga de la página en el área web. Actualizada automáticamente por 4D, no se puede modificar manualmente.
varia
Área web
urlSource
cadena
Designa la URL cargada o en proceso de carga por el área web asociada.
varía
Área web
webEngine
cadena
Se usa para elegir entre dos motores de renderizado para el área web, dependiendo de los detalles de la aplicación.