Aantal dagen in een bepaalde periode met LotusScript

Voor een applicatie moest herhaaldelijk uitgerekend worden hoeveel dagen er in een bepaalde periode zitten. De volgende functie voldeed hier goed: Input: getDaysBetween(“31-12-2007″,”01-01-2007”, “1,7” ,”25/12/07 – 26/12/07,05-12-2007″,Doc)   Output: 258 Function getDaysBetween(strStart As String, strEnd As String,daysToExclude As String , datesToExclude As String ,Doc As NotesDocument) As Long On Error GoTo ErrorHandler Dim Formula As Variant Dim dLow As String Dim dHigh As String If strStart = “” Or strEnd = “” Then GoTo ErrorHandler strStart = {@TextToTime(“} & strStart & {“)} strEnd= {@TextToTime(“} & strEnd & {“)} If daysToExclude = “” Then dLow = {;0} Else dLow = {;@TextToNumber(@Explode(“} & daysToExclude & {“;”,”))} End If If Not datesToExclude = “” Then dLow = dLow & {;@TextToTime(@Explode(@TextToTime(@Explode(“} & datesToExclude & {“;”,”))))} End If dHigh$ = {@BusinessDays(} & strStart$ & {;} & strEnd$ & dLow & {)} dLow$ = {-@BusinessDays(} & strEnd$ & {;} & strStart$ & dLow & {)} Formula = Evaluate({@If(} & strStart & {>} & strEnd & {;} & dLow$ & {;} & dHigh$ & {)} ,Doc) getDaysBetween = CLng(Formula(0)) Exit Function ErrorHandler: MsgBox GetThreadInfo(1) & ” ” & Error & ” (” & Err & “) op regel ” & Erl & “.” getDaysBetween = 0 Exit Function Resume Next End Function lees meer…

Lees verder ...

Kleurfuncties zoals RGB en Webkleuren

Soms is het nodig om kleuren te vertalen naar andere formaten. Excel wil bijvoorbeeld graag een RGB kleur als type Long zien, in style sheets e.d. gebruik je de Webkleuren in Hex formaat e.d. Meestal gebruik ik het kleurenpallet van Notes om een kleur te bepalen, en gebruik de RGB waarden om verder te werken. Een aantal LotusScript functies die ik dan gebruik zijn de volgende: Van RGB waarden naar Long (gelijk aan VBA functie, bijv. voor export naar Excel) : Function RGB(Byval lRed As Long, Byval lGreen As Long, Byval lBlue As Long) As Long ‘input 255,255,255 Dim tmpLong As Long tmpLong = lRed tmpLong = tmpLong + (lGreen*256) tmpLong = tmpLong + (lBlue*Clng(65536)) RGB = tmpLong ‘Output 16777215 End Function Van HEX naar RGB String (met kleine aanapssing voor bijv. weergavekolommen e.d.) : Function HEX2RGB(Byval HexColor As String) As String ‘Input #FFFFFF HexColor = Replace(HexColor, “#”, “”) HEX2RGB = Val(“&H” & Mid(HexColor, 1, 2))  & “,” & Val(“&H” & Mid(HexColor, 3, 2)) & “,” & Val(“&H” & Mid(HexColor, 5, 2)) ‘Output 255,255,255 End Function Van RGB waarden naar Hex (voor Web, css e.d.): Function RGB2HEX(Byval lRed As Long, Byval lGreen As Long, Byval lBlue As Long) As String ‘ input 255,255,255 RGB2HEX = Right(Cstr(Hex(lBlue + 256*(lGreen+256*lRed))),6) ‘ Output FFFFFF End Function RGB kleur naar Notes kleuren (Richtext item e.d.): Function RGB2NOTES(Byval lRed As Long, Byval lGreen As Long, Byval lBlue As Long) As Integer Dim session As New NotesSession Dim color As NotesColorObject Set color = session.CreateColorObject RGB2NOTES = color.SetRGB(lRed,lGreen,lBlue) End Function lees meer…

Lees verder ...

Aantal dagen in een maand

In een applicatie was het nodig om van een willekeurige maand het aantal dagen te kunnen tonen. Met de formule @BusinessDays( startDates ; endDates ; daysToExclude ; datesToExclude ) is dat goed mogelijk. Voor startDates kan simpelweg de eerste van de maand worden genomen, voor endDates zou je kunnen werken met @Adjust(@Adjust(startDates;0;1;0;0;0;0);0;0;-1;0;0;0) waarmee je dus eerst een maand opteld bij de startdatum en daarna een dag terug gaat. Voor LotusScript zou je de formule kunnen evalueren met de Evaluate functie. lees meer…

Lees verder ...

Wat is IBM Notes

IBM Notes is de client van de client-server groupware-toepassing gemaakt in 1989 door het bedrijf Lotus Development Corporation in samenwerking met Iris Associates waar in de tijd Ray Ozzie de eigenaar van was. In 1995 werd Lotus gekocht door IBM en omgedoopt in de Lotus Development afdeling van IBM, tegenwoordig onderdeel van de IBM Software Group. Tot begin 2013 was IBM Notes bekend onder de naam Lotus Notes. In maart 2013 heeft IBM echter de naam Lotus laten vervallen. Eind december 2018 is bekend gemaakt dat IBM een aantal producten, waar onder IBM Notes, verkocht heeft aan het Indische HCL Technologies. IBM Notes is vooral bekend als e-mail programma, en wordt daarom vaak in één adem genoemd met Microsoft Outlook. Dit is niet helemaal terecht omdat Notes in combinatie met de krachtige server, IBM Domino genaamd, veel meer kan dan alleen mail verwerken. Met IBM Domino en Notes halen bedrijven een compleet samenwerkingsplatform in huis met een zeer lage Total Cost of Ownership. De IBM Notes client software is beschikbaar voor Linux, MacOS en natuurlijk MicroSoft Windows. De software kan geïsoleerd gebruikt worden, maar meestal in combinatie met de IBM Domino server. Voor ontwikkelaars van Notes applicaties is er een gratis op Eclipse gebaseerde versie van Notes beschikbaar, de IBM Domino Designer. IBM Domino is dus de server software en draait op Windows, Linux, IBM iSeries, IBM zSeries en diverse Unix-varianten. Wat kunnen IBM Domino en IBM Notes? Mail IBM Domino is onbetwistbaar een eersteklas mail server. De server ondersteunt IMAP, POP3, SMTP en Notes Mail. IBM Notes is de mail client software, maar de mail kan ook gelezen worden via een webbrowser of een mail client die IMAP of POP3 ondersteunt. Als mail server is IBM Domino een goed alternatief voor Microsoft Exchange. Agenda De IBM Notes client kunt u gebruiken als agendabeheersysteem, vergelijkbaar met Microsoft Outlook. De IBM Domino server zorgt ervoor dat u uw agenda kunt uitwisselen met collega’s en vergaderingen kunt plannen, zalen kunt reserveren, taken kunt delegeren. GroupWare IBM is de ‘uitvinder’ van GroupWare, software die teams helpt om efficiënter samen te werken. IBM bood organisaties al een ‘Intranet’ voor die term uitgevonden was. Met de IBM Notes client kunnen bijgeleverde toepassingen snel geïmplementeerd worden (discussieforums, blogs, documentenbeheer, groep samenwerking enzovoort. Eindgebruikers kunnen eenvoudig eigen toepassingen bouwen (indien toegestaan door de beheerder), maar met het voordeel dat de software via de server door iedereen kan lees meer…

Lees verder ...