Testi formattati in BC 23: un esempio pratico

Salve lettore, in questo articolo voglio parlarti di una novità che sicuramente non ti sarà passata inosservata se hai già cominciato a lavorare in BC 23.

Mi riferisco alla possibilità di inserire campi RichText (campi di testo formattati) nelle pagine di Business Central.

Prima del rilascio di BC 23, l’unico modo per inserire questi campi era sviluppare un control-addin apposito. Con la nuova versione di Microsoft Business Central 2023 wave 2 è ora possibile inserire questi campi in pagina, prestando attenzione a certi step.

Infatti, la struttura del database non è cambiata, dobbiamo sempre aggiungere un campo Blob alla tabella a cui vogliamo integrare un testo formattato. Quello che dobbiamo fare è aggiungere alla pagina dove vogliamo far apparire il testo formattato una variabile di tipo Text senza lunghezza o BigText. Vediamo un esempio che sicuramente ci schiarisce le idee.

Supponiamo di voler aggiungere una descrizione formattata alla pagina della scheda articolo e memorizzarlo in tabella. Innanzitutto, dobbiamo estendere la tabella Item aggiungendo un campo Blob.

Poi creiamo la page extension per la pagina Item Card come segue

Balza subito all’occhio una cosa: non è stato aggiunto il campo Blob della table extension, ma la variabile ExtDesc che è una variabile di tipo Text senza lunghezza. Questa variabile, poi, è stata inserita nella pagina come campo con le proprietà Multiline = true ed ExtendedDataType = RichContent.

Queste due proprietà devono essere obbligatoriamente impostate, così come deve essere obbligatoriamente inserito un gruppo (o una factbox, l’importante è che il campo sia da solo) il campo con il testo formattato.

E per memorizzare e visualizzare il campo Blob della tabella? Avrai notato che ho creato una codeunit con la funzione GetExtendedDescription e SetExtendedDescription. Vediamo nel dettaglio di che cosa si tratta.

Come vedi, nella funzione GetExtendedDescription, dichiariamo una variabile Instream e il suo contenuto lo scriviamo dentro la variabile Text della pagina e in questo modo visualizziamo il contenuto del campo. Mentre, per memorizzare eventuali variazioni del contenuto è sufficiente dichiarare una variabile Outstream, tramite l’istruzione Write, scrivere l’outstream sulla base del campo della pagina e poi salvarlo in tabella.

Il risultato che ne otteniamo è il seguente.

Semplice no? Tuttavia, devo darti un consiglio che vale in generale per tutti i campi Blob, non abusarne! Più campi Blob metti in pagina, più istruzioni CalcFields dovranno essere eseguite e le prestazioni peggioreranno; pertanto, cerca sempre di ottimizzare le tue visualizzazioni con questi particolari campi.

Spero che questo articolo ti sia stato utile per lo sviluppo delle tue prossime app con Microsoft Business Central.

Lascia una risposta