4D Write Pro: ¡Las filas de arrastre están disponibles!

Traducido automáticamente de Deepl

El uso de tablas en los documentos de 4D Write Pro es más frecuente, sobre todo porque es posible asociarles una fuente de datos que alimenta automáticamente sus filas.

A medida que el número de filas aumenta, es habitual que estas tablas se dividan automáticamente en varias partes para permitir un salto de página o de columna. En esta situación, a veces es conveniente insertar (¡automáticamente!) una línea de «subtotal » en la parte inferior de cada parte de las respectivas tablas. Sí, así es, esto es posible en 4D v19 R7 ?

Base de datos de demostración

Una imagen vale más que mil palabras.

Una imagen siempre gana a una larga explicación. Esto es lo que queremos obtener:

Como puede ver, cada parte de la tabla -excepto la última- contiene una fila adicional que se utiliza para mostrar un subtotal.

Esto es a menudo necesario, a veces incluso legalmente requerido, cuando se editan facturas largas, por ejemplo.

UNA FILA en la plantilla, TANTAS COMO SEAN NECESARIAS EN EL DOCUMENTO FINAL

Como se ha mencionado en la introducción, esta funcionalidad está disponible para todas las tablas. Sin embargo, sólo se considera cuando las tablas están asociadas a una fuente de datos (una colección o una selección de entidades). Una vez activada esta propiedad, la fila inmediatamente posterior a la fila «repetida» se convertirá en la fila de arrastre.

blank

La activación de esta propiedad puede realizarse a través de la interfaz…

En ambas interfaces (barra de herramientas y barra lateral), el menú de la tabla ( ) contiene un nuevo elemento, «Fila de arrastre inferior».

blankblank

… O programando

WP SET ATTRIBUTES($table ; wk bottom carry over row ; True | False)

¿DUPLICADO O NO?

Es esencial entender que esta fila, única en la plantilla, se duplicará tantas veces como sea necesario una vez que se evalúe el documento.

Tenga en cuenta que esto no será necesario si la tabla «cabe» en un solo bloque. En este caso, la fila de arrastre no se representará en el documento evaluado.

En caso contrario, se insertará al final de todos los bloques excepto el último. Lógicamente, la última parte de la tabla dividida no debe contener un subtotal, sino un «Gran Total». Por eso, en la plantilla, la fila de arrastre no es la última, sino que va seguida de las últimas filas de la tabla.

EL CONTENIDO DE LAS FILAS DE ARRASTRE

¿Cómo debe definirse el contenido de las celdas de esta fila de arrastre?

Como habrá adivinado, nace un nuevo atributo: previousItems, que se puede utilizar de la siguiente manera

This.previousItems.sum("price")

This.previousItems devuelve, dependiendo de la fuente de datos de la tabla, una colección o una selección de entidades.

Este conjunto contiene todos los artículos que ya han sido evaluados en la página actual y en las anteriores. Puede aplicar todas las funciones disponibles (mín/máx/suma/etc.) para colecciones o selecciones de entidades.

Tenga en cuenta que si This.previousItems está diseñado principalmente para ser utilizado en filas de arrastre, su uso no se limita a este contexto particular. Puede utilizarse en cualquier parte de la tabla (excepto en las cabeceras) con valores diferentes en cada contexto.

Conclusión

Esta nueva propiedad permite deshacerse de código complejo y enriquecer las tablas durante los saltos de página automáticos.
¡Disfrute de la creación de plantillas encantadoras y evite la codificación compleja! Y como siempre, sus comentarios son muy apreciados. Únase a la discusión en el Foro 4D.

Se puede leer más información sobre el arrastre de filas en la documentación.

Roland Lannuzel
- Propietario de Producto y Experto en 4D - Después de estudiar electrónica, Roland se dedicó a la informática industrial como desarrollador y consultor, construyendo soluciones para clientes con una variedad de bases de datos y tecnologías. A finales de los años 80 se enamoró de 4D y lo ha utilizado para escribir aplicaciones de negocio que incluyen sistemas de contabilidad, facturación y correo electrónico.Eventualmente se unió a la compañía en 1997, las valiosas contribuciones de Roland incluyen el diseño de especificaciones, herramientas de prueba, demos, así como la formación y hablar con la comunidad 4D en muchas conferencias. Continúa dando forma activamente al futuro de 4D definiendo nuevas características y herramientas de desarrollo de bases de datos.