4D Write Pro: Le righe di riporto sono disponibili!

Tradotto automaticamente da Deepl

L’uso delle tabelle nei documenti di 4D Write Pro è più frequente, soprattutto perché è possibile associarvi una fonte di dati che alimenta automaticamente le loro righe!

Quando il numero di righe aumenta, è comune che queste tabelle vengano automaticamente divise in più parti per consentire un’interruzione di pagina o di colonna. In questa situazione, a volte è conveniente inserire (automaticamente!) una riga “subtotale” in fondo a ciascuna parte delle rispettive tabelle. Sì, proprio così, questo è possibile in 4D v19 R7 ?

Database dimostrativo

Un’immagine vale più di mille parole.

Un’immagine è sempre meglio di una lunga spiegazione. Ecco cosa vogliamo ottenere:

Come si può vedere, ogni parte della tabella – tranne l’ultima – contiene una riga in più, utilizzata per visualizzare un subtotale.

Questo è spesso necessario, a volte persino richiesto per legge, quando si modificano fatture lunghe, ad esempio.

UNA RIGA nel modello, TANTE QUANTE NE SONO NECESSARIE NEL DOCUMENTO FINALE

Come indicato nell’introduzione, questa funzionalità è disponibile per tutte le tabelle. Tuttavia, viene considerata solo quando le tabelle sono associate a una fonte di dati (una collezione o una selezione di entità). Una volta attivata questa proprietà, la riga immediatamente successiva alla riga “ripetuta” diventerà la riga di riporto.

blank

L’attivazione di questa proprietà può essere effettuata tramite l’interfaccia…

In entrambe le interfacce (barra degli strumenti e barra laterale), il menu Tabella ( ) contiene una nuova voce, “Riga di riporto inferiore”.

blankblank

… Oppure programmando

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

DUPLICATO O NO?

È essenziale capire che questa riga, unica nel modello, sarà duplicata tutte le volte che sarà necessario una volta che il documento sarà valutato.

Si noti che ciò non sarà necessario se la tabella “entra” in un unico blocco. In questo caso, la riga di riporto non sarà rappresentata nel documento valutato.

Altrimenti, verrà inserita alla fine di ogni blocco, tranne l’ultimo. Logicamente, l’ultima parte della tabella divisa non dovrebbe contenere un subtotale, ma un “Totale generale”. Per questo motivo, nel modello, la riga di riporto non è l’ultima ma è seguita dalle ultime righe della tabella.

IL CONTENUTO DELLE RIGHE DI RIPORTO

Come deve essere definito il contenuto delle celle di questa riga di riporto?

Come avrete intuito, è nato un nuovo attributo: previousItems, che può essere utilizzato come segue:

This.previousItems.sum("prezzo")

This.previousItems restituisce, a seconda della fonte di dati della tabella, un insieme o una selezione di entità.

Questo insieme contiene tutti gli elementi che sono già stati valutati nella pagina corrente e in quelle precedenti. È possibile applicare tutte le funzioni disponibili (min/max/somma/ecc.) per le collezioni o le selezioni di entità!

Si noti che se This.previousItems è stato progettato principalmente per essere utilizzato nelle righe di riporto, il suo uso non è limitato a questo particolare contesto. Può essere usato ovunque nella tabella (tranne che nelle intestazioni) con valori diversi in ogni contesto.

Conclusione

Questa nuova proprietà consente di liberarsi di codici complessi e di arricchire le tabelle durante i salti di pagina automatici.
Divertitevi a creare bei modelli e ad evitare codici complessi! E come sempre, il vostro feedback è molto apprezzato. Unitevi alla discussione sul Forum 4D.

Ulteriori informazioni sulle righe di riporto sono disponibili nella documentazione.

Roland Lannuzel
- Product Owner ed esperto di 4D - Dopo aver studiato elettronica, Roland è passato all'IT industriale come sviluppatore e consulente, realizzando soluzioni per i clienti con una varietà di database e tecnologie. Alla fine degli anni '80 si è innamorato di 4D e lo ha utilizzato per scrivere applicazioni aziendali che includono sistemi di contabilità, fatturazione e posta elettronica. Entrato a far parte dell'azienda nel 1997, Roland ha dato il suo prezioso contributo progettando specifiche, strumenti di test e demo, oltre a formare e parlare alla comunità 4D in occasione di numerose conferenze. Continua a plasmare attivamente il futuro di 4D definendo nuove funzionalità e strumenti di sviluppo di database.