FieldMergeField

FieldMergeField class

Implementa el campo MERGEFIELD.

Para obtener más información, visite elTrabajar con campos Artículo de documentación.

public class FieldMergeField : Field

Propiedades

NombreDescripción
DisplayResult { get; }Obtiene el texto que representa el resultado del campo mostrado.
End { get; }Obtiene el nodo que representa el final del campo.
FieldName { get; set; }Obtiene o establece el nombre de un campo de datos.
FieldNameNoPrefix { get; }Devuelve únicamente el nombre del campo de datos. Cualquier prefijo se elimina a la propiedad de prefijo.
Format { get; }Obtiene unFieldFormatobjeto que proporciona acceso tipificado al formato del campo.
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).
IsMapped { get; set; }Obtiene o establece si este campo es un campo asignado.
IsVerticalFormatting { get; set; }Obtiene o establece si se habilitará la conversión de caracteres para el formato vertical.
LocaleId { get; set; }Obtiene o establece el LCID del campo.
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.
TextAfter { get; set; }Obtiene o establece el texto que se insertará después del campo si el campo no está en blanco.
TextBefore { get; set; }Obtiene o establece el texto que se insertará antes del campo si el campo no está en blanco.
override Type { get; }Obtiene el tipo de campo de Microsoft Word.

Métodos

NombreDescripció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

Recupera el nombre de un campo de datos dentro de los caracteres de combinación en un documento principal de combinación de correspondencia. Cuando el documento principal se fusiona con la fuente de datos seleccionada, la información del campo de datos especificado se inserta en lugar del campo de combinación.

Ejemplos

Muestra cómo utilizar los campos MERGEFIELD para realizar una combinación de correspondencia.

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

// Cree una tabla de datos que se utilizará como fuente de datos de combinación de correspondencia.
DataTable table = new DataTable("Employees");
table.Columns.Add("Courtesy Title");
table.Columns.Add("First Name");
table.Columns.Add("Last Name");
table.Rows.Add("Mr.", "John", "Doe");
table.Rows.Add("Mrs.", "Jane", "Cardholder");

// Inserte un MERGEFIELD con una propiedad FieldName establecida en el nombre de una columna en la fuente de datos.
FieldMergeField fieldMergeField = (FieldMergeField)builder.InsertField(FieldType.FieldMergeField, true);
fieldMergeField.FieldName = "Courtesy Title";
fieldMergeField.IsMapped = true;
fieldMergeField.IsVerticalFormatting = false;

//Podemos aplicar texto antes y después del valor que acepta este campo cuando se realiza la fusión.
fieldMergeField.TextBefore = "Dear ";
fieldMergeField.TextAfter = " ";

Assert.AreEqual(" MERGEFIELD  \"Courtesy Title\" \\m \\b \"Dear \" \\f \" \"", fieldMergeField.GetFieldCode());
Assert.AreEqual(FieldType.FieldMergeField, fieldMergeField.Type);

// Inserte otro MERGEFIELD para una columna diferente en la fuente de datos.
fieldMergeField = (FieldMergeField)builder.InsertField(FieldType.FieldMergeField, true);
fieldMergeField.FieldName = "Last Name";
fieldMergeField.TextAfter = ":";

doc.UpdateFields();
doc.MailMerge.Execute(table);

Assert.AreEqual("Dear Mr. Doe:\u000cDear Mrs. Cardholder:", doc.GetText().Trim());

Ver también