FieldAsk

FieldAsk class

Implementiert das ASK-Feld.

Um mehr zu erfahren, besuchen Sie dieArbeiten mit Feldern Dokumentationsartikel.

public class FieldAsk : Field

Konstrukteure

NameBeschreibung
FieldAsk()Default_Constructor

Eigenschaften

NameBeschreibung
BookmarkName { get; set; }Ruft den Namen des Lesezeichens ab oder legt ihn fest.
DefaultResponse { get; set; }Ruft die Standardbenutzerantwort ab oder legt sie fest (Anfangswert im Eingabeaufforderungsfenster).
DisplayResult { get; }Ruft den Text ab, der das angezeigte Feldergebnis darstellt.
End { get; }Ruft den Knoten ab, der das Feldende darstellt.
Format { get; }Erhält eineFieldFormatObjekt, das typisierten Zugriff auf die Formatierung des Felds bietet.
IsDirty { get; set; }Ruft ab oder legt fest, ob das aktuelle Ergebnis des Felds aufgrund anderer am Dokument vorgenommener Änderungen nicht mehr korrekt (veraltet) ist.
IsLocked { get; set; }Ruft ab oder legt fest, ob das Feld gesperrt ist (das Ergebnis sollte nicht neu berechnet werden).
LocaleId { get; set; }Ruft die LCID des Felds ab oder legt sie fest.
PromptOnceOnMailMerge { get; set; }Ruft ab oder legt fest, ob die Benutzerantwort einmal pro Serienbriefvorgang empfangen werden soll.
PromptText { get; set; }Ruft den Eingabeaufforderungstext (den Titel des Eingabeaufforderungsfensters) ab oder legt ihn fest.
Result { get; set; }Ruft Text ab oder legt ihn fest, der zwischen Feldtrennzeichen und Feldende steht.
Separator { get; }Ruft den Knoten ab, der das Feldtrennzeichen darstellt. Kann seinnull .
Start { get; }Ruft den Knoten ab, der den Anfang des Felds darstellt.
virtual Type { get; }Ruft den Microsoft Word-Feldtyp ab.

Methoden

NameBeschreibung
GetFieldCode()Gibt Text zwischen Feldanfang und Feldtrennzeichen zurück (oder Feldende, wenn kein Trennzeichen vorhanden ist). Sowohl Feldcode als auch Feldergebnis von untergeordneten Feldern werden einbezogen.
GetFieldCode(bool)Gibt Text zwischen Feldanfang und Feldtrennzeichen zurück (oder Feldende, wenn kein Trennzeichen vorhanden ist).
Remove()Entfernt das Feld aus dem Dokument. Gibt einen Knoten direkt nach dem Feld zurück. Wenn das Ende des Felds das letzte Kind seines übergeordneten Knotens ist, wird dessen übergeordneter Absatz zurückgegeben. Wenn das Feld bereits entfernt wurde, wird zurückgegebennull .
Unlink()Führt die Feldverknüpfung aus.
Update()Führt die Feldaktualisierung durch. Wird ausgelöst, wenn das Feld bereits aktualisiert wird.
Update(bool)Führt eine Feldaktualisierung durch. Wird ausgelöst, wenn das Feld bereits aktualisiert wird.

Bemerkungen

Fordert den Benutzer auf, Informationen einzugeben, und weist ein Lesezeichen zu, das die Antwort des Benutzers darstellt.

Beispiele

Zeigt, wie ein ASK-Feld erstellt und seine Eigenschaften festgelegt werden.

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

    // Platzieren Sie ein Feld, in dem die Antwort auf unser ASK-Feld platziert wird.
    FieldRef fieldRef = (FieldRef)builder.InsertField(FieldType.FieldRef, true);
    fieldRef.BookmarkName = "MyAskField";
    builder.Writeln();

    Assert.AreEqual(" REF  MyAskField", fieldRef.GetFieldCode());

    // Fügen Sie das ASK-Feld ein und bearbeiten Sie seine Eigenschaften, um über den Lesezeichennamen auf unser REF-Feld zu verweisen.
    FieldAsk fieldAsk = (FieldAsk)builder.InsertField(FieldType.FieldAsk, true);
    fieldAsk.BookmarkName = "MyAskField";
    fieldAsk.PromptText = "Please provide a response for this ASK field";
    fieldAsk.DefaultResponse = "Response from within the field.";
    fieldAsk.PromptOnceOnMailMerge = true;
    builder.Writeln();

    Assert.AreEqual(
        " ASK  MyAskField \"Please provide a response for this ASK field\" \\d \"Response from within the field.\" \\o",
        fieldAsk.GetFieldCode());

    // ASK-Felder wenden während eines Seriendrucks die Standardantwort auf ihre jeweiligen REF-Felder an.
    DataTable table = new DataTable("My Table");
    table.Columns.Add("Column 1");
    table.Rows.Add("Row 1");
    table.Rows.Add("Row 2");

    FieldMergeField fieldMergeField = (FieldMergeField)builder.InsertField(FieldType.FieldMergeField, true);
    fieldMergeField.FieldName = "Column 1";

    // Wir können die Standardantwort in unseren ASK-Feldern mit einem benutzerdefinierten Prompt-Responder ändern oder überschreiben.
    // was während eines Serienbriefs geschieht.
    doc.FieldOptions.UserPromptRespondent = new MyPromptRespondent();
    doc.MailMerge.Execute(table);

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

/// <summary>
/// Fügt während einer Serienbrieffunktion der Standardantwort eines ASK-Felds Text voran.
/// </summary>
private class MyPromptRespondent : IFieldUserPromptRespondent
{
    public string Respond(string promptText, string defaultResponse)
    {
        return "Response from MyPromptRespondent. " + defaultResponse;
    }
}

Siehe auch