FieldDdeAuto

FieldDdeAuto class

Implementa il campo DDEAUTO.

public class FieldDdeAuto : Field

Costruttori

Nome Descrizione
FieldDdeAuto() Default_Costruttore

Proprietà

Nome Descrizione
DisplayResult { get; } Ottiene il testo che rappresenta il risultato del campo visualizzato.
End { get; } Ottiene il nodo che rappresenta la fine del campo.
Format { get; } Ottiene aFieldFormat oggetto che fornisce l’accesso digitato alla formattazione del campo.
InsertAsBitmap { get; set; } Ottiene o imposta se inserire l’oggetto collegato come bitmap.
InsertAsHtml { get; set; } Ottiene o imposta se inserire l’oggetto collegato come testo in formato HTML.
InsertAsPicture { get; set; } Ottiene o imposta se inserire l’oggetto collegato come immagine.
InsertAsRtf { get; set; } Ottiene o imposta se inserire l’oggetto collegato in formato RTF (RTF).
InsertAsText { get; set; } Ottiene o imposta se inserire l’oggetto collegato in formato solo testo.
InsertAsUnicode { get; set; } Ottiene o imposta se inserire l’oggetto collegato come testo Unicode.
IsDirty { get; set; } Ottiene o imposta se il risultato corrente del campo non è più corretto (obsoleto) a causa di altre modifiche apportate al documento.
IsLinked { get; set; } Ottiene o imposta se ridurre la dimensione del file non memorizzando i dati grafici con il documento.
IsLocked { get; set; } Ottiene o imposta se il campo è bloccato (non dovrebbe ricalcolarne il risultato).
LocaleId { get; set; } Ottiene o imposta l’LCID del campo.
ProgId { get; set; } Ottiene o imposta il tipo di applicazione delle informazioni sul collegamento.
Result { get; set; } Ottiene o imposta il testo che si trova tra il separatore di campo e la fine del campo.
Separator { get; } Ottiene il nodo che rappresenta il separatore di campo. Può essere nullo.
SourceFullName { get; set; } Ottiene o imposta il nome e la posizione del file di origine.
SourceItem { get; set; } Ottiene o imposta la parte del file di origine che viene collegata.
Start { get; } Ottiene il nodo che rappresenta l’inizio del campo.
virtual Type { get; } Ottiene il tipo di campo di Microsoft Word.

Metodi

Nome Descrizione
GetFieldCode() Restituisce il testo tra l’inizio del campo e il separatore di campo (o la fine del campo se non è presente alcun separatore). Sono inclusi sia il codice campo che il risultato campo dei campi figlio.
GetFieldCode(bool) Restituisce il testo tra l’inizio del campo e il separatore di campo (o la fine del campo se non c’è un separatore).
Remove() Rimuove il campo dal documento. Restituisce un nodo subito dopo il campo. Se la fine del campo è l’ultimo figlio del suo nodo padre, restituisce il suo paragrafo padre. Se il campo è già stato rimosso, ritorna nullo .
Unlink() Esegue lo scollegamento del campo.
Update() Esegue l’aggiornamento del campo. Genera se il campo è già in fase di aggiornamento.
Update(bool) Esegue un aggiornamento del campo. Genera se il campo è già in fase di aggiornamento.

Osservazioni

Per le informazioni copiate da un’altra applicazione, questo campo collega tali informazioni al file di origine originale utilizzando DDE e viene aggiornato automaticamente.

Esempi

Mostra come utilizzare vari tipi di campo per collegarsi ad altri documenti nel file system locale e visualizzarne il contenuto.

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

    // Di seguito sono riportati tre tipi di campi che possiamo utilizzare per visualizzare i contenuti di un documento collegato sotto forma di testo.
    // 1 - Un campo LINK:
    builder.Writeln("FieldLink:\n");
    InsertFieldLink(builder, insertLinkedObjectAs, "Word.Document.8", MyDir + "Document.docx", null, true);

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

    // 3 - Un campo DDEAUTO:
    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);

    // Di seguito sono riportati tre tipi di campi che possiamo utilizzare per visualizzare i contenuti di un documento collegato sotto forma di immagine.
    // 1 - Un campo LINK:
    builder.Writeln("FieldLink:\n");
    InsertFieldLink(builder, insertLinkedObjectAs, "Excel.Sheet", MyDir + "MySpreadsheet.xlsx",
        "Sheet1!R2C2", true);

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

    // 3 - Un campo DDEAUTO:
    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>
/// Utilizza un generatore di documenti per inserire un campo LINK e impostarne le proprietà in base ai parametri.
/// </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>
/// Utilizzare un generatore di documenti per inserire un campo DDE e impostarne le proprietà in base ai parametri.
/// </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>
/// Utilizza un generatore di documenti per inserire un campo DDEAUTO e impostarne le proprietà in base ai parametri.
/// </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
{
    // Oggetto collegato come testo
    Text,
    Unicode,
    Html,
    Rtf,
    // Oggetto collegato come immagine
    Picture,
    Bitmap
}

Guarda anche