Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Lokutus am 21.08.02 - 23:37:22

Titel: Script-Formel beim ändern eines Feldes??
Beitrag von: Lokutus am 21.08.02 - 23:37:22
Wie (wo) muß ich Script eingeben, wenn ich will, dass eine Script-Formel ausgeführt wird, wenn ich das Feld änder (Listenfeld).


Falls es in so ein OnEnter kommt, wie sollte ich da fuer folgenden Code den Kopf und das Ende des Scriptes machen? Da gibt es ja kein vorgefertigtes leeres Script...

     Dim ws As New NotesUIWorkspace
     Dim uidoc As NotesUIDocument
     Dim doc As NotesDocument
     
     Set uidoc = ws.CurrentDocument
     Set doc=uidoc.Document
     
     
     
     If (doc.Kategorie(0)="Normpumpe") Then
           If (doc.Art(0)="Montage") Then
                 doc.Erg=2.5
           Else
                 doc.Erg=1.5
           End If
     End If
     If (doc.Kategorie(0)="Gliederpumpe") Then
           If (doc.Art(0)="Montage") Then
                 doc.Erg=8
           Else
                 doc.Erg=4
           End If
     End If
     If (doc.Kategorie(0)="Vakuumpumpe") Then
           If (doc.Art(0)="Montage") Then
                 doc.Erg=2.5
           Else
                 doc.Erg=2
           End If
     End If
     If (doc.Kategorie(0)="Seitenkanalpumpe") Then
           If (doc.Art(0)="Montage") Then
                 doc.Erg=4
           Else
                 doc.Erg=1.5
           End If
     End If
     If (doc.Kategorie(0)="Sonderpumpe") Then
           If (doc.Art(0)="Montage") Then
                 doc.Erg=4.25
           Else
                 doc.Erg=2.25
           End If
     End If
     If (doc.Kategorie(0)="") Then
           doc.Erg=0
     End If
     uidoc.Refresh


Danke...


Lokutus
Titel: Re: Script-Formel beim ändern eines Feldes??
Beitrag von: Glombi am 22.08.02 - 08:58:53
Hi Lokutus
Du könntest das wie folgt machen:

Für das Schlüsselwortfeld "Kategorie" setzt Du die Option"Felder bei Schlüsselwortänderung aktualisieren". Das findest Du in den Feld-Eigenschaften im 2. Tab. Dadurch wird das Event PostRecalc ausgelöst, wenn Du ein Schlüsselwort änderst.


Die Script-Programmierung wäre dann wie folgt:
====>
(Declarations)
Dim Kategorie_Old as String

Postopen
Kategorie_Old = Source.FieldGetText("Kategorie")

Postrecalc
if Kategorie_Old <> Source.FieldGetText("Kategorie") then

... hier dann Deine Formel OHNE uidoc.Refresh !!! ...


end if

Kategorie_Old = Source.FieldGetText("Kategorie")
'<==== Ende

Das sollte funktionieren. Das ganze kannst DU auch noch im QuerySave machen.

Gruß
Andreas