FieldDde

FieldDde class

Implementerar DDE-fältet.

public class FieldDde : Field

Konstruktörer

namn Beskrivning
FieldDde() Default_Constructor

Egenskaper

namn Beskrivning
AutoUpdate { get; set; } Hämtar eller ställer in om det här fältet ska uppdateras automatiskt.
DisplayResult { get; } Hämtar texten som representerar det visade fältresultatet.
End { get; } Hämtar noden som representerar fältänden.
Format { get; } Får enFieldFormat objekt som ger maskinskriven åtkomst till fältets formatering.
InsertAsBitmap { get; set; } Hämtar eller ställer in om det länkade objektet ska infogas som en bitmapp.
InsertAsHtml { get; set; } Hämtar eller ställer in om det länkade objektet ska infogas som HTML-formattext.
InsertAsPicture { get; set; } Hämtar eller ställer in om det länkade objektet ska infogas som en bild.
InsertAsRtf { get; set; } Hämtar eller ställer in om det länkade objektet ska infogas i rich-text-format (RTF).
InsertAsText { get; set; } Hämtar eller ställer in om det länkade objektet ska infogas i endast textformat.
InsertAsUnicode { get; set; } Hämtar eller ställer in om det länkade objektet ska infogas som Unicode-text.
IsDirty { get; set; } Hämtar eller ställer in om det aktuella resultatet av fältet inte längre är korrekt (inaktuellt) på grund av andra ändringar som gjorts i dokumentet.
IsLinked { get; set; } Hämtar eller ställer in om filstorleken ska minskas genom att inte lagra grafikdata med dokumentet.
IsLocked { get; set; } Hämtar eller ställer in om fältet är låst (ska inte räkna om resultatet).
LocaleId { get; set; } Hämtar eller ställer in LCID för fältet.
ProgId { get; set; } Hämtar eller ställer in applikationstypen för länkinformationen.
Result { get; set; } Hämtar eller ställer in text som är mellan fältavgränsaren och fältslutet.
Separator { get; } Hämtar noden som representerar fältseparatorn. Kan vara null.
SourceFullName { get; set; } Hämtar eller ställer in namnet och platsen för källfilen.
SourceItem { get; set; } Hämtar eller ställer in den del av källfilen som länkas.
Start { get; } Hämtar noden som representerar början av fältet.
virtual Type { get; } Hämtar fälttypen Microsoft Word.

Metoder

namn Beskrivning
GetFieldCode() Returnerar text mellan fältstart och fältavgränsare (eller fältslut om det inte finns någon avgränsare). Både fältkod och fältresultat för underordnade fält ingår.
GetFieldCode(bool) Returnerar text mellan fältstart och fältavgränsare (eller fältslut om det inte finns någon avgränsare).
Remove() Tar bort fältet från dokumentet. Returnerar en nod direkt efter fältet. Om fältets slut är den sista child av dess överordnade nod, returnerar dess överordnade stycke. Om fältet redan är borttaget, returneras null .
Unlink() Utför fältavlänkningen.
Update() Utför fältuppdateringen. Kastar om fältet redan uppdateras.
Update(bool) Utför en fältuppdatering. Kastar om fältet redan uppdateras.

Anmärkningar

För information kopierad från ett annat program länkar detta fält den informationen till dess ursprungliga källfil med DDE.

Exempel

Visar hur man använder olika fälttyper för att länka till andra dokument i det lokala filsystemet och visa deras innehåll.

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

    // Nedan finns tre typer av fält som vi kan använda för att visa innehåll från ett länkat dokument i form av text.
    // 1 - A LINK-fält:
    builder.Writeln("FieldLink:\n");
    InsertFieldLink(builder, insertLinkedObjectAs, "Word.Document.8", MyDir + "Document.docx", null, true);

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

    // 3 - A DDEAUTO-fält:
    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);

    // Nedan finns tre typer av fält som vi kan använda för att visa innehåll från ett länkat dokument i form av en bild.
    // 1 - A LINK-fält:
    builder.Writeln("FieldLink:\n");
    InsertFieldLink(builder, insertLinkedObjectAs, "Excel.Sheet", MyDir + "MySpreadsheet.xlsx",
        "Sheet1!R2C2", true);

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

    // 3 - A DDEAUTO-fält:
    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>
/// Använd en dokumentbyggare för att infoga ett LÄNK-fält och ställ in dess egenskaper enligt parametrar.
/// </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>
/// Använd en dokumentbyggare för att infoga ett DDE-fält och ställ in dess egenskaper enligt parametrar.
/// </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>
/// Använd en dokumentbyggare för att infoga ett DDEAUTO-fält och ställ in dess egenskaper enligt parametrar.
/// </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
}

Se även