FieldIndex

FieldIndex class

Implementa il campo INDICE.

Per saperne di più, visita ilLavorare con i campi articolo di documentazione.

public class FieldIndex : Field

Costruttori

NomeDescrizione
FieldIndex()Default_Costruttore

Proprietà

NomeDescrizione
BookmarkName { get; set; }Ottiene o imposta il nome del segnalibro che contrassegna la parte del documento utilizzata per creare l’indice.
CrossReferenceSeparator { get; set; }Ottiene o imposta la sequenza di caratteri utilizzata per separare i riferimenti incrociati e altre voci.
DisplayResult { get; }Ottiene il testo che rappresenta il risultato del campo visualizzato.
End { get; }Ottiene il nodo che rappresenta la fine del campo.
EntryType { get; set; }Ottiene o imposta un tipo di voce di indice utilizzato per creare l’indice.
Format { get; }Ottiene unFieldFormatoggetto che fornisce accesso tipizzato alla formattazione del campo.
HasPageNumberSeparator { get; }Ottiene un valore che indica se un separatore del numero di pagina viene sovrascritto tramite il codice del campo.
HasSequenceName { get; }Ottiene un valore che indica se una sequenza deve essere utilizzata durante la creazione del risultato del campo.
Heading { get; set; }Ottiene o imposta un’intestazione che appare all’inizio di ogni set di voci per una data lettera.
IsDirty { get; set; }Ottiene o imposta se il risultato corrente del campo non è più corretto (obsoleto) a causa di altre modifiche apportate al documento.
IsLocked { get; set; }Ottiene o imposta se il campo è bloccato (non dovrebbe ricalcolare il suo risultato).
LanguageId { get; set; }Ottiene o imposta l’ID della lingua utilizzata per generare l’indice.
LetterRange { get; set; }Ottiene o imposta un intervallo di lettere a cui limitare l’indice.
LocaleId { get; set; }Ottiene o imposta l’LCID del campo.
NumberOfColumns { get; set; }Ottiene o imposta il numero di colonne per pagina utilizzate durante la creazione dell’indice.
PageNumberListSeparator { get; set; }Ottiene o imposta la sequenza di caratteri utilizzata per separare due numeri di pagina in un elenco di numeri di pagina.
PageNumberSeparator { get; set; }Ottiene o imposta la sequenza di caratteri utilizzata per separare una voce di indice e il suo numero di pagina.
PageRangeSeparator { get; set; }Ottiene o imposta la sequenza di caratteri utilizzata per separare l’inizio e la fine di un intervallo di pagine.
Result { get; set; }Ottiene o imposta il testo compreso tra il separatore di campo e la fine del campo.
RunSubentriesOnSameLine { get; set; }Ottiene o imposta se eseguire le sottovoci nella stessa riga della voce principale.
Separator { get; }Ottiene il nodo che rappresenta il separatore di campo. Può esserenull .
SequenceName { get; set; }Ottiene o imposta il nome di una sequenza il cui numero è incluso nel numero di pagina.
SequenceSeparator { get; set; }Ottiene o imposta la sequenza di caratteri utilizzata per separare i numeri di sequenza e i numeri di pagina.
Start { get; }Ottiene il nodo che rappresenta l’inizio del campo.
virtual Type { get; }Ottiene il tipo di campo di Microsoft Word.
UseYomi { get; set; }Ottiene o imposta se abilitare l’uso del testo yomi per le voci di indice.

Metodi

NomeDescrizione
GetFieldCode()Restituisce il testo tra l’inizio del campo e il separatore di campo (o la fine del campo se non c’è un separatore). Sono inclusi sia il codice di campo che il risultato del campo dei campi figlio.
GetFieldCode(bool)Restituisce il testo tra l’inizio del campo e il separatore di campo (o la fine del campo se non c’è separatore).
Remove()Rimuove il campo dal documento. Restituisce un nodo subito dopo il campo. Se la fine del campo è l’ultimo nodo figlio del suo nodo padre, restituisce il paragrafo padre. Se il campo è già stato rimosso, restituiscenull .
Unlink()Esegue lo scollegamento del campo.
Update()Esegue l’aggiornamento del campo. Genera un’eccezione se il campo è già in fase di aggiornamento.
Update(bool)Esegue un aggiornamento di campo. Genera un’eccezione se il campo è già in fase di aggiornamento.

Osservazioni

Crea un indice utilizzando le voci di indice specificate dai campi XE e inserisce tale indice in questo punto del documento.

Esempi

Mostra come creare un campo INDICE e quindi utilizzare i campi XE per popolarlo con voci.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Crea un campo INDICE che visualizzerà una voce per ogni campo XE trovato nel documento.
// Ogni voce visualizzerà il valore della proprietà Testo del campo XE sul lato sinistro
// e la pagina contenente il campo XE sulla destra.
// Se i campi XE hanno lo stesso valore nella loro proprietà "Testo",
// il campo INDICE li raggrupperà in un'unica voce.
FieldIndex index = (FieldIndex)builder.InsertField(FieldType.FieldIndex, true);

// Configurare il campo INDICE solo per visualizzare i campi XE che rientrano nei limiti
// di un segnalibro denominato "MainBookmark" e le cui proprietà "EntryType" hanno il valore "A".
// Sia per i campi INDEX che XE, la proprietà "EntryType" utilizza solo il primo carattere del suo valore stringa.
index.BookmarkName = "MainBookmark";
index.EntryType = "A";

Assert.AreEqual(" INDEX  \\b MainBookmark \\f A", index.GetFieldCode());

// In una nuova pagina, avvia il segnalibro con un nome che corrisponda al valore
// della proprietà "BookmarkName" del campo INDEX.
builder.InsertBreak(BreakType.PageBreak);
builder.StartBookmark("MainBookmark");

// Il campo INDICE rileverà questa voce perché si trova all'interno del segnalibro,
// e il suo tipo di voce corrisponde anche al tipo di voce del campo INDICE.
FieldXE indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Index entry 1";
indexEntry.EntryType = "A";

Assert.AreEqual(" XE  \"Index entry 1\" \\f A", indexEntry.GetFieldCode());

// Inserire un campo XE che non verrà visualizzato nell'INDICE perché i tipi di voce non corrispondono.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Index entry 2";
indexEntry.EntryType = "B";

// Termina il segnalibro e inserisci un campo XE in seguito.
// È dello stesso tipo del campo INDICE, ma non verrà visualizzato
// poiché si trova al di fuori dei limiti del segnalibro.
builder.EndBookmark("MainBookmark");
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Index entry 3";
indexEntry.EntryType = "A";

doc.UpdatePageLayout();
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.INDEX.XE.Filtering.docx");

Mostra come popolare un campo INDICE con voci utilizzando campi XE e come modificarne l’aspetto.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Crea un campo INDICE che visualizzerà una voce per ogni campo XE trovato nel documento.
// Ogni voce visualizzerà il valore della proprietà Testo del campo XE sul lato sinistro,
// e il numero della pagina che contiene il campo XE sulla destra.
// Se i campi XE hanno lo stesso valore nella loro proprietà "Testo",
// il campo INDICE li raggrupperà in un'unica voce.
FieldIndex index = (FieldIndex)builder.InsertField(FieldType.FieldIndex, true);
index.LanguageId = "1033";

// Impostando il valore di questa proprietà su "A" tutte le voci verranno raggruppate in base alla loro prima lettera,
// e posiziona quella lettera in maiuscolo sopra ogni gruppo.
index.Heading = "A";

// Imposta la tabella creata dal campo INDEX in modo che si estenda su 2 colonne.
index.NumberOfColumns = "2";

// Imposta l'omissione di tutte le voci con lettere iniziali al di fuori dell'intervallo di caratteri "ac".
index.LetterRange = "a-c";

Assert.AreEqual(" INDEX  \\z 1033 \\h A \\c 2 \\p a-c", index.GetFieldCode());

// Questi due campi XE successivi verranno visualizzati sotto l'intestazione "A",
// con i rispettivi stili di testo applicati anche ai numeri di pagina.
builder.InsertBreak(BreakType.PageBreak);
FieldXE indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Apple";
indexEntry.IsItalic = true;

Assert.AreEqual(" XE  Apple \\i", indexEntry.GetFieldCode());

builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Apricot";
indexEntry.IsBold = true;

Assert.AreEqual(" XE  Apricot \\b", indexEntry.GetFieldCode());

// I due campi XE successivi saranno sotto le intestazioni "B" e "C" nella tabella dei contenuti dei campi INDICE.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Banana";

builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Cherry";

// I campi INDEX ordinano tutte le voci in ordine alfabetico, quindi questa voce verrà visualizzata sotto "A" insieme alle altre due.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Avocado";

// Questa voce non verrà visualizzata perché inizia con la lettera "D",
// che è al di fuori dell'intervallo di caratteri "ac" definito dalla proprietà LetterRange del campo INDEX.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Durian";

doc.UpdatePageLayout();
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.INDEX.XE.Formatting.docx");

Guarda anche