A partire dalla versione 4D 21 R3, è possibile creare elenchi puntati e numerati strutturati e complessi a più livelli in 4D Write Pro utilizzando fogli di stile, ed esportarli in tutti i formati, incluso docx. Ad esempio, se si desidera creare un elenco a più livelli la cui numerazione si adegui automaticamente quando si rimuovono o si aggiungono contenuti a tutti i livelli, oppure se si desidera avere titoli e sottotitoli con stili e numerazione coerenti in tutto il documento 4D Write Pro, allora questa nuova funzionalità è ciò di cui avete bisogno. In questo post del blog, vi mostreremo esattamente come creare elenchi a più livelli utilizzando fogli di stile a più livelli.
In particolare, spiegheremo come utilizzare le azioni standard e i comandi per gestire i fogli di stile multilivello.
HDI_4DWP_MultiLevelStyleSheets
Gestione dei fogli di stile multilivello tramite azioni standard
Se vuoi ottenere il risultato mostrato nell’animazione qui sotto, ecco come fare:
- Passaggio 1: disponete di un foglio di stile di paragrafo con un tipo di stile di elenco applicato a diversi paragrafi
- Passaggio 2: usa l’azione standard ” listLevelAppend” per aggiungere nuovi livelli al tuo foglio di stile di paragrafo; in questo modo, passerai da un elenco a livello singolo a un elenco a più livelli
- Passaggio 3: utilizzare le azioni standard ” listLevelDec ” e ” listLevelInc” per aumentare o diminuire i livelli dei paragrafi selezionati
- Passaggio 4: Regola il formato degli indicatori di numerazione utilizzando le azioni standard ” listConcatStringFormat ” e ” listNumberFormat“

Gestione dei fogli di stile multilivello tramite i comandi 4D
Già prima di 4D 21 R3, 4D Write Pro offriva fogli di stile in grado di includere tutti gli stili di paragrafo (compresi i tipi di elenco) e applicabili ai paragrafi. Abbiamo arricchito questo concetto esistente in modo che possa essere utilizzato per creare elenchi multilivello.
L’elenco a più livelli nella schermata qui sotto ha 3 livelli: un livello radice e 2 livelli secondari. Per ottenerlo, sono necessari 3 fogli di stile di paragrafo correlati tra loro: un foglio di stile di livello radice e 2 fogli di stile di livello secondario ad esso correlati. Ecco come procedere in passaggi concreti:
- Passaggio 1: creare il foglio di stile di livello radice e i 2 fogli di stile di livello secondario ad esso correlati utilizzando il comando WP New style sheet in una riga di codice. Questi 3 fogli di stile vengono creati con valori predefiniti: wk list type = wk decimal e wk margin left = 0,75 cm* (il numero di livelli precedenti)
- Passaggio 2: Ottenere i 3 diversi oggetti foglio di stile utilizzando il comando WP Get style sheet
- Passaggio 3: aggiornare lo stile del foglio di stile di livello radice e di ciascuno dei fogli di stile di livello secondario utilizzando il comando WP SET ATTRIBUTES proprio come fatto in precedenza con i normali fogli di stile di paragrafo. Gli stili specifici che dobbiamo aggiornare nel nostro caso sono i seguenti: wk list style type, wk color, wk font size, wk font, wk font bold, wk list string format ltr e wk list format string concat (nuovo attributo)
- Passaggio 4: applicare ciascun foglio di stile ai paragrafi corrispondenti utilizzando il comando WP SET ATTRIBUTES proprio come fatto in precedenza con i normali fogli di stile dei paragrafi.
- Passo 5 (opzionale): È possibile eliminare un foglio di stile specifico utilizzando il comando WP DELETE STYLE SHEET nel caso in cui si sia cambiato idea; basta ricordare che se si elimina il foglio di stile di livello radice, verranno eliminati anche i fogli di stile di livello secondario ad esso correlati.
- Passaggio 6 (facoltativo): è possibile esportare il documento 4D Write Pro contenente l’elenco multilivello utilizzando il comando WP EXPORT DOCUMENT in altri formati: DOCX, SVG, PDF e HTML. In questo caso, l’elenco esportato manterrà la stessa gerarchia, gli stessi stili e la stessa struttura senza perdere l’indentazione o la numerazione.

