IFieldUserPromptRespondent

IFieldUserPromptRespondent interface

Stellt den Befragten für Benutzereingaben während der Feldaktualisierung dar.

public interface IFieldUserPromptRespondent

Methoden

Name Beschreibung
Respond(string, string) Gibt bei Implementierung eine Antwort vom Benutzer auf Aufforderung zurück. Ihre Implementierung sollte zurückgeben Null um anzuzeigen, dass der Benutzer nicht auf die Eingabeaufforderung geantwortet hat (dh der Benutzer hat im Eingabeaufforderungsfenster auf die Schaltfläche Abbrechen geklickt).

Bemerkungen

Die ASK- und FILLIN-Felder sind Beispiele für Felder, die den Benutzer zu einer Antwort auffordern. Implementieren Sie dieses Interface und weisen Sie es dem zuUserPromptRespondent Eigenschaft, um eine Interaktion zwischen dem Feld update und dem Benutzer herzustellen.

Beispiele

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

[Test]
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 unser REF-Feld mit dem Namen des Lesezeichens zu referenzieren.
    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 die Standardantwort während eines Seriendrucks 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,
    // die während eines Seriendrucks auftreten.
    doc.FieldOptions.UserPromptRespondent = new MyPromptRespondent();
    doc.MailMerge.Execute(table);

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

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

Siehe auch