Domino 9 und frühere Versionen > ND7: Entwicklung

Formel in Lotus Script ausführen

(1/3) > >>

dani_blues:
Hallo zusammen, ich habe bereits in diesem Thread http://atnotes.de/index.php?topic=41643.0 nach einer Lösung für mein Problem gefragt.

Nachdem dort keine Antwort kam, probier ich es jetzt einfach über einen neuen Thread, da es sich ja eigentlich um ein neues Problem handelt.

Meine Frage: Wie bekomme ich diese Formel in das Exiting eines Feldes? Da geht nur Lotus Script.

@SetField("alter";@DbLookup("":"NoCache"; ""; "Ansicht"; konvert1_2; "Alterandersdok"));
@If(@IsError(alter);@Prompt([Ok];"Hinweis";"Keine Übereinstimmung gefunden");"")

Gruss und Danke
Dani

koehlerbv:
Im anderen Thread ist Dir aber auch schon gesagt worden, dass Dein Konstrukt im Exiting Event nichts taugt. Kein Benutzer ist verpflichtet, das Feld auch zu verlassen.

Bau das in LS (NotesView.GetDocumentByKey) ins PostRecalc rein, dann wird das auch im QuerySave ausgeführt und bei F9. Und ins Exiting packst Du ein NotesUIWorkspace.ViewRefresh ein - das triggert dann das PostRecalc beim Verlassen des Feldes.

Bernhard

dani_blues:
Dankeschön!

Wenn ich nun diesen Code hinter eine Schaltfläche zum testen lege, erscheint erst der Fehler: Object variable not set
danach: Invalid key value type.

Hängt es wohl mit key = konvert_z1    zusammen?
konvert_z1 ist ein Feld.



Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   key =  konvert_z1
   Set db = session.CurrentDatabase
   Set view = db.GetView ("VorbelegteAlterView" )
   Set doc = view.GetDocumentByKey (key )
   If Not (doc Is Nothing) Then
      Messagebox "$" & doc.GetItemValue ("Alter")(0),, _
      "Alter"
   Else
      Messagebox "VorbelegteAlterView " + key,, "Not found"
   End If
End Sub

W

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   key =  konvert_z1
   Set db = session.CurrentDatabase
   Set view = db.GetView ("VorbelegteAlterView" )
   Set doc = view.GetDocumentByKey (key )
   If Not (doc Is Nothing) Then
      Messagebox "$" & doc.GetItemValue ("Alter")(0),, _
      "Alter"
   Else
      Messagebox "VorbelegteAlterView " + key,, "Not found"
   End If
End Sub

m3:
Na dann würde ich das Feld "konvert_z1" auch als solches verwenden NotesDocument.GetItemValue(...).

Im Gegensatz zur @-Formelsprache stehen einem die Felder in Lotusscript nicht automatisch als Variablen zur Verfügung.

eknori:

--- Zitat ---Object variable not set
--- Ende Zitat ---

Benutze Option Declare und den debugger. Dann lösen sich solche Fehler sofort in Wohlgefallen auf.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln