Et lotus script er opbygget stort set som en VB-script, der nok burde kunne køre i win CE, men jeg aner det ikke.
Her er et simpelt script der kan oprette helligdage.
Bemærk: Det er IKKE lavet til selve mail-databasen, men en anden database med et andet mål. Det skulle dog ikke kræve den store fantasi at få de rigtige felter lagt ind på de enkelte dokumenter:
Sub Initialize
Dim session As New notessession
Dim db As notesdatabase
Dim view As notesview
Dim col As notesdocumentcollection
Dim doc As notesdocument
Dim taeller As Integer
Dim aar As Integer
Dim c As Integer
Dim n As Integer
Dim k As Integer
Dim i As Integer
Dim ii As Integer
Dim iii As Integer
Dim j As Integer
Dim jj As Integer
Dim l As Integer
Set db = session.currentdatabase
Set view = db.getview(\"(opslag11)\")
\'--------------------------------------------------------------------
aar = Inputbox(\"Årstal\", \"Indtast år\")
c = Int(aar/100)
n = aar-19*Int(aar/19)
k = Int((c-17)/25)
i = c-Int(c/4)-Int((c-k)/3) + 19*n+15
ii = i-30*Int(i/30)
iii = ii-Int(ii/28)*(1-Int(ii/28)*Int(29/(ii+1))*Int((21-n)/11))
j = aar + Int(aar/4)+iii+2-c+Int(c/4)
jj = j-7*Int(j/7)
l = iii-jj
Paaskemdr = 3+Int((l+40)/44)
Paaskedag = l+28-31*Int(paaskemdr/4)
Dato = Datenumber(aar, paaskemdr, paaskedag)
start = Datenumber(aar, paaskemdr, paaskedag-3)
slut = Datenumber(aar, paaskemdr, paaskedag+1)
\'----------------check for Påske dette år----------------------------
Set col = view.getalldocumentsbykey(\"Påskeferie\")
Set doc = col.getfirstdocument
Do Until doc Is Nothing
If Year(doc.startdato(0)) = aar Then Goto Bededag
Set doc = col.getnextdocument(doc)
Loop
\'---------------------------------------------------------------------------------------
Set doc = db.createdocument
doc.form = \"ferie\"
doc.gruppe = \"Alle\"
doc.beskrivelse =\"Påskeferie\"
doc.startdato = start
doc.slutdato = slut
doc.duration = 5
Call doc.save(True, False)
Taeller = taeller +1
\'--------------- Bededag -------------------------------------------------------
Bededag:
start = Datenumber(aar, paaskemdr, paaskedag+26)
slut = Datenumber(aar, paaskemdr, paaskedag+26)
\'----------------check for bededag dette år----------------------------
Set col = view.getalldocumentsbykey(\"Bededagsferie\")
Set doc = col.getfirstdocument
Do Until doc Is Nothing
If Year(doc.startdato(0)) = aar Then Goto KRHimmel
Set doc = col.getnextdocument(doc)
Loop
\'---------------------------------------------------------------------------------------
Set doc = db.createdocument
doc.form = \"ferie\"
doc.gruppe = \"Alle\"
doc.beskrivelse =\"Bededagsferie\"
doc.startdato = start
doc.slutdato = slut
doc.duration = 1
Call doc.save(True, False)
Taeller = taeller +1
\'--------------- Kr. Himmelfart ------------------------------------------------
KRHimmel:
start = Datenumber(aar, paaskemdr, paaskedag+39)
slut = Datenumber(aar, paaskemdr, paaskedag+39)
\'----------------check for Kristi Himmelfart dette år----------------------------
Set col = view.getalldocumentsbykey(\"Kristi Himmelfartsferie\")
Set doc = col.getfirstdocument
Do Until doc Is Nothing
If Year(doc.startdato(0)) = aar Then Goto Pinse
Set doc = col.getnextdocument(doc)
Loop
\'---------------------------------------------------------------------------------------
Set doc = db.createdocument
doc.form = \"ferie\"
doc.gruppe = \"Alle\"
doc.beskrivelse =\"Kristi Himmelfartsferie\"
doc.startdato = start
doc.slutdato = slut
doc.duration = 1
Call doc.save(True, False)
Taeller = taeller +1
\'--------------- Pinse -------------------------------------------------------------
Pinse:
start = Datenumber(aar, paaskemdr, paaskedag+50)
slut = Datenumber(aar, paaskemdr, paaskedag+50)
\'----------------check for Pinse dette år----------------------------
Set col = view.getalldocumentsbykey(\"Pinseferie\")
Set doc = col.getfirstdocument
Do Until doc Is Nothing
If Year(doc.startdato(0)) = aar Then Goto Jul
Set doc = col.getnextdocument(doc)
Loop
\'---------------------------------------------------------------------------------------
Set doc = db.createdocument
doc.form = \"ferie\"
doc.gruppe = \"Alle\"
doc.beskrivelse =\"Pinseferie\"
doc.startdato = start
doc.slutdato = slut
doc.duration = 1
Call doc.save(True, False)
Taeller = taeller +1
\'--------------- Jul -----------------------------------------------------------------
Jul:
start = Datenumber(aar, 12, 24)
slut = Datenumber(aar, 12, 26)
\'----------------check for Jul dette år----------------------------
Set col = view.getalldocumentsbykey(\"Juleferie\")
Set doc = col.getfirstdocument
Do Until doc Is Nothing
If Year(doc.startdato(0)) = aar Then Goto Nytår
Set doc = col.getnextdocument(doc)
Loop
\'---------------------------------------------------------------------------------------
Set doc = db.createdocument
doc.form = \"ferie\"
doc.gruppe = \"Alle\"
doc.beskrivelse =\"Juleferie\"
doc.startdato = start
doc.slutdato = slut
doc.duration = 3
Call doc.save(True, False)
Taeller = taeller +1
\'--------------- Nytår -------------------------------------------------------------
Nytår:
Start = Datenumber(aar, 1,1)
Slut = Datenumber(aar, 1,1)
\'----------------check for Nytår dette år----------------------------
Set col = view.getalldocumentsbykey(\"Nytårsferie\")
Set doc = col.getfirstdocument
Do Until doc Is Nothing
If Year(doc.startdato(0)) = aar Then Goto Slut
Set doc = col.getnextdocument(doc)
Loop
\'---------------------------------------------------------------------------------------
Set doc = db.createdocument
doc.form = \"ferie\"
doc.gruppe = \"Alle\"
doc.beskrivelse =\"Nytårsferie\"
doc.startdato = start
doc.slutdato = slut
doc.duration = 1
Call doc.save(True, False)
Taeller = taeller +1
Slut:
If taeller = 1 Then
Print \"Der blev oprettet 1 ferie for året \" & Cstr(aar) & \" - resten var oprettet i forvejen\"
End If
If taeller = 0 Then
Print \"Der blev ikke oprettet nogen ferier for året \" & Cstr(aar) & \" - de var alle oprettet i forvejen\"
End If
If taeller > 1 Then
Print \"Ferier for \" & Cstr(aar) \" er oprettet, der blev oprettet \" & Cstr(Taeller) & \" ferier af 6 mulige (Nytår, Påske, Bededag, Kr.Himmelfart, Pinse, Jul).\"
End If
End Sub