Anfängerfrage: Leichtester Zugriff auf Felder über LotusScript?

  • Hi,


    tja ich inzwischen schon ein wenig Lotusscript rumgemacht, was mir bisher am meisten Probleme dabei gemacht hat war der Zugriff auf Felder in einem Document (also lesen UND schreiben).


    Beim einen mal muß ich session, database, workspace, document und dann erst das Feld angeben. Beim anderen mal geht´s auch mit Source.document. und dann das Feld. Manchmal brauchts noch ein .getitemvalue. Wenn ich die Stichwörter in die Hilfe eingebe finde ich nur den Code in irgendwelchen Beispielen und meine zwei Bücher zu 700 Seiten streifen LotusScript nur.


    Wär jemand so nett und würd mir einen einfachen Weg zu den Feldern in meinen documenten erklären und was man beim Lesen und schreiben so beachten muß (z.B. ist mir immer noch nicht klar ob man die gesetzten Werte dann noch explizit speichern muß).


    Grüsse

  • Also, ein wenig Nachhilfe.
    Du kannst Dir einen Weg merken. Was macht man zuerst? Man starte Note, dann oeffnet man eine Datenbank, geht in eine Ansicht und waehlt ein Dokument.
    InSript sieht das so aus.
    Session, database, view, document. (Hierarchie)
    Der Begriff source taucht dann schon in einer Maske z.B. auf. Da biste dann aber auch schon in einem Dokument und hast dann mit Source schon das Dokuemnten-objekt im Zugriff.
    Also, je nachdem, wo Du Dich befindest, gibt´s unterschiedliche Wege oder Abkuerzungen.
    Auf ein Feld zugreifen dann, wenn Du das Dokumenten - Objekt erzeugt hast.
    Enfachste Methode: Wert holen....doc.Feldname(0)
    Felder sind immer Arrays..ausgenommen RichText Felder. Deswegen, auch wenn nur ein WErt drin steht die (0).
    Bei Feldernmit einem $ am Anfang geht diese Schreibweise nicht. doc.$Ref leifert einen Fehler.
    Da muss man dann doc.getItemValue("$Ref") benutzen.
    Setzen von Feldwerten. einfachste Methode:
    doc.Feldname = "Wert"
    doc.Feldname(0) liefert hier auch einen Fehler
    Dafuer, um mehrere Werte zu uebergeben, muesste man ein Array erzeugen, belegen und dieses Array dem Feld zuweisen.
    Im Geoeffneten Dokuemnt gibt es dann noch Methoden wie Notesuidocument.fieldgettext und fieldsettext um Felder UIdoc zu belegen.


    Auf jeden Fall muss das Dokument, wenn ueber die Documenten-methoden veraendert, gespeichert werden.
    also, nach dem Setzen der Feldwerte immer ein doc.save true,true


    So, erstmal was zum probieren ;)
    *Sonderfaelle so gut wie nicht beachtet

  • Hallo Nutzer81,


    ich glaube, dass du am besten das selber rausfinden kannst. Zu diesem Thema kann man ziemlich viel schreiben - mir fallen spontan zu deiner frage mind. 6 - 9 DIN A4 Seiten ein.


    Doch die Zeit habe ich nicht und deshalb gebe ich dir nur einen Tip: Versuche rauszufinden, was es heißt, Dokumente über Frontend (UI-Klassen) und über' s Backend anzusprechen.


    Wenn du den Unterschied rausgefunden hast, wird das ganze von alleine klarer.


    Dieser Beitrag ist nicht bös gemeint, hoffe trotzdem, dass dir diese kleine Info hilft.


    lg,
    ghostxxl

  • nur mal so zur info:


    anstatt doc.$ref(0) benutzt man doc.~$ref(0) dann geht es ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

    • Offizieller Beitrag

    um eine Übersicht über die Klassen und die Zusammenhänge zu bekommen, solltest Du Dir ein Poster besorgen, auf dem alle Scriptklassen dargestellt werden.


    Diese Poster gibt es bei IBM http://www-12.lotus.com/ldd/do…nsf/docs/Designer60Poster.


    Oder ein wesentlich besseres und übersichtlicheres von Groupware-Schulungen Wolfgang Hass http://classposter.gswh.de/


    Gruß
    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