Ecco tutto il codice necessario per creare l’elenco a più livelli utilizzando fogli di stile a più livelli messi insieme:
$spanishNovels:="Spanish Novels\n20th century\nCien años de soledad\nEl túnel\nFicciones\n"
$frenchNovels:="French Novels\n19th century\nLes Misérables\nMadame Bovary\nGerminal"
WP SET TEXT(WParea; $spanishNovels+$frenchNovels; wk append)
//Creating 3 multi-level style sheets
WP New style sheet(WParea; wk type paragraph; "MyList"; 3)
//Getting the multi-level style sheets objects
levelStyle1:=WP Get style sheet(WParea; "MyList"; 1)
levelStyle2:=WP Get style sheet(WParea; "MyList"; 2)
levelStyle3:=WP Get style sheet(WParea; "MyList"; 3)
//Modifying the paragraph styles of the multi-level style sheets
WP SET ATTRIBUTES(levelStyle1; \
{listStyleType: wk upper latin; color: "#1F3A5F"; fontSize: 18; font: "Tahoma"; listFont: "Tahoma"; fontBold: wk true})
WP SET ATTRIBUTES(levelStyle2; \
{listStyleType: wk decimal; listConcatStringFormat: True; color: "#52796F"; fontSize: 16; font: "Tahoma"; listFont: "Tahoma"; fontBold: wk true})
WP SET ATTRIBUTES(levelStyle3; \
{listStringFormatLtr: "(#)"; listConcatStringFormat: False; color: "Black"; fontSize: 12; font: "Times New Roman"; listFont: "Times New Roman"})
//Setting the multi-level style sheets to the appropriate paragraphs
$paragraphs:=WP Get elements(WParea; wk type paragraph)
For ($i; 0; 9)
If (($i=0) ' ($i=5))
WP SET ATTRIBUTES($paragraphs[$i]; wk style sheet; levelStyle1)
Else
If (($i=1) ' ($i=6))
WP SET ATTRIBUTES($paragraphs[$i]; wk style sheet; levelStyle2)
Else
WP SET ATTRIBUTES($paragraphs[$i]; wk style sheet; levelStyle3)
End if
End if
End for
Importazione ed esportazione di elenchi multilivello
Gli elenchi multilivello non sono disponibili solo all’interno di 4D Write Pro, ma vengono anche conservati durante l’esportazione o l’importazione da o verso altri formati.
Quando esporti un documento 4D Write Pro contenente elenchi a più livelli, il documento risultante mantiene la stessa struttura dell’elenco e gli stessi livelli in tutti i formati di esportazione supportati, inclusi DOCX, PDF, SVG, pagina web HTML completa e HTML-MIME. Ciò significa che la numerazione a più livelli (livello radice e sottolivelli) rimane coerente, senza appiattire l’elenco o perdere l’indentazione e la gerarchia.
Inoltre, quando si importa un documento DOCX contenente un elenco a più livelli, 4D Write Pro conserva la stessa struttura a più livelli nel documento 4D Write Pro risultante.
Sia gli elenchi piatti che quelli a più livelli vengono importati con la gerarchia intatta ed è possibile continuare a modificarli a livello di programmazione o tramite azioni standard.
Conclusione
Grazie ai fogli di stile multilivello di 4D Write Pro, la creazione di documenti strutturati e professionali diventa più semplice e potente che mai. Che si tratti di costruire schemi complessi, organizzare informazioni gerarchiche o garantire una numerazione coerente in documenti di grandi dimensioni, questa funzionalità offre il pieno controllo sulla struttura e la presentazione dei contenuti.
Combinando le azioni standard per la modifica interattiva e i comandi 4D per il controllo a livello di programmazione, è possibile creare, gestire e mantenere facilmente elenchi multilivello che si adattano automaticamente all’evolversi del documento. Ancora meglio, questi elenchi mantengono la loro struttura e formattazione durante l’esportazione o l’importazione di documenti, garantendo una perfetta interoperabilità con formati quali DOCX, PDF, HTML e altri.
Sebbene 4D 21 R3 offra già potenti funzionalità per gestire elenchi multilivello a livello di programmazione e tramite azioni standard, in 4D 21 R4 verrà introdotta un’interfaccia utente dedicata per gestire queste funzionalità in modo più intuitivo, migliorando ulteriormente l’esperienza complessiva.
Per maggiori dettagli sugli elenchi in 4D Write Pro, consulta la documentazione e, per domande e commenti, visita il forum 4D.
Al momento non è possibile lasciare commenti su questo post.