Styr alla händelser till scriptbiblioteken
Jag tänkte dela med mig av en lotusscriptteknik som jag lärde mig för några år sedan i samband med att jag arbetade med en produkt från ett företag som heter
ITFactory.
Tekniken går ut på att man styr bort händelser från formulären och vyerna till scriptbiblioteken istället. på detta sätt behöver man inte gå in i formulär och vyer varje gång man ska ändra tex. i QuerySave, Alla händelser styr man från samma scriptbibliotek oavsett hur många formulär och vyer man har.
Denna artikel beskriver hur man styr om alla formulär, vill man styra om vyer kan man göra det på liknande sätt, vyer har också händelser.
Så här gör man
1. Skapa ett scripbibliotek
2. Ställ dig i initialize händelsen och importera (Arkiv-> Importera) och välj filen FormEvents.lss som du kan ladda ned här nedan.
3. Döp Scriptbiblioteket till "FormEvents" och spara.
Vad du har gjort nu är att skapat händelserna och lagt dom i ett scriptbilbliotek. Om vi nu vill att alla formulärs händelser ska styras till scriptbiblioteket så måste vi gå in i varje formulär och lägga till följande kodrader
Händelse : Options :
Use "FormEvents"
Händelse : QueryOpen :
Call FormEvents(Source,Mode,IsNewDoc,Continue)
Ok, nu har vi styrt om alla händelser till scriptbiblioteken så nu behöver vi inte längre bry oss om händelserna i själva formulären utan kan gå direkt till scriptbiblioteket varje gång vi vill skriva kod för en visst formulärhändelse. men vi har glömt en sak, oftast så vill man kanske ha olika kod för olika formulär, detta löser vi genom att i varje händelse i scriptbiblioteket göra en case sats som kollar på vad formulärnamnet heter. (eftersom formulär kan ha alias så kan det vara bra att ha ett fält i varje formulär som man kollar på)
Sub FormQuerySave(Source As Notesuidocument, Continue As Variant)
Dim doc As notesdocument
Set doc = source.document
Select Case doc.Form(0)
Case "MyForm1"
' Skriv kod för QuerySave händelsen och formulärnamnet "MyForm1" här...
Case "MyForm2"
' Skriv kod för QuerySave händelsen och formulärnamnet "MyForm2" här...
End Select
End Sub
Nu är vi klara , om du har komplexa databaser med många formulär så kommer scripten i händelserna antagligen bli väldigt långa, men det kan man ju alltid dela upp med "subs" eller "funktioner".
Du kan ladda ner scriptbiblioteket som en lss fil
Här eller ladda ner en testdatabas
här
Relevanta Poster på Notessidan: