Domino 9 und frühere Versionen > Entwicklung
Script-Bibliothek einbinden
Bille:
Hallo!
Ich hab eine Frage zu den Script-Bibliotheken.
Muss das Einbinden der Lib mit
Use "Libname"
in jeder Maske bei den Options vorgenommen werden, oder gibt es eine Möglichkeit, dass die Lib für die ganze Datenbank gilt?
Hintergrund:
Ich habe eine Datenbank mit verschiedenen Formularen (= jeweils separate Maske) und möchte nun in jeder dieser Maske vorhandene Funktionenen verwenden.
Außerdem tritt bei mir gerade das Problem auf, dass Notes mir beim Abspeichern meines Codes den Fehler
Illegal parenthesized reference
auswirft. Und zwar in der Zeile, in der ich erstmals auf die Funktion der Lib zugreifen will.
Ich hab mittlerweile schon den Code mit anderen DB's verglichen, wo's prima funktioniert und finde keinen Unterschied.
Im Forum hab ich gelesen, dass der Fehler auftritt, wenn man eine Funktion ohne Call aufruft.
doc.Name = DbLookup( "kunden.nsf", "KundenlisteHKT", doc.KdNr(0), "Name" )
So müßte es doch eigentlich passen.
Kann mir bitte jemand auf die Sprünge helfen?
Gruß, Bille
koehlerbv:
Zu Deiner ersten Frage: Ja, Du musst in jedem Designelement, in der Du bestimmte Libs verwenden willst, deren Verwendung mit dem Use-Statement ansagen.
Die Fehlermeldung beim Aufruf Deiner Function kann leider mehrere Ursachen haben.
Entsprechend des Einsatzes bei Dir müsste es unbedingt eine Function sein und keine Sub. Der Call ist nur erforderlich, wenn Du eine Function aufruft, ohne das Ergebnis zu verwerten.
Wurde das entsprechende Design-Element nach Einbinden der ScriptLib (oder nach Änderung der ScriptLib) ebenfalls neu kompiliert ?
Ein Tip (aus meiner Erfahrung): Verwende keine Namen für Functions und Subs, die von Notes bereits selber verwendet werden - das könnte zumindest bei in der Zukunft erscheinenden Versionen mal zu Problemen führen. Beispiel: Implode gab es bis R5 nur als @function, ab R6 aber auch als LS-Function ...
Bernhard
Bille:
Hallo Bernhard,
vielen Dank für die rasche Hilfe.
Deinen Tipp mit der Namensbezeichnung werde ich künftig beherzigen.
Ich hab meine Funktion jetzt einfach mal in DBLookup2 umgetauft.
Kann mein Problem evtl. damit zusammenhängen, dass ich die Funktion aus dem "Exiting"-Ereignis aufrufe?
(Vielleicht macht diese Frage jetzt Null Sinn, aber ich weiß es halt ned besser.)
Sub Exiting(Source As Field)
Dim w As New NotesUIWorkspace
Dim doc As NotesDocument
Set doc = w.CurrentDocument.Document
doc.Name = DbLookup2( "kunden.nsf", "KundenlisteHKT", doc.KdNr(0), "Name" )
End Sub
Bille
koehlerbv:
Wo hast Du denn das Use "<DeineScriptLib>" zu stehen ?
Wie sieht das mit der Kompilation von ScriptLib und Maske aus (siehe meine Frage im letzten Posting) ?
Kannst Du die DB ohne Dokumente hier (oder direkt an mich per eMail) zur Verfügung stellen ? Das würde einiges erleichtern ;-)
Bernhard
Bille:
Das Use "Utils" steht in den Options der Maske.
Müßte doch richtig sein, oder?
Was das Kompilieren angeht. (Danke übrigens für die Erklärung.)
Ich hab in der Lib den Namen abgeändert und neu gespeichert.
Nachdem das nichts brachte, hab ich das ganze nochmals sauber von vorne erfasst.
Also zuerst Lib eingefügt, Use "Utils" eingetragen, im Exiting-Ereignis auf Funktion zugreifen wollen.
Leider wieder dasselbe.
@Bernhard:
Die Datenbank hab ich Dir geschickt. Es eilt auch gar nicht, reicht bis morgen 8 Uhr *haha*
Nein, im Ernst. Pressiert gar ned. Finds total nett, dass Du drüberschaust. Bestimmt hab ich was total simples falsch gemacht.
Danke schon mal vorab!!!
Bille
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln