Saltar al contenido principal
Versión: 20 R5 BETA

Interfaz 4D Write Pro

4D WritePro Interface ofrece un conjunto de paletas, que permiten a los usuarios finales personalizar fácilmente un documento 4D Write Pro.

Un desarrollador 4D puede implementar fácilmente estas paletas en su aplicación. Así, los usuarios finales pueden gestionar todas las propiedades de 4D Write Pro, como las fuentes, la alineación del texto, los marcadores, la disposición de las tablas y los marcos.

La documentación principal de la interfaz de 4D Write Pro se encuentra en el manual Diseño 4D.

A continuación encontrará la documentación de configuración del Asistente para tablas.

Asistente de tablas

El asistente de tablas está aquí para simplificar aún más la creación de tablas basadas en datos de bases d utilizando contextos, fuentes de datos y fórmulas.

El asistente de tablas, accesible a los usuarios finales, carga plantillas suministradas y configuradas por los desarrolladores de 4D. Esto permite a los desarrolladores personalizar la plantilla según los casos de uso específicos y los requisitos empresariales de los usuarios.

El Asistente de tablas viene con plantillas y temas predeterminados, que los desarrolladores pueden configurar para adaptar su contenido a los requisitos específicos de la aplicación.

Para implementar el Asistente de tablas en su aplicación, los desarrolladores pueden crear y configurar archivos de plantilla.

Interfaz del Asistente de tablas WP

El usuario abre el diálogo Asistente para tablas desde el elemento de menú "Insertar tabla" de la barra de herramientas y la barra lateral de la interfaz de 4D Write Pro.

Desde esta interfaz, el usuario puede seleccionar una plantilla o una tabla en la primera lista desplegable y un tema en la segunda.

En Columnas:

Dependiendo de si el usuario selecciona un modelo o una tabla, puede ver la lista de campos almacenados en el modelo (los tipos Blob y objeto se excluyen automáticamente). A continuación, pueden seleccionar las columnas que se mostrarán en la tabla marcando la casilla situada delante del nombre del campo y ordenarlas moviendo y arrastrando la lista de campos.

En líneas:

In the Table Wizard, the user can also define the number of header rows and extra rows (0 to 5 each), set break rows (summary rows) above or below the data row, and choose to show/hide carry-over rows.

En pantalla:

El usuario ajusta el nivel de zoom según sus preferencias seleccionando la opción deseada de una lista desplegable, utiliza botones de opción para mostrar fórmulas o datos para una presentación clara y elige mostrar una regla horizontal utilizando una casilla de verificación.

Tras finalizar la creación y personalización de la tabla, el usuario puede hacer clic en el botón Insertar para añadir la tabla a su documento WP.

Una vez integrada la tabla en el documento, el usuario puede personalizar su estilo. Las herramientas de formato de la barra de herramientas y la barra lateral siguen estando disponibles.

Configuración de la plantilla WP Table Wizard

La configuración de las plantillas incluye:

Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial.

Archivos de plantillas

El archivo de plantilla permite definir lo siguiente:

  • la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla,
  • las fórmulas de ruptura (si se puede insertar una línea de ruptura)
  • los atributos de la clase de datos que pueden utilizarse como columnas de la tabla,
  • las fórmulas disponibles como menús contextuales dentro de líneas de ruptura, líneas de arrastre o líneas adicionales.
Limitación

En la implementación actual (4D v20 R2), las fórmulas en saltos, fuentes de datos y menús contextuales no soportan llamadas a los métodos de la base local. Esta limitación se eliminará en la próxima versión.

The template file must be stored in a "Resources/4DWP_Wizard/Templates" folder within your project.

El archivo de plantilla en formato JSON contiene los siguientes atributos:

AtributoTipoObligatorioDescripción
tableDataSourceTextxFórmula de la fuente de datos de la tabla
columnsCollectionxColección de columnas de tabla
columns.checkTextxTrue cuando la columna ya está marcada en el editor de plantillas. False cuando la columna está desmarcada en el editor de plantillas.
columns.headerTextxEtiqueta mostrada al usuario
columns.sourceTextxFormula
breaksCollectionColección de objetos de ruptura. El orden de las interrupciones es importante. Corresponde al orden en el documento cuando las rupturas están sobre las líneas de datos.
breaks.labelTextxEtiqueta mostrada al usuario
breaks.sourceTextxFormula
breakFormulasCollectionColección de objetos de fórmula aplicables a las líneas de ruptura
breakFormulas.labelTextxEtiqueta mostrada al usuario
breakFormulas.sourceTextxFormula
bcorFormulasCollectionColección de objetos de fórmula aplicables a las filas de transferencia inferiores
bcorFormulas.labelTextxEtiqueta mostrada al usuario
bcorFormulas.sourceTextxFormula
extraFormulasCollectionColección de objetos de fórmula aplicables a líneas adicionales
extraFormulas.labelTextxEtiqueta mostrada al usuario
extraFormulas.sourceTextxFormula
Francés

If your application is likely to be run on a 4D with language set to French, make sure that you use tokens in your formulas so that they are correctly interpreted no matter the user's language configuration.

Ejemplo

He aquí un breve ejemplo del aspecto que podría tener su archivo JSON:

{
"tableDataSource": "ds.People.all().orderBy(\"toCompany.name asc, continent asc, country asc, city asc\")",
"columns": [{
"check": true,
"header": "Firstname",
"source": "This.item.firstname"
}, {
"check": true,
"header": "Lastname",
"source": "This.item.lastname"
}, {
"check": true,
"header": "Salary",
"source": "String(This.item.salary;\"###,###.00\")"
}
],
"breaks": [{
"label": "Company",
"source": "This.item.toCompany.name"
}
],
"breakFormulas": [{
"label": "Company",
"source": "This.item.toCompany.name"
}, {
"label": "Sum of salaries",
"source": "String(This.breakItems.sum(\"salary\"); \"###,###.00\")"
}
],
"bcorFormulas": [{
"label": "Sum of salaries",
"source": "String(This.tableData.sum(\"salary\"); \"###,###.00\")"
}
],
"extraFormulas": [{
"label": "Sum of salaries",
"source": "String(This.tableData.sum(\"salary\"); \"###,###.00\")"
}
]
}

Archivos de traducción

Los archivos de traducción traducen los nombres de plantillas, temas, tablas, campos y fórmulas. These files are added to the "Resources/4DWP_Wizard/Translations" folder in your project.

Cada archivo de traducción debe nombrarse con el código de idioma correspondiente (por ejemplo, "en" para inglés o "fr" para francés).

El archivo de traducción en formato JSON contiene los siguientes atributos:

AtributoTipoObligatorioDescripción
tablasCollectionColección de objetos de tabla traducidos
fieldsCollectionColección de objetos de campo traducidos
formulasCollectionColección de objetos fórmula traducidos
fileNamesCollectionColección de objetos fileName traducidos (aplicables al tema y al nombre de la plantilla)

En cada uno de estos atributos, el objeto de traducción incluye los atributos siguientes:

AtributoTipoObligatorioDescripción
originalTextxTexto original destinado a traducción
translationTextxVersión traducida del texto original

La definición de estos atributos dentro del objeto de traducción garantiza una organización y alineación adecuadas entre el contenido original y el traducido.

Si el nombre de la plantilla o la fórmula (ruptura, línea de arrastre o extra) existe en el archivo traducido, su traducción se aplica en el Asistente de tablas. Además, solo se visualiza y traduce la tabla definida en el archivo de traducción.

El archivo de traducción cumple una función adicional cuando un usuario selecciona una tabla en la interfaz. Puede filtrar las tablas y los campos propuestos al usuario. Por ejemplo, para ocultar los ID de tabla, este comportamiento es similar a los comandos SET TABLE TITLES y SET FIELD TITLES.

Ejemplo
{
"tables": [{
"original": "People",
"translation": "Personne"
}
],
"fields": [{
"original": "lastname",
"translation": "Nom"
}, {
"original": "firstname",
"translation": "Prénom"
}, {
"original": "salary",
"translation": "Salaire"
}, {
"original": "company",
"translation": "Société"
}
],
"formulas": [{
"original": "Sum of salary",
"translation": "Somme des salaires"
}
]
}

Archivos de temas

El componente 4D Write Pro Interface proporciona por defecto una lista de temas, como "Arial", "CourierNew" y "YuGothic", disponibles en múltiples variaciones como "Blue" y "Green". However, you can create your own theme by placing it in the "Resources/4DWP_Wizard/Themes" folder within your project.

El archivo del tema en formato JSON contiene los siguientes atributos:

AtributoTipoObligatorioDescripción
defaultObjectObjeto que contiene el estilo por defecto aplicable a todas las líneas.
tablaObjectObjeto que contiene la definición de estilo aplicable a la tabla.
rowsObjectObjeto que contiene la definición de estilo aplicable a todas las líneas.
cellsObjectObjeto que contiene la definición de estilo aplicable a todas las celdas.
header1ObjectObjeto que contiene la definición de estilo aplicable a la primera línea del encabezado.
header2ObjectObjeto que contiene la definición de estilo aplicable a la segunda línea del encabezado.
header3ObjectObjeto que contiene la definición de estilo aplicable a la tercera línea del encabezado.
header4ObjectObjeto que contiene la definición de estilo aplicable a la cuarta línea del encabezado.
header5ObjectObjeto que contiene la definición de estilo aplicable a la quinta línea del encabezado.
headersObjectObject containing the style definition applicable to the header rows, if a specific header (like header1, header2...) no está definido.
dataObjectObjeto que contiene la definición de estilo aplicable a la línea de datos repetida.
break1ObjectObjeto que contiene la definición de estilo aplicable a la primera línea de ruptura.
break2ObjectObjeto que contiene la definición de estilo aplicable a la segunda línea de ruptura.
break3ObjectObjeto que contiene la definición de estilo aplicable a la tercera línea de ruptura.
break4ObjectObjeto que contiene la definición de estilo aplicable a la cuarta línea de ruptura.
break5ObjectObjeto que contiene la definición de estilo aplicable a la quinta línea de ruptura.
breaksObjectObject containing the style definition applicable to the break rows, if a specific break (like break1, break2...) no está definido.
bcorObjectObjeto que contiene la definición de estilo aplicable a la línea de arrastre inferior.

For every attribute used in your JSON file (header, data, carry-over, summary, and extra rows), you can define the following WP attributes, mentionned with their corresponding WP constant:

Atributos WPConstante WP correspondiente
textAlignwk text align
backgroundColorwk background color
borderColorwk border color
borderStylewk border style
borderWidthwk border width
fontwk font
colorwk font color
fontFamilywk font family
fontSizewk font size
paddingwk padding
Ejemplo
{
"default": {
"backgroundColor": "#F0F0F0",
"borderColor": "#101010",
"borderStyle": 1,
"borderWidth": "0.5pt",
"font": "Times New Roman",
"color": "#101010",
"fontFamily": "Times New Roman",
"fontSize": "7pt",
"padding": "2pt"
},
"table": {
"backgroundColor": "#E1EAF3"
},
"header1": {
"textAlign": 2,
"borderColor": "#41548F",
"borderWidth": "1.5pt",
"backgroundColor": "#979BA9",
"color": "#F4F4FF",
"font": "Times New Roman Bold"
},
"data": {
"fontSize": "13pt",
"textAlign": 0
},
"break1": {
"textAlign": 2,
"fontSize": "15pt"
}
}

Ver también

4D Write Pro - Table Wizard (tutorial video)