---
title: "Aggiorna i campi in Java"
---

In genere, un campo inserito in Microsoft Word contiene già un valore aggiornato. Ad esempio, se il campo è una formula o un numero di pagina, conterrà il valore calcolato corretto per la versione specificata del documento. Ma se si dispone di un'applicazione che genera o modifica un documento con campi come l'unione di due documenti o la compilazione di dati, idealmente tutti i campi devono essere aggiornati affinché il documento sia utile.

## Come aggiornare i campi

Quando un documento viene caricato, Aspose.Words imita il comportamento di Microsoft Word con l'opzione per aggiornare automaticamente i campi è disattivata. Il comportamento può essere riassunto come segue:

- quando si apre / salva un documento i campi rimangono intatti
- è possibile aggiornare esplicitamente tutti i campi in un documento, ad esempio, ricostruire `TOC` quando è necessario
- quando si stampa / esegue il rendering su PDF o XPS i campi relativi alla numerazione delle pagine nelle intestazioni/piè di pagina vengono aggiornati
- quando si esegue Mail Merge tutti i campi vengono aggiornati automaticamente

### Aggiorna i campi a livello di codice

Per aggiornare esplicitamente i campi nell'intero documento, è sufficiente chiamare il metodo [UpdateFields](https://reference.aspose.com/words/java/com.aspose.words/document/#updateFields). Per aggiornare i campi contenuti in una parte di un documento, ottenere un oggetto [Range](https://reference.aspose.com/words/java/com.aspose.words/range/) e chiamare il metodo [UpdateFields](https://reference.aspose.com/words/java/com.aspose.words/range/#updateFields). In Aspose.Words, è possibile ottenere un **Range** per qualsiasi nodo nell'albero del documento, ad esempio[Section](https://reference.aspose.com/words/java/com.aspose.words/section/), [HeaderFooter](https://reference.aspose.com/words/java/com.aspose.words/headerfooter/), [Paragraph](https://reference.aspose.com/words/java/com.aspose.words/paragraph/), ecc. utilizzo della proprietà [GetRange](https://reference.aspose.com/words/java/com.aspose.words/node/#getRange). È possibile aggiornare il risultato di un singolo campo chiamando il metodo [Update](https://reference.aspose.com/words/java/com.aspose.words/field/#update).

### Aggiornamento automatico dei campi relativi alla pagina durante il rendering

Quando si esegue la conversione di un documento in un formato a pagina fissa, ad esempio in PDF o XPS, Aspose.Words aggiornerà automaticamente i campi relativi al layout di pagina `PAGE`, `PAGEREF` trovati nelle intestazioni/piè di pagina del documento. Questo comportamento imita il comportamento di Microsoft Word durante la stampa di un documento.

Se si desidera aggiornare tutti gli altri campi del documento, è necessario chiamare [UpdateFields](https://reference.aspose.com/words/java/com.aspose.words/document/#updateFields) prima di eseguire il rendering del documento.

L'esempio seguente mostra come aggiornare tutti i campi prima di eseguire il rendering di un documento:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-fields-UpdateFields-UpdateFields.java" >}}

### Aggiornamento automatico del campo durante Mail Merge

Quando si esegue un mail merge, tutti i campi del documento verranno aggiornati automaticamente. Questo perché Mail Merge è un caso di aggiornamento del campo. Il programma incontra un campo Mail Merge e deve aggiornare il suo risultato, il che comporta l'acquisizione del valore dall'origine dati e l'inserimento nel campo. La logica è, ovviamente, più complicata, ad esempio, quando viene raggiunta la fine della regione document/mail merge ma ci sono ancora altri dati da unire, quindi la regione deve essere duplicata e il nuovo set di campi aggiornato.

## Aggiorna i campi con attributo Dirty

W: dirty è un attributo a livello di campo che aggiorna solo il campo specificato quando il documento viene aperto. Indica a MS Word di aggiornare questo campo solo la prossima volta che il documento viene aperto. È possibile utilizzare LoadOptions.setUpdateDirtyFields () proprietà per specificare se aggiornare i campi con l'attributo dirty. Quando il valore di LoadOptions.setUpdateDirtyFields () è impostato su *true*, tutti i campi con valore *true* per la proprietà `Field.IsDirty` o `FieldChar.IsDirty` vengono aggiornati al caricamento del documento.

L'esempio di codice seguente mostra come aggiornare i campi con l'attributo dirty:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-fields-LoadOptionsUpdateDirtyFields-LoadOptionsUpdateDirtyFields.java" >}}

## Aggiorna LastSavedTime Proprietà prima di salvare

È possibile utilizzare la proprietà [UpdateLastSavedTimeProperty](https://reference.aspose.com/words/java/com.aspose.words/saveoptions/#getUpdateLastSavedTimeProperty) se aggiornare la corrispondente proprietà predefinita del documento [LastSavedTime](https://reference.aspose.com/words/java/com.aspose.words/builtindocumentproperties/#getLastSavedTime) durante il salvataggio del documento.

L'esempio di codice seguente mostra come aggiornare questa proprietà:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-fields-UpdateLastSavedTimeProperty-UpdateLastSavedTimeProperty.java" >}}
