Felder auslesen und schreiben

  • Hallo


    bitte nicht schlagen ?(


    Wann brauche ich
    - doc.GetItemValue("Feld")
    - doc.GetItemValue("Feld")(0)
    - doc.Feld
    - doc.Feld(0)


    Und was nimmt man, wenn per Agent ein email verschickt wird und im Body-Feld Werte aus dem Dokument stehen sollen?



    Danke
    Lizzy

  • Hi,


    Schlagen tun wir nicht. :D


    Aber gerade bei den von dir gewünschten Informationen handelt es sich um Grundlagenwissen.


    Und in solchen Fällen wird aber immer gerne aus die Designer-Hilfe verwiesen.


    Um aber dennoch ein paar kleine Hinweise zu geben.


    doc.GetItemValue("Feld") => liest alle Werte aus einem Feld
    doc.GetItemValue("Feld")(0) => liest ledoiglich den ersten Wert aus einem Feld


    doc.Feld = nur eine andere Variante von GetItemValue("Feld")
    doc.Feld(0) = nur eine andere Variante von GetItemValue("Feld")(0)


    Und für das Schreiben des Body-Feldes schaust du dir am besten einmal die Klasse "NotesRichTextItem" an.




    Andreas

  • Hallo


    ich bin mir nur bei dem Thema immer unsicher.


    Das heisst also, es gibt eigentlich keinen Unterschied, ob ich GetItemValue nehme oder doc.Feld !?


    Und es macht - vorausgesetzt ich habe ein Feld mit nur einem ! Wert - auch keinen Unterschied, ob ich mit oder ohne (0) arbeite.



    Und sehe ich folgendes richtig?
    Wenn ich einer Variablen so einen Feldinhalt zuweisen will, dann kann ich die Variable als String deklarieren, wenn ich doc.GetItemValue("Feld")(0) oder doc.Feld(0) benutze.
    Wenn ich aber doc.GetItemValue("Feld") oder doc.Feld benutze, dann muss die Variable als Variant deklariert sein.
    Stimmt das so?


    Das Body Feld ist ansich kein Problem. Aber auch hier bin ich mir unsicher, ob ich beide Varianten, also GetItemValue u. doc.Feld nehmen kann.


    Danke
    Lizzy

  • Felder werden immer als Array gesehen, auch wenn oft nur ein Wert vorliegt, dabei gilt für Einfachwerte:
    Zuweisen / Werte setzen: doc.feld = "Wert" im Gegensatz zu doc.feld(0) = "Wert" das geht nicht, erzeugt einen Fehler.
    Werte Lesen: if doc.feld(0) = "Wert" then im Gegensatz zu if doc.feld = "Wert" then das geht nicht, erzeugt einen Fehler.


    Bei Mehrfachwerten imnmer mit den Methoden z.B. doc.replaceItemvalue arbeiten.


    Bei Richtext mit der Klassen NotesRichtextItem arbeiten, maximal Text auslesen mit doc.getFirstItem("RTFeld").text


    doc.GetItemValue("Feld") kann nur einer Variant-Variable zugewiesen werden, da die Größe des Arrays unbekannt ist.

    • Offizieller Beitrag

    doc.GetItemValue(...) hat den Vorteil, dass ich den Feldnamen als Variable mit geben kann.

    Code
    Feldname = "Test_Feld"
    wert = doc.GetItemValue(Feldname)


    Z.B. Feldnamen wie Feld1, Feld2, ... Fel100 können dann über eine Schleife eingelesen werden.
    Auch wenn Feldnamen an eine Sub, Function usw. übergebenw erden, ist GetItemValue von Vorteil.


    Alternativ geht natürlich auch der Weg übers NitesItem.


    Viele Grüße
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein