FieldRef
Contenido
[
Ocultar
]FieldRef class
Implementa el campo REF.
Para obtener más información, visite elTrabajar con campos Artículo de documentación.
public class FieldRef : Field
Constructores
Nombre | Descripción |
---|---|
FieldRef() | Constructor predeterminado |
Propiedades
Nombre | Descripción |
---|---|
BookmarkName { get; set; } | Obtiene o establece el nombre del marcador referenciado. |
DisplayResult { get; } | Obtiene el texto que representa el resultado del campo mostrado. |
End { get; } | Obtiene el nodo que representa el final del campo. |
Format { get; } | Obtiene unFieldFormat objeto que proporciona acceso tipificado al formato del campo. |
IncludeNoteOrComment { get; set; } | Obtiene o establece si se deben incrementar los números de notas al pie, notas finales y anotaciones que están marcados por el marcador e insertar el texto de notas al pie, notas finales y comentarios correspondientes. |
InsertHyperlink { get; set; } | Obtiene o establece si se debe crear un hipervínculo al párrafo marcado. |
InsertParagraphNumber { get; set; } | Obtiene o establece si se debe insertar el número de párrafo del párrafo referenciado exactamente como aparece en el documento. |
InsertParagraphNumberInFullContext { get; set; } | Obtiene o establece si se debe insertar el número de párrafo del párrafo referenciado en el contexto completo. |
InsertParagraphNumberInRelativeContext { get; set; } | Obtiene o establece si se debe insertar el número de párrafo del párrafo referenciado en el contexto relativo. |
InsertRelativePosition { get; set; } | Obtiene o establece si se debe insertar la posición relativa del párrafo referenciado. |
IsDirty { get; set; } | Obtiene o establece si el resultado actual del campo ya no es correcto (obsoleto) debido a otras modificaciones realizadas al documento. |
IsLocked { get; set; } | Obtiene o establece si el campo está bloqueado (no debe recalcular su resultado). |
LocaleId { get; set; } | Obtiene o establece el LCID del campo. |
NumberSeparator { get; set; } | Obtiene o establece la secuencia de caracteres que se utiliza para separar los números de secuencia y los números de página. |
Result { get; set; } | Obtiene o establece el texto que está entre el separador de campo y el final del campo. |
Separator { get; } | Obtiene el nodo que representa el separador de campo. Puede sernulo . |
Start { get; } | Obtiene el nodo que representa el inicio del campo. |
SuppressNonDelimiters { get; set; } | Obtiene o establece si se deben suprimir los caracteres no delimitadores. |
virtual Type { get; } | Obtiene el tipo de campo de Microsoft Word. |
Métodos
Nombre | Descripción |
---|---|
GetFieldCode() | Devuelve el texto entre el inicio del campo y el separador de campo (o el final del campo si no hay separador). Se incluyen tanto el código de campo como el resultado de campo de los campos secundarios. |
GetFieldCode(bool) | Devuelve el texto entre el inicio del campo y el separador de campo (o el final del campo si no hay separador). |
Remove() | Elimina el campo del documento. Devuelve un nodo justo después del campo. Si el final del campo es el último hijo de su nodo padre, devuelve su párrafo padre. Si el campo ya se ha eliminado, devuelvenulo . |
Unlink() | Realiza la desvinculación del campo. |
Update() | Realiza la actualización del campo. Se lanza una excepción si el campo ya se está actualizando. |
Update(bool) | Realiza una actualización de campo. Se lanza una excepción si el campo ya se está actualizando. |
Observaciones
Inserta el texto o los gráficos representados por el marcador especificado.
Ejemplos
Muestra cómo crear texto marcado con un campo SET y luego mostrarlo en el documento utilizando un campo REF.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Nombra el texto marcado con un campo SET.
// Este campo se refiere al "marcador", no a una estructura de marcador que aparece dentro del texto, sino a una variable con nombre.
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());
// Hacer referencia al marcador por nombre en un campo REF y mostrar su contenido.
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");
Muestra cómo insertar campos REF para hacer referencia a marcadores.
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();
// Aplicaremos un formato de lista personalizado, donde la cantidad de corchetes angulares indica el nivel de lista en el que estamos actualmente.
builder.ListFormat.ApplyNumberDefault();
builder.ListFormat.ListLevel.NumberFormat = "> \x0000";
// Inserte un campo REF que contendrá el texto dentro de nuestro marcador, actuará como un hipervínculo y clonará las notas al pie del marcador.
FieldRef field = InsertFieldRef(builder, "MyBookmark", "", "\n");
field.IncludeNoteOrComment = true;
field.InsertHyperlink = true;
Assert.AreEqual(" REF MyBookmark \\f \\h", field.GetFieldCode());
// Inserta un campo REF y muestra si el marcador referenciado está encima o debajo de él.
field = InsertFieldRef(builder, "MyBookmark", "The referenced paragraph is ", " this field.\n");
field.InsertRelativePosition = true;
Assert.AreEqual(" REF MyBookmark \\p", field.GetFieldCode());
// Muestra el número de lista del marcador tal como aparece en el documento.
field = InsertFieldRef(builder, "MyBookmark", "The bookmark's paragraph number is ", "\n");
field.InsertParagraphNumber = true;
Assert.AreEqual(" REF MyBookmark \\n", field.GetFieldCode());
// Muestra el número de lista del marcador, pero se omiten los caracteres no delimitadores, como los corchetes angulares.
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());
// Bajar un nivel en la lista.
builder.ListFormat.ListLevelNumber++;
builder.ListFormat.ListLevel.NumberFormat = ">> \x0001";
// Muestra el número de lista del marcador y los números de todos los niveles de lista superiores.
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);
// Muestra los números de nivel de lista entre este campo REF y el marcador al que hace referencia.
field = InsertFieldRef(builder, "MyBookmark", "The bookmark's relative paragraph number is ", "\n");
field.InsertParagraphNumberInRelativeContext = true;
Assert.AreEqual(" REF MyBookmark \\r", field.GetFieldCode());
// Al final del documento, el marcador aparecerá como un elemento de la lista aquí.
builder.Writeln("List level above bookmark");
builder.ListFormat.ListLevelNumber++;
builder.ListFormat.ListLevel.NumberFormat = ">>> \x0002";
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.REF.docx");
}
/// <summary>
/// Haga que el generador de documentos inserte un campo REF, haga referencia a un marcador con él y agregue texto antes y después.
/// </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;
}
Ver también
- class Field
- espacio de nombres Aspose.Words.Fields
- asamblea Aspose.Words