12.07.2015 Aufrufe

Lotus Notes LotusScript

Lotus Notes LotusScript

Lotus Notes LotusScript

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: Vorteile (1)Während @Funktionen ideal sind um einfache Aufgaben zuerledigen, bietet <strong>Lotus</strong>Script die Möglichkeit Schleifen, Select(case) Konstrukte und mehr zu programmieren.<strong>Lotus</strong>Script bietet die folgenden Vorteile: Teilmenge von BASIC<strong>Lotus</strong>Script ist eine Teilmenge der Programmiersprache BASICund verwendet daher auch die dort gängigen Funktionen undBefehle. Cross-Platform<strong>Lotus</strong>Script ist eine multi-platform Script Sprache. Sie wird aufallen Plattformen auf denen <strong>Notes</strong>/Domino verfügbar istunterstützt. Koexistenz mit <strong>Notes</strong> @FunktionenAuch in R5 werden die @Funktionen innerhalb von <strong>Lotus</strong>Scriptunterstützt. Damit können über den „Evaluate“-BefehlFormelsprache Funktionen auch innerhalb von <strong>Lotus</strong>ScriptFunktionen genutzt werden.<strong>Lotus</strong>Script: Vorteile (2)ObjektorientiertFast alle Domino Objekte sind über <strong>Lotus</strong>Script verfügbar.Damit kann jedes Objekt der <strong>Notes</strong> Klassen, und damit fastjeder Bereich in <strong>Notes</strong>, programmatisch erreicht undmanipuliert werden. <strong>Lotus</strong>Script wird durch Ereignisse wieetwa Aktionen, auswählen eines Objekts oder Knopfes, öffneneines Dokuments oder einer Ansicht u.v.m ausgelöst.OLE UnterstützungDomino kann als Container für z.B. Word Dokumente oderandere OLE-fähigen Anwendungen verwendet werden. Eskönnen externe OLE 2.0 Automatisierungsobjekte verwendetwerden, die damit programmatisch über Script (z.B.VisualBasic) angesprochen werden können.Damit lassen sich mit Hilfe von <strong>Lotus</strong>Script diese Objektekontrollieren und manipulieren.30.04.20011


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: Vorteile (3)Integrierte EntwicklungsumgebungDie Domino R5.0 Entwicklungsumgebung (IDE = IntegratedDevelopment Environment) bietet eine einfache Schnittstelleum Skript zu erstellen, zu bearbeiten und Fehler zu suchen(debug). Im Debug Modus können Variablen und Eigenschaftender Objekte einfach überwacht und durchsucht werden.Erweiterbar durch LSXs<strong>Lotus</strong>Script kann jederzeit durch eigene Klassen, diesogenannten <strong>Lotus</strong>Script eXtensions (LSX) in C oder C++ alsDynamic Link Library (DDL) erweitert werden. Damit könneneigene Programmlogiken, z.B. komplexe mathematischeFormeln dem <strong>Lotus</strong> <strong>Notes</strong> Entwickler zur Verfügung gestelltwerden.Anbindung an externe DatenbankenÜber LS:DO (<strong>Lotus</strong>Script Database Objects) können andereDatenbanksysteme (z.B. Oracle oder DB2) an die eigeneAnwendung angebunden werden.<strong>Lotus</strong> Sript: Domino Object Model(DOM)Das Domino Object Model (DOM) erlaubt dem Programmierer denZugang auf Domino Datenbanken und auf Anwendungsdiensten.Das Domino Object Model wurde auf eine ganze Reihe von Object-Orientierten Klassen abgebildet. Hierdurch ist es möglich überProgrammiersprachen auf diese Objekte zuzugreifen. AlsProgrammiersprachen stehen unter anderen Java, <strong>Lotus</strong>Script undVisualBasic zur Verfügung. Um Anwendungen zu schreiben, können die Objekte, Methoden derObjekte und Eigenschaften der Objekte, die in diesem Model definiertsind verwendet werden (z.B. Datenbanken, Ansichten und Masken). Eigenschaften der Objekte werden dazu verwendet um Informationenüber das Objekt zu bekommen (z.B. RepicaID Eigenschaft einerDatenbank um die ReplikID der Datenbank auszulesen). Methoden eines Objektes werden verwendet um das Objekt zumanipulieren (z.B. erzeugt die CreateDocument Methode derDatenbank ein neues Dokument in der Datenbank)30.04.20012


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong> Sript: Domino Objekt KlassenAuszug aus de n Domino Obje kt Klasse n<strong>Notes</strong>UIWorkspace<strong>Notes</strong>Session<strong>Notes</strong>UIDatabase<strong>Notes</strong>Database<strong>Notes</strong>UIView<strong>Notes</strong>UIDocument<strong>Notes</strong>DocumentCollection<strong>Notes</strong>DocumentBack -End-KlassenFront-End-KlassenLotuScript: Front-End-Klassen (UI-Klassen)Die Front-End UI Objekte werden dazu benutzt um die geradeaktuelle Benutzerschnittstelle (z.B. das aktuell geöffneteDokument) zu manipulieren. Diese Objekte werden normalerweisedafür verwendet Ereignisse zu programmieren und Zugriff aufObjekte die der Benutzer gerade bearbeitet, zu ermöglichen. Diefolgenden Front-End-Klassen sind verfügbar: <strong>Notes</strong>UIWorkSpace der momentan geöffnete Arbeitsbereich <strong>Notes</strong>UIDatabase die momentan geöffnete Datenbank <strong>Notes</strong>UIView die momentan geöffnete Ansicht <strong>Notes</strong>UIDocument das momentan geöffnete DokumentDie folgenden Objekte haben nur Ereignisse: Button Aktion, Schaltfläche oder Hotspot in Maske o.Dokument Field Feld in einer Makse Navigator Objekt in Navigator30.04.20013


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: Back-End-KlassenDomino Back-End Objekte werden dazu benutzt Domino Daten zumanipulieren. Zwar werden keine Ereignisse und Aktionen derBenutzerschnittstellen unterstützt, aber über die Kombination derBack-End mit den Front-End Objekten kann dies überbrücktwerden. So hat z.B. das Objekt <strong>Notes</strong>UIDocument eine Eigenschaft(Property) namens Document, über die auf das korrespondierendeBack-End Objekt (<strong>Notes</strong>Document) zugegriffen werden kann.Die folgenden Back-End-Klassen sind verfügbar:--> Für eine Liste der Verfügbaren Back-End-Klassen siehedie <strong>Notes</strong>-Designer-Hilfe<strong>Lotus</strong> Script: Hello WorldSub Click(Source As Buttom)Print „Hello World“End Sub-----Sub Click(Source As Buttom)tstr_Meldung = „Hello World“MsgBox (tstr_Meldung)End Sub-----Sub Click(Source As Buttom)Dim tstr_Meldung as Stringtstr_Meldung = Inputbox(„Geben Sie bitte einen_Text ein“, „Text eingeben“, „“MsgBox (Die Eingabe war: „& tstr_Meldung)End Sub30.04.20014


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: Operatoren^ Exponent 2^5=32- Negation -56, / Multiplikation und Division 4*5=20, 8/2=5Mod Restdivision (Modulo) 16/5=3-, + Subtraktion und Addition 1+2=3, 10-2=8& oder + Verkettung von Strings „a“+“b“=“ab“=, , >


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: BedingungenIf Then Else AnweisungIf thenElseElseifEnd If<strong>Lotus</strong>Script: BedingungenSelect Case-AnweisungSelect Case Case Is Case to Case ElseEnd Select30.04.20016


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: SchleifenverarbeitungFor-SchleifeFor i= to Step Next i<strong>Lotus</strong>Script: Arrays (statisch)Arrays sind Variablen eines bestimmten Datentyps, die nicht einensondern mehrere Werte enthalten. Deklaration eines Arrays:Dim Arr(1 to 7) as String oder Dim Arr(6) as StringBeispiel:Dim Arr(1 to 7) as StringArr(1) = „Sonntag“Arr(2) = „Montag“...Arr(7) = „Samstag“MsgBox(„Heute ist „ & arr(Weekday(Now)) & „, der„ & Format(Now, „dd.mm.yyyy))30.04.20017


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: Arrays (dynamisch)Deklaration eines Arrays:Dim Arr() As StringRedim [Preserve] Arr()Beispiel:Dim Arr() as StringFor i= 1 to 7Redim Preserve arr(i)arr(i)=Inputbox(Geben Sie den Wochentag des „& i & „. Tages der Woche ein“)NextMsgBox(„Heute ist „ & arr(Weekday(Now)) & „, der„ & Format(Now, „dd.mm.yyyy))<strong>Lotus</strong>Script: SchleifenverarbeitungForall-SchleifeForall x In End ForallBeispielDim Arr(1 to 7) as StringArr(1) = „Sonntag“...Forall x in Arrvar=var+x+Chr(10)End ForallMsgBox(var)30.04.20018


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: SchleifenverarbeitungWhile-SchleifeWhile WendBeispielWhile var=““...var=Input(„Geben Sie bitte einen Wert ein“)Wend<strong>Lotus</strong>Script: in EreignissenSub Querysave(Source As <strong>Notes</strong>uidocument, Continue As Variant)tstr_feld$ =source.FieldGetText( „subject“ )If tstr_feld$ =““ thentstr_Meldung = „Feld Titel darf nicht leer sein““MsgBox (tstr_Meldung)Continue = falseelsetstr_Meldung = „Dokument wurde gespeichert“Print (tstr_Meldung)end ifEnd Sub30.04.20019


Anwendungsentwicklung mit <strong>Lotus</strong><strong>Notes</strong> R5 (<strong>Lotus</strong>Script)<strong>Lotus</strong>Script: Frontend und BackendKlassenSub Querysave(Source As <strong>Notes</strong>uidocument, Continue As Variant)Dim session As New <strong>Notes</strong>SessionDim db As <strong>Notes</strong>DatabaseDim doc As New <strong>Notes</strong>DocumentSet db = session.currentdatabaseSet doc = source.documentForall x in doc.getitemvalue(„Editor“)MsgBox( x )End ForallEnd Sub30.04.200110

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!