FieldIndex

FieldIndex class

Implémente le champ INDEX.

public class FieldIndex : Field

Constructeurs

Nom La description
FieldIndex() Default_Constructor

Propriétés

Nom La description
BookmarkName { get; set; } Obtient ou définit le nom du signet qui marque la partie du document utilisée pour créer l’index.
CrossReferenceSeparator { get; set; } Obtient ou définit la séquence de caractères utilisée pour séparer les références croisées et les autres entrées.
DisplayResult { get; } Obtient le texte qui représente le résultat du champ affiché.
End { get; } Obtient le nœud qui représente la fin du champ.
EntryType { get; set; } Obtient ou définit un type d’entrée d’index utilisé pour créer l’index.
Format { get; } Obtient unFieldFormat objet qui fournit un accès typé au formatage du champ.
HasPageNumberSeparator { get; } Obtient une valeur indiquant si un séparateur de numéro de page est remplacé par le code du champ.
HasSequenceName { get; } Obtient une valeur indiquant si une séquence doit être utilisée lors de la construction du résultat du champ.
Heading { get; set; } Obtient ou définit un en-tête qui apparaît au début de chaque ensemble d’entrées pour une lettre donnée.
IsDirty { get; set; } Obtient ou définit si le résultat actuel du champ n’est plus correct (périmé) en raison d’autres modifications apportées au document.
IsLocked { get; set; } Obtient ou définit si le champ est verrouillé (ne doit pas recalculer son résultat).
LanguageId { get; set; } Obtient ou définit l’ID de langue utilisé pour générer l’index.
LetterRange { get; set; } Obtient ou définit une plage de lettres à laquelle limite l’index.
LocaleId { get; set; } Obtient ou définit le LCID du champ.
NumberOfColumns { get; set; } Obtient ou définit le nombre de colonnes par page utilisées lors de la création de l’index.
PageNumberListSeparator { get; set; } Obtient ou définit la séquence de caractères utilisée pour séparer deux numéros de page dans une liste de numéros de page.
PageNumberSeparator { get; set; } Obtient ou définit la séquence de caractères utilisée pour séparer une entrée d’index et son numéro de page.
PageRangeSeparator { get; set; } Obtient ou définit la séquence de caractères utilisée pour séparer le début et la fin d’une plage de pages.
Result { get; set; } Obtient ou définit le texte qui se trouve entre le séparateur de champ et la fin du champ.
RunSubentriesOnSameLine { get; set; } Obtient ou définit si les sous-entrées sont exécutées sur la même ligne que l’entrée principale.
Separator { get; } Obtient le nœud qui représente le séparateur de champs. Peut être null.
SequenceName { get; set; } Obtient ou définit le nom d’une séquence dont le numéro est inclus avec le numéro de page.
SequenceSeparator { get; set; } Obtient ou définit la séquence de caractères utilisée pour séparer les numéros de séquence et les numéros de page.
Start { get; } Obtient le nœud qui représente le début du champ.
virtual Type { get; } Obtient le type de champ Microsoft Word.
UseYomi { get; set; } Obtient ou définit s’il faut activer l’utilisation du texte yomi pour les entrées d’index.

Méthodes

Nom La description
GetFieldCode() Renvoie le texte entre le début du champ et le séparateur de champ (ou la fin du champ s’il n’y a pas de séparateur). Le code de champ et le résultat du champ des champs enfants sont inclus.
GetFieldCode(bool) Renvoie le texte entre le début du champ et le séparateur de champ (ou la fin du champ s’il n’y a pas de séparateur).
Remove() Supprime le champ du document. Renvoie un nœud juste après le champ. Si la fin du champ est le dernier enfant de son nœud parent, renvoie son paragraphe parent. Si le champ est déjà supprimé, renvoie nul .
Unlink() Effectue la dissociation du champ.
Update() Effectue la mise à jour du champ. Lance si le champ est déjà mis à jour.
Update(bool) Effectue une mise à jour du champ. Lance si le champ est déjà mis à jour.

Remarques

Construit un index à l’aide des entrées d’index spécifiées par les champs XE et insère cet index à cet endroit dans le document.

Exemples

Montre comment créer un champ INDEX, puis utiliser des champs XE pour le remplir avec des entrées.

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

// Crée un champ INDEX qui affichera une entrée pour chaque champ XE trouvé dans le document.
// Chaque entrée affichera la valeur de la propriété Text du champ XE sur le côté gauche
// et la page contenant le champ XE à droite.
// Si les champs XE ont la même valeur dans leur propriété "Texte",
// le champ INDEX les regroupera en une seule entrée.
FieldIndex index = (FieldIndex)builder.InsertField(FieldType.FieldIndex, true);

// Configurez le champ INDEX uniquement pour afficher les champs XE qui sont dans les limites
// d'un signet nommé "MainBookmark", et dont les propriétés "EntryType" ont la valeur "A".
// Pour les champs INDEX et XE, la propriété "EntryType" utilise uniquement le premier caractère de sa valeur de chaîne.
index.BookmarkName = "MainBookmark";
index.EntryType = "A";

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

// Sur une nouvelle page, démarrez le signet avec un nom qui correspond à la valeur
// de la propriété "BookmarkName" du champ INDEX.
builder.InsertBreak(BreakType.PageBreak);
builder.StartBookmark("MainBookmark");

// Le champ INDEX récupérera cette entrée car elle se trouve à l'intérieur du signet,
// et son type d'entrée correspond également au type d'entrée du champ INDEX.
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());

// Insère un champ XE qui n'apparaîtra pas dans l'INDEX car les types d'entrée ne correspondent pas.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Index entry 2";
indexEntry.EntryType = "B";

// Termine le signet et insère ensuite un champ XE.
// Il est du même type que le champ INDEX, mais n'apparaîtra pas
// car il est en dehors des limites du signet.
builder.EndBookmark("MainBookmark");
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Index entry 3";
indexEntry.EntryType = "A";

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

Montre comment remplir un champ INDEX avec des entrées à l’aide de champs XE, et également modifier son apparence.

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

// Crée un champ INDEX qui affichera une entrée pour chaque champ XE trouvé dans le document.
// Chaque entrée affichera la valeur de la propriété Text du champ XE sur le côté gauche,
// et le numéro de la page qui contient le champ XE à droite.
// Si les champs XE ont la même valeur dans leur propriété "Texte",
// le champ INDEX les regroupera en une seule entrée.
FieldIndex index = (FieldIndex)builder.InsertField(FieldType.FieldIndex, true);
index.LanguageId = "1033";

// Définir la valeur de cette propriété sur "A" regroupera toutes les entrées par leur première lettre,
// et placez cette lettre en majuscule au-dessus de chaque groupe.
index.Heading = "A";

// Définit la table créée par le champ INDEX pour qu'elle s'étende sur 2 colonnes.
index.NumberOfColumns = "2";

// Définir toutes les entrées avec des lettres de départ en dehors de la plage de caractères "ac" à omettre.
index.LetterRange = "a-c";

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

// Ces deux champs XE suivants apparaîtront sous l'en-tête "A",
// avec leurs styles de texte respectifs également appliqués à leurs numéros de page.
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());

// Les deux champs XE suivants seront sous un en-tête "B" et "C" dans la table des matières des champs INDEX.
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";

// Les champs INDEX trient toutes les entrées par ordre alphabétique, donc cette entrée apparaîtra sous "A" avec les deux autres.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Avocado";

// Cette entrée n'apparaîtra pas car elle commence par la lettre "D",
// qui est en dehors de la plage de caractères "ac" définie par la propriété LetterRange du champ INDEX.
builder.InsertBreak(BreakType.PageBreak);
indexEntry = (FieldXE)builder.InsertField(FieldType.FieldIndexEntry, true);
indexEntry.Text = "Durian";

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

Voir également