FieldDde

FieldDde class

Implementiert das DDE-Feld.

public class FieldDde : Field

Konstrukteure

Name Beschreibung
FieldDde() Default_Constructor

Eigenschaften

Name Beschreibung
AutoUpdate { get; set; } Ruft ab oder legt fest, ob dieses Feld automatisch aktualisiert werden soll.
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 aFieldFormat Objekt, das typisierten Zugriff auf die Feldformatierung bereitstellt.
InsertAsBitmap { get; set; } Ruft ab oder legt fest, ob das verknüpfte Objekt als Bitmap eingefügt werden soll.
InsertAsHtml { get; set; } Ruft ab oder legt fest, ob das verknüpfte Objekt als Text im HTML-Format eingefügt werden soll.
InsertAsPicture { get; set; } Ruft ab oder legt fest, ob das verknüpfte Objekt als Bild eingefügt werden soll.
InsertAsRtf { get; set; } Ruft ab oder legt fest, ob das verknüpfte Objekt im Rich-Text-Format (RTF) eingefügt werden soll.
InsertAsText { get; set; } Ruft ab oder legt fest, ob das verknüpfte Objekt im Nur-Text-Format eingefügt werden soll.
InsertAsUnicode { get; set; } Ruft ab oder legt fest, ob das verknüpfte Objekt als Unicode-Text eingefügt werden soll.
IsDirty { get; set; } Ruft ab oder legt fest, ob das aktuelle Ergebnis des Felds aufgrund anderer Änderungen am Dokument nicht mehr korrekt (veraltet) ist.
IsLinked { get; set; } Ruft ab oder legt fest, ob die Dateigröße reduziert werden soll, indem keine Grafikdaten mit dem Dokument gespeichert werden.
IsLocked { get; set; } Ruft ab oder legt fest, ob das Feld gesperrt ist (sollte sein Ergebnis nicht neu berechnen).
LocaleId { get; set; } Ruft die LCID des Felds ab oder legt sie fest.
ProgId { get; set; } Ruft den Anwendungstyp der Linkinformationen ab oder legt ihn fest.
Result { get; set; } Liest oder setzt Text, der zwischen dem Feldtrennzeichen und dem Feldende steht.
Separator { get; } Ruft den Knoten ab, der das Feldtrennzeichen darstellt. Kann null sein.
SourceFullName { get; set; } Ruft den Namen und Speicherort der Quelldatei ab oder legt ihn fest.
SourceItem { get; set; } Ruft den Teil der Quelldatei ab, der verknüpft wird, oder legt ihn fest.
Start { get; } Ruft den Knoten ab, der den Anfang des Felds darstellt.
virtual Type { get; } Ruft den Microsoft Word-Feldtyp ab.

Methoden

Name Beschreibung
GetFieldCode() Gibt Text zwischen Feldanfang und Feldtrennzeichen zurück (oder Feldende, wenn kein Trennzeichen vorhanden ist). Sowohl Feldcode als auch Feldergebnis von untergeordneten Feldern sind enthalten.
GetFieldCode(bool) Gibt Text zwischen Feldanfang und Feldtrennzeichen (oder Feldende, wenn kein Trennzeichen vorhanden ist) zurück.
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 Elternknotens ist, wird sein Elternabsatz zurückgegeben. Wenn das Feld bereits entfernt wurde, wird zurückgegeben Null .
Unlink() Führt das Feld Unlink 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

Bei Informationen, die aus einer anderen Anwendung kopiert wurden, verknüpft dieses Feld diese Informationen mithilfe von DDE mit der ursprünglichen Quelldatei.

Beispiele

Zeigt, wie Sie verschiedene Feldtypen verwenden, um auf andere Dokumente im lokalen Dateisystem zu verlinken und deren Inhalt anzuzeigen.

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

    // Unten sind drei Arten von Feldern, die wir verwenden können, um Inhalte aus einem verknüpften Dokument in Form von Text anzuzeigen.
    // 1 - Ein LINK-Feld:
    builder.Writeln("FieldLink:\n");
    InsertFieldLink(builder, insertLinkedObjectAs, "Word.Document.8", MyDir + "Document.docx", null, true);

    // 2 - Ein DDE-Feld:
    builder.Writeln("FieldDde:\n");
    InsertFieldDde(builder, insertLinkedObjectAs, "Excel.Sheet", MyDir + "Spreadsheet.xlsx",
        "Sheet1!R1C1", true, true);

    // 3 - Ein DDEAUTO-Feld:
    builder.Writeln("FieldDdeAuto:\n");
    InsertFieldDdeAuto(builder, insertLinkedObjectAs, "Excel.Sheet", MyDir + "Spreadsheet.xlsx",
        "Sheet1!R1C1", true);

    doc.UpdateFields();
    doc.Save(ArtifactsDir + "Field.LINK.DDE.DDEAUTO.docx");
}

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

    // Unten sind drei Arten von Feldern, die wir verwenden können, um Inhalte aus einem verknüpften Dokument in Form eines Bildes anzuzeigen.
    // 1 - Ein LINK-Feld:
    builder.Writeln("FieldLink:\n");
    InsertFieldLink(builder, insertLinkedObjectAs, "Excel.Sheet", MyDir + "MySpreadsheet.xlsx",
        "Sheet1!R2C2", true);

    // 2 - Ein DDE-Feld:
    builder.Writeln("FieldDde:\n");
    InsertFieldDde(builder, insertLinkedObjectAs, "Excel.Sheet", MyDir + "Spreadsheet.xlsx",
        "Sheet1!R1C1", true, true);

    // 3 - Ein DDEAUTO-Feld:
    builder.Writeln("FieldDdeAuto:\n");
    InsertFieldDdeAuto(builder, insertLinkedObjectAs, "Excel.Sheet", MyDir + "Spreadsheet.xlsx",
        "Sheet1!R1C1", true);

    doc.UpdateFields();
    doc.Save(ArtifactsDir + "Field.LINK.DDE.DDEAUTO.AsImage.docx");
}

/// <summary>
/// Verwenden Sie einen Document Builder, um ein LINK-Feld einzufügen und seine Eigenschaften gemäß Parametern festzulegen.
/// </summary>
private static void InsertFieldLink(DocumentBuilder builder, InsertLinkedObjectAs insertLinkedObjectAs,
    string progId, string sourceFullName, string sourceItem, bool shouldAutoUpdate)
{
    FieldLink field = (FieldLink)builder.InsertField(FieldType.FieldLink, true);

    switch (insertLinkedObjectAs)
    {
        case InsertLinkedObjectAs.Text:
            field.InsertAsText = true;
            break;
        case InsertLinkedObjectAs.Unicode:
            field.InsertAsUnicode = true;
            break;
        case InsertLinkedObjectAs.Html:
            field.InsertAsHtml = true;
            break;
        case InsertLinkedObjectAs.Rtf:
            field.InsertAsRtf = true;
            break;
        case InsertLinkedObjectAs.Picture:
            field.InsertAsPicture = true;
            break;
        case InsertLinkedObjectAs.Bitmap:
            field.InsertAsBitmap = true;
            break;
    }

    field.AutoUpdate = shouldAutoUpdate;
    field.ProgId = progId;
    field.SourceFullName = sourceFullName;
    field.SourceItem = sourceItem;

    builder.Writeln("\n");
}

/// <summary>
/// Verwenden Sie einen Document Builder, um ein DDE-Feld einzufügen, und legen Sie seine Eigenschaften gemäß Parametern fest.
/// </summary>
private static void InsertFieldDde(DocumentBuilder builder, InsertLinkedObjectAs insertLinkedObjectAs, string progId,
    string sourceFullName, string sourceItem, bool isLinked, bool shouldAutoUpdate)
{
    FieldDde field = (FieldDde)builder.InsertField(FieldType.FieldDDE, true);

    switch (insertLinkedObjectAs)
    {
        case InsertLinkedObjectAs.Text:
            field.InsertAsText = true;
            break;
        case InsertLinkedObjectAs.Unicode:
            field.InsertAsUnicode = true;
            break;
        case InsertLinkedObjectAs.Html:
            field.InsertAsHtml = true;
            break;
        case InsertLinkedObjectAs.Rtf:
            field.InsertAsRtf = true;
            break;
        case InsertLinkedObjectAs.Picture:
            field.InsertAsPicture = true;
            break;
        case InsertLinkedObjectAs.Bitmap:
            field.InsertAsBitmap = true;
            break;
    }

    field.AutoUpdate = shouldAutoUpdate;
    field.ProgId = progId;
    field.SourceFullName = sourceFullName;
    field.SourceItem = sourceItem;
    field.IsLinked = isLinked;

    builder.Writeln("\n");
}

/// <summary>
/// Verwenden Sie einen Document Builder, um ein DDEAUTO-Feld einzufügen und seine Eigenschaften gemäß Parametern festzulegen.
/// </summary>
private static void InsertFieldDdeAuto(DocumentBuilder builder, InsertLinkedObjectAs insertLinkedObjectAs,
    string progId, string sourceFullName, string sourceItem, bool isLinked)
{
    FieldDdeAuto field = (FieldDdeAuto)builder.InsertField(FieldType.FieldDDEAuto, true);

    switch (insertLinkedObjectAs)
    {
        case InsertLinkedObjectAs.Text:
            field.InsertAsText = true;
            break;
        case InsertLinkedObjectAs.Unicode:
            field.InsertAsUnicode = true;
            break;
        case InsertLinkedObjectAs.Html:
            field.InsertAsHtml = true;
            break;
        case InsertLinkedObjectAs.Rtf:
            field.InsertAsRtf = true;
            break;
        case InsertLinkedObjectAs.Picture:
            field.InsertAsPicture = true;
            break;
        case InsertLinkedObjectAs.Bitmap:
            field.InsertAsBitmap = true;
            break;
    }

    field.ProgId = progId;
    field.SourceFullName = sourceFullName;
    field.SourceItem = sourceItem;
    field.IsLinked = isLinked;
}

public enum InsertLinkedObjectAs
{
    // LinkedObjectAsText
    Text,
    Unicode,
    Html,
    Rtf,
    // LinkedObjectAsImage
    Picture,
    Bitmap
}

Siehe auch