FieldRef

FieldRef class

Implémente le champ REF.

Pour en savoir plus, visitez leTravailler avec des champs article documentaire.

public class FieldRef : Field

Constructeurs

NomLa description
FieldRef()Default_Constructor

Propriétés

NomLa description
BookmarkName { get; set; }Obtient ou définit le nom du signet référencé.
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.
Format { get; }Obtient unFieldFormat objet qui fournit un accès typé au formatage du champ.
IncludeNoteOrComment { get; set; }Obtient ou définit s’il faut incrémenter les numéros de note de bas de page, de fin et d’annotation qui sont marqués par le signet, et insérer le texte de note de bas de page, de fin et de commentaire correspondant.
InsertHyperlink { get; set; }Obtient ou définit s’il faut créer un lien hypertexte vers le paragraphe marqué par un signet.
InsertParagraphNumber { get; set; }Obtient ou définit s’il faut insérer le numéro de paragraphe du paragraphe référencé exactement tel qu’il apparaît dans le document.
InsertParagraphNumberInFullContext { get; set; }Obtient ou définit s’il faut insérer le numéro de paragraphe du paragraphe référencé dans son contexte complet.
InsertParagraphNumberInRelativeContext { get; set; }Obtient ou définit s’il faut insérer le numéro de paragraphe du paragraphe référencé dans un contexte relatif.
InsertRelativePosition { get; set; }Obtient ou définit s’il faut insérer la position relative du paragraphe référencé.
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).
LocaleId { get; set; }Obtient ou définit le LCID du champ.
NumberSeparator { 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.
Result { get; set; }Obtient ou définit le texte situé entre le séparateur de champ et la fin du champ.
Separator { get; }Obtient le nœud qui représente le séparateur de champ. Peut êtrenul .
Start { get; }Obtient le nœud qui représente le début du champ.
SuppressNonDelimiters { get; set; }Obtient ou définit s’il faut supprimer les caractères non délimiteurs.
virtual Type { get; }Obtient le type de champ Microsoft Word.

Méthodes

NomLa 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 child de son nœud parent, renvoie son paragraphe parent. Si le champ est déjà supprimé, renvoienul .
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

Insère le texte ou les graphiques représentés par le signet spécifié.

Exemples

Montre comment créer un texte mis en signet avec un champ SET, puis l’afficher dans le document à l’aide d’un champ REF.

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

 // Nommez le texte mis en signet avec un champ SET.
// Ce champ fait référence au "signet" non pas à une structure de signet qui apparaît dans le texte, mais à une variable nommée.
FieldSet fieldSet = (FieldSet)builder.InsertField(FieldType.FieldSet, false);
fieldSet.BookmarkName = "MyBookmark";
fieldSet.BookmarkText = "Hello world!";
fieldSet.Update();

Assert.AreEqual(" SET  MyBookmark \"Hello world!\"", fieldSet.GetFieldCode());

// Faites référence au signet par son nom dans un champ REF et affichez son contenu.
FieldRef fieldRef = (FieldRef)builder.InsertField(FieldType.FieldRef, true);
fieldRef.BookmarkName = "MyBookmark";
fieldRef.Update();

Assert.AreEqual(" REF  MyBookmark", fieldRef.GetFieldCode());
Assert.AreEqual("Hello world!", fieldRef.Result);

doc.Save(ArtifactsDir + "Field.SET.REF.docx");

Montre comment insérer des champs REF pour référencer des signets.

public void FieldRef()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.StartBookmark("MyBookmark");
    builder.InsertFootnote(FootnoteType.Footnote, "MyBookmark footnote #1");
    builder.Write("Text that will appear in REF field");
    builder.InsertFootnote(FootnoteType.Footnote, "MyBookmark footnote #2");
    builder.EndBookmark("MyBookmark");
    builder.MoveToDocumentStart();

    // Nous appliquerons un format de liste personnalisé, où le nombre de crochets angulaires indique le niveau de liste auquel nous nous trouvons actuellement.
    builder.ListFormat.ApplyNumberDefault();
    builder.ListFormat.ListLevel.NumberFormat = "> \x0000";

    // Insérez un champ REF qui contiendra le texte dans notre signet, agira comme un lien hypertexte et clonera les notes de bas de page du signet.
    FieldRef field = InsertFieldRef(builder, "MyBookmark", "", "\n");
    field.IncludeNoteOrComment = true;
    field.InsertHyperlink = true;

    Assert.AreEqual(" REF  MyBookmark \\f \\h", field.GetFieldCode());

    // Insère un champ REF et affiche si le signet référencé est au-dessus ou en dessous de celui-ci.
    field = InsertFieldRef(builder, "MyBookmark", "The referenced paragraph is ", " this field.\n");
    field.InsertRelativePosition = true;

    Assert.AreEqual(" REF  MyBookmark \\p", field.GetFieldCode());

    // Affiche le numéro de liste du signet tel qu'il apparaît dans le document.
    field = InsertFieldRef(builder, "MyBookmark", "The bookmark's paragraph number is ", "\n");
    field.InsertParagraphNumber = true;

    Assert.AreEqual(" REF  MyBookmark \\n", field.GetFieldCode());

    // Affiche le numéro de liste du signet, mais en omettant les caractères non délimiteurs, tels que les crochets angulaires.
    field = InsertFieldRef(builder, "MyBookmark", "The bookmark's paragraph number, non-delimiters suppressed, is ", "\n");
    field.InsertParagraphNumber = true;
    field.SuppressNonDelimiters = true;

    Assert.AreEqual(" REF  MyBookmark \\n \\t", field.GetFieldCode());

    // Descendre d'un niveau de liste.
    builder.ListFormat.ListLevelNumber++;
    builder.ListFormat.ListLevel.NumberFormat = ">> \x0001";

    // Affiche le numéro de liste du signet et les numéros de tous les niveaux de liste au-dessus.
    field = InsertFieldRef(builder, "MyBookmark", "The bookmark's full context paragraph number is ", "\n");
    field.InsertParagraphNumberInFullContext = true;

    Assert.AreEqual(" REF  MyBookmark \\w", field.GetFieldCode());

    builder.InsertBreak(BreakType.PageBreak);

    // Affiche les numéros de niveau de liste entre ce champ REF et le signet auquel il fait référence.
    field = InsertFieldRef(builder, "MyBookmark", "The bookmark's relative paragraph number is ", "\n");
    field.InsertParagraphNumberInRelativeContext = true;

    Assert.AreEqual(" REF  MyBookmark \\r", field.GetFieldCode());

    // À la fin du document, le signet apparaîtra ici comme élément de liste.
    builder.Writeln("List level above bookmark");
    builder.ListFormat.ListLevelNumber++;
    builder.ListFormat.ListLevel.NumberFormat = ">>> \x0002";

    doc.UpdateFields();
    doc.Save(ArtifactsDir + "Field.REF.docx");
}

/// <summary>
/// Demandez au générateur de documents d'insérer un champ REF, de référencer un signet avec celui-ci et d'ajouter du texte avant et après celui-ci.
/// </summary>
private static FieldRef InsertFieldRef(DocumentBuilder builder, string bookmarkName, string textBefore, string textAfter)
{
    builder.Write(textBefore);
    FieldRef field = (FieldRef)builder.InsertField(FieldType.FieldRef, true);
    field.BookmarkName = bookmarkName;
    builder.Write(textAfter);
    return field;
}

Voir également