Feldwert auslesen und damit rechnen

  • Hallo,
    ich bin ganz neu hier, habe eigentlich keine Ahnung von Notes und Lotus Script, muß aber damit gerade was machen.
    Meine Frage:
    Ich habe im Lotus Notes Domino Designer R5 eine Datenbank (Test.nsf) erstellt.
    In ihr gibt es eine Maske, die heißt Dokument.
    Auf ihr befindet sich unter anderem ein Feld "DocId" und eine Schaltfläche"Berechnung".
    Beim Klick auf die Schaltfläche möchte ich den Inhalt des Feldes DocId in eine Variable "Id" einlesen und damit dann folgende Berechnungen durchführen:
    Ergebnis1 = Id/(256*256)
    Ergebnis2 = (Id/256) AND 255
    Zur Kontrolle sollen mir Messageboxen die einzelnen Ergebnis anzeigen.
    Kann mir da bitte jemand helfen?

  • Also wenn das feld DocId einen zahlen wert ist kannst du dieses problemlos machen mit folgenden formel.
    Ergebnis1 := DocId/(256*256);
    Ergebnis2 := @Modulo ((DocId/256) ; 255);
    @Prompt ([OK];"werten" ; "E1 :" +@Text( Ergebnis1 ) + " E2 : "+@Text(Ergebnis2))
    Wenn du die felder selber im dokument haben möchtest solltest du noch FIELD davor schreiben bei den jeweilige zuweisungen.

  • Hmmmm Lotusscript oder?


    Du mußt erstmat das Dokument anfassen.
    Das geht so aber noch nicht.


    Zuerst
    dim ws As New NotesuiWorkspace
    dim doc as NotesDocument
    set doc = ws.currentdocument.document


    Dann kannst Du mit dem Dokument im Backend arbeiten.


    z.B.:
    dim ID as Integer
    ID = cint(doc.DocID(0))


    Mit cint() von Variant zu Integer wandeln
    doc.feldname ist zum Ansprechen des feldes. Das (0) brauchst Du, weil Du ein Variant erhälst, und Du den ersten Eintrag willst.


    Dann ausrechen und mit
    Call setitemvalue("Feldname",Rechenergebnis)
    den Wert in ein Feld schreiben.


    Tip:
    Lies Dir mal in der Hilfe folgende Lotusscriptklassen und Befehle durch:


    NotesUiWorkspace
    NotesSession
    NotesDocument
    NotesUiDocument


    getitemvalue
    replaceitemvalue
    Cint
    Val


    und lies die Beschreibungen der datentypen, besonders Variant.


    Damit kannst Du dann schon einiges anfangen.


    Gruß
    Bonzai

  • Danke, daß auch du dich meines Problems angenommen hast.
    Die Variante von Ronka im Formel-Editor ging schon soweit so.
    Ich habe nur noch ein Problem mit dem logische UND "AND".
    Hintergrund:
    Meine Notes Maske zeigt mir nur einen View auf Dokumente in einer externen DatenQuelle (SQL-Datenbank).
    Das habe ich über DECS eingerichtet.
    Ich habe also keine Dokumente in der Notes- Datenbank.
    Um mir nun anhand der angezeigten DocId das Dokument richtig anzeigen lassen zu können muß ich anhand einer Formel den kongreten Ablageort dieses Dokumentes berechnen und dann kann ich es öffnen.
    Diese Formel ist mir bekannt.
    Sie sieht auszugsweise so aus:
    DocId/256 AND 255
    Nehmen wir an DocId/256 = 491
    Rechne ich nun auf dem wissenschaftlichen Taschenrechner von Windows 491 AND 255 kommt dort 235 raus.
    Wie sieht diese Formel denn nun in Notes aus?
    So wie Ronka schrieb:
    @Modulo (491 ; 255);
    kommt aber 236 raus und das ist ja nicht richtig.

  • Meines Wissens ist das mit Formelsprache so nicht zu machen. Du wirst doch auf LotusScript zurückgreifen müssen.
    Dort kannst Du ganz einfach AND als Operator verwenden.


    Gruß
    Bonzai

  • @modulo( DocId/256 ; 256 )


    Modulo gibt den REST wert bei einen teilung durch dieses zahl, vorher habe ich einen SCHREIBFEHLER gemacht, dort sollte es auch 256 sein, und nicht 255...


    Sorry...

  • Na gut und schön, könnte ich es ja auch mit LotusScript machen, aber wie erhalte ich da den Wert, der im Feld DocId steht? Wie schon beschrieben liegen ja keine Dokumente dahinter.
    Meine hoffentlich letzte Frage geht dann noch um den Zugriff auf eine SQL- Tabelle.
    Um den letzten Wert für meine Berechnungsformel zu erhalten, muß ich mir noch einen Wert aus einer Spalte einer SQL- Tabelle holen.
    Schreibt man da im LotusScript eine ganz normale SQL- Abfrage wie z.B. SELECT SpalteY from Tabelle.Test where DocId=X und wie sieht da die Connection zu dieser Tabelle aus?


    Danke nochmal vielmals für eure Hilfe.

  • Schau mal in der Designer Hilfe nach "SQL property" und "ODBCConnection"


    Da steht alles beschrieben. Ich habe mir das bisher nur angeschaut, bin noch nicht dazu gekommen das einzusetzen, es sieht aber recht einfach aus.


    Gruß
    Bonzai