Artikel pedia
| Home | Kontakt | Artikel einreichen | Oberseite 50 artikel | Oberseite 50 autors
 
 


Artikel kategorien
Letztes fugte hinzu
    Ms-access

   Instrumentation + schnittstellen

   Pc tuning - volle kraft voraus für ihr system

   Informatorische grundlagen

   Javascript

   Interne sortieralgorithmen - der kern der sache

   Plotter und sonstige drucker

   Frage 20 (rössl priska)

   Internet - programmierung

   Monitore

   Semesterarbeit und spezialgebiet für informatik

   Erörterungs zum thema

   Inhaltsverzeichnis

   Einführung in die entwicklung ganzheitlicher informationssysteme:

   Titel dokument
alle kategorien

  Scripts in lotus

Scripts in Lotus 1-2-3      Einleitung     Scripterstellung     Dialogeditor     Script-Befehle     Verschiedene Vorgangsweisen     Komplexes Beispiel     Quellen                 Einleitung: LotusScript ist eine strukturierte Programmiersprache mit der man Aufgaben in 1-2-3 automatisieren kann. Scripts sind kurze, objekt-orientierte Programme, die in der Kalkulations-Umgebung von Lotus 1-2-3 laufen. Sie sind erst ab der 97er Version in Lotus 1-2-3 verfügbar. Da LotusScript dieselbe Entwicklungsumgebung wie andere SmartSuite Anwendungen und Lotus Notes verwendet, kann man Scripts in 1-2-3 und produktübergreifend in anderen Anwendungen wie Freelance Graphics, Word Pro und Lotus Notes erstellen, austesten und ausführen. Weiters ist Lotus Script mit Visual Basic kompatibel, und daher auch relativ einfach zu erlernen.   Abb.

1 Scripterstellung: Scripterstellung durch Aufzeichnen Wie bei einem Makro wird hier jeder Tastendruck und jede Aktion mitgeschrieben. (Auf diese Art und Weise erhält man auch Aufschluß darüber, wie die einzelnen Programmierbefehle lauten, wenn man sich nicht der Mühe unterziehen will, die Hilfe zu durchsuchen). Nach dem Start muß man einen Namen für das Script eingeben und das Verzeichnis, in dem das Script gespeichert werden soll. Weiters werden 2 kleine Icons eingeblendet (=> Abb.1), mit denen man die Aufzeichnung jederzeit pausieren und stoppen kann. Das Script wird dann als globales Script unter dem angegebenen Namen abgelegt.

Scripterstellung im Scripteditor Mit dem Scripteditor (=> Abb.3) lassen sich Scripts direkt schreiben – vorausgesetzt man kennt die diversen Programierbefehle. Der Scripteditor („Bearbeiten/LotusScript Makros/ScriptEditor anzeigen“) gliedert sich in mehrere Bereiche.   Bindung von Scripts an Objekte:   Scripts können a) an das Programm Lotus 123 selbst gebunden und auf bestimmte Aktionen hin gestartet werden b) an ein bestimmtes Arbeitsblatt gebunden werden. Solche Scripts können dann mit Öffnen des Files gestartet werden, z.B.

: Sub Opened(Source As Document) Dialog1.show End sub   c) an ein bestimmtes Arbeitsblatt als globale Scripts gebunden werden (z.B. Zins.123). z.

B.: Sub Eingabe Dialog1.show End Sub   Derartige globale Scripts können dann über (“Bearbeiten/LotusScript Makros/Ausführen Alt+F3”) gestartet werden oder überhaupt ins Menü integriert werden und zusätzlich über eine Tastenkombination abrufbar sein. (es gibt dann den Menüpunkt „Aktionen“). Dazu ist es erforderlich entsprechende Optionen für globale Scripts zu setzen. Diese sind erreichbar unter „Bearbeiten/LotusScript Makros/Optionen für globale Scripts“.

=>Abb. 2 Abb. 2 Beachte: Im Unterschied zu anderen Scripts wird bei globalen Scripts der Name des Scripts (hier: „Eingabe) durch den Programmierer angegeben   d) an eine bestimmte Zelle bzw. an einen bestimmten Bereich gebunden werden über einen Button gestartet werden Dialogerstellung   Ähnlich wie in Delphi kann in Lotus „visuell“ programmiert werden. Dabei steht als Grundobjekt eine Dialogkomponente zur Verfügung in die dann weitere Komponenten eingebettet werden. Alle diese Komponenten haben diverse Eigenschaften und es können für sie Scripts erstellt werden, die diese Komponenten ausführen, wenn sie auf ein bestimmtes Ereignis reagieren.

      Werkzeugleiste: (Toolbox)   Pointer ......

......

......

......

......

......

.... Frame Label ..

......

......

......

......

......

......

..... Textbox CommandButton .

......

......

…….... Image Checkbox ..

......

......

......

......

......

.... OptionButton ListBox ..

......

....………………..

.... Combobox Spinbutton ..

..…....

......

......

…......

. Progressbar Slider .....

......

......

......

....Abb. 3   Bei allen Dialogelementen kommt man über die rechte Maustaste zu den Properties (=>Abb.


5) Dazu gehören Name, Caption, Größe, Schrift, usw. Mit einem Doppelklick auf die Komponente gelangt man in den Scripteditor, um zum Standardereignis das entsprechende Script zu schreiben.     Wichtige Eigenschaften (Properties) von Dialogelementen caption: Inhalt name: Name visible: Sichtbarkeit enabled: zeigt an, ob ein Objekt ansprechbar ist (true/false)   Wichtige Methoden: SetFocus: Fenster wird aktiviert   Wichtige Ereignisse (Events): Change: löst bei jeder Veränderung Ereignis aus(z.B. beim Slider, Combobox) Click: bei Mausklick DblClick: bei Doppelklick Gotfocus: wenn ein Fenster aktiviert wird Keypress: bei Tastendruck Initialize: bei Erstellung (Dialog) oder beim Laden (Objekt)   Spezielle Dialogelemente   Dialog: Methoden show: öffnet den Dialog Methode close: schließt den Dialog Ereignis load: Ladet (öffnet) den Dialog Label: Eigenschaft caption: Inhalt des Labels ist vom Typ string Textbox: Eigenschaft text: Inhalt der Textbox, ist vom Typ string OptionButton/ Eigenschaft value: gibt an, ob Element ausgewählt ist oder nicht Checkbox: 0 oder false: nicht ausgewählt Listbox/ 1 oder true: ausgewählt Combobox: 2 oder greyed: keine Auswahl möglich Bei properties können im rechten Ordner die einzelnen Elemente eingegeben werden (zur Entwurfszeit). Eigenschaft list: enthält die einzelnen Elemente, (dialog1.

combo1.list(1) liefert das 2. Element) Methode additem: fügt ein Element hinzu, Standardereignis: Pick!! Slider: Eingeschaft value: liefert die Position des Schiebereglers als integer     Beispiel: Eingabedialog Zuerst werden die Dialogkomponente (Dialog 1), die Labelkomponenten (Label1-3), die Textboxkomponenten (Text1-3) und die Command-Button-Komponenten (Command1-2) erstellt. (Properties (=>Abb. 4) werden über rechte Maustaste aufgerufen) Anschließend werden die entsprechenden Scripts geschrieben Der Script-Editor kann über die rechte Maustaste (View Scripts), durch den Menüpunkt „View/Show Scripts“ oder durch Doppelklick auf eine Komponente gestartet werden. Das Script für den OK-Button könnte dann z.

B. so wie in der Abb. 6 aussehen. Alle Inhalte, die an Zellen zugewiesen werden, sollten vorher in einen String konvertiert werden (mit dem Befehl Cstr() ). Da aber Caption ohnehin einen Text beinhaltet, kann diese Konvertierung hier auch entfallen. Zellinhalte werden mit [Zelle].

Contents oder [Zellname].Contents angesprochen. Um mit dem Button „Cancel“ den Dialog abzubrechen eignet sich folgendes Script:   Sub Click (Source Asotuscommandbutton) Source.Parent.Close (oder dialog1.close) End Sub   Beispiel: Checkbox, Slider und Combobox (=> Abb.

5)   Sub Click(Source As Lotusoptionbutton) [B3].contents = "100000" End Sub (bzw. 250000 und 750000)   Sub Click(Source As Lotusslider) [B4].contents = Cstr(Dialog2.slider1.value) End Sub   Sub Pick(Source As Lotuscombobox, Index As Integer) [B5].

contents = Cstr(Dialog2.combo1.text) End Sub   Initialisierungsscript: Sub Load(Source As Lotusdialog) Dialog2.Slider1.value = Cint([B4].contents) Dialog2.

combo1.caption = Cstr([B5].contents) End Sub   Scripteditor: (Integrated Development Environment)                                Abb. 6   Die wichtigsten Scriptbefehle und Vorgangsweisen:   Programmierbefehle:   Grundsätzliche Variablenoperationen Dim Name as Typ Dient der Definition einer Variable Bsp.: Dim zahl as integer Set Dient der Belegung einer Variable Bsp.: set wort = cstr(12)     Variable mit Zelle innerhalb eines Ranges belegen: Dim zelle as variant Set zelle= bereich.

cell (reihe,spalte) Beachte: Spalte und Reihe beginnen jeweils bei null. (z.B.:Reihe 3 und Spalte B => bereich.cell(2,1)   Verschiedene Schleifenformen If ..

. then Bei einzeiliger Verzweigung kann das End if entfallen ... else ..

. End if   While [condition] [statements] W end   Do [While | Until condition] [statements] Loop   Do [statements] Loop[While | Until condition]   Befehle für den Zugriff auf Zellen Cellvalue Liefert den Wert einer Zelle, gelieferter Wert kann von verschiedenem Typ sein [A1].cellvalue contents Liefert den Inhalt einer Zelle, immer vom Typ string [A1].contents Beachte: Wenn in einer Zelle eine Formel steht, liefert der Befehl contents nicht den Inhalt der Zelle, sondern die Formel. Abhilfe => Befehl cellvalue   select Wählt eine Zelle oder einen Bereich aus [A1].select set bereich = bind(bereichsgrenzen) Belegt die Variable bereich (muß vom Typ range sein); bereichsgrenzen ist vom Typ string, z.

B.:“A10..C20“. Es kann auch nur eine Zelle als Bereich zugewiesen werden! Set endzelle=bind(endzelladr)   Datentypen in Lotus Currency Währung Data Datum, Zeit Double, single reele Zahlen Integer, long Integerzahlen (Slider String Zeichenkette (Textfelder, Labelfelder, Zellen ( =>können aber auch integer sein!!), ) Variant alle einfache Datentypen, array, Objekte     Der Datentyp Variant stellt einen Container für beliebige Daten dar. Lotus legt den Typ bei Zuweisung anhand des Wertes fest.

Da Lotus keinen Datentyp für Datum oder Zeit aufweist, wird hier der Datentyp Variant verwendet. Vorteil von Variants: Dieser Datentyp sollte verwendet werden, wenn die Art der zu bearbeitenden Daten unbekannt ist. Nachteile von Variants: mehr Speicherbedarf, langsamere Verarbeitung , Übersicht über die Art der zu bearbeitenden Werte kann verloren gehen   Befehle zum Umwandeln von Typen cdat(expr) Konvertiert expr (numerischer Wert) in Datum/Zeit creal(expr) Konvertiert expr (numerisch oder string) in eine reele Zahl Cint(expr) Konvertiert in einen Integerwert Csng(expr Konvertiert expr (numerisch oder string) in eine reele Zahl Cstr(expr) Konvertiert in einen Stringwert Bsp.: dialog1.text1.caption=cstr([zelle].

contents) Cvar(expr) Konvertiert in den Datentyp variant   Parameterabfrage z.B.: @WENN(E5>$B$9*2/3;$B$8;0) [E5] ... momentanen Holzbestand [B9] .

.. ursprünglicher Holzbestand [Ausgangsgröße] [B8] ... Schlägerungsrate=1000 Wenn der momentane Holzbestand größer ist als 2/3 des ursprünglichen Holzbestandes, dann dürfen 1000 Einheiten abgeholzt werden.

Ist dies nicht der Fall, darf keine Schlägerung erfolgen. z.B.: @WENN($ZAHLUNGSART=1; B9*$P/100;0) z.B.: @WENN($ZAHLUNGSART=1; (B10+E9)*$P/100;E9*$P/100)   Diverse Vorgangsweisen  „Schließen eines Dialoges“: Mit der Click Methode: Dialog1.

close oder source.parent.close   „Übergabe von Textfeld zu Slider mit Ausschluß von Null“: Mit der Change Methode: If dialog1.text2.caption <> „“ Then dialog1.slider1.

value=Cint(dialog1.text2.caption) Cint wird benötigt, da der der Slider einen Integerwert liefert und das Textfeld einen String   „Auswählen eines Bereiches“ Der Wert von dialog1.text3.caption gibt die Laufweite an. Tabellenanfang bei D4.

Bsp.: Ist die Laufweite=5, dann soll der Bereich: [D5..H8] markiert werden Endzelladr ...

Adresse, bis zu der markiert werden soll.   Variablen definieren: Dim endzelladr, bereichsgrenze as string Dim bereich as range Möglichkeit: Bestimmen der Endzelladresse inkl. T.Zeile: endzelladr = “h“+ Cstr(3+Cint(Dialog1.Text3.caption)) Bereichsgrenze definieren inkl.

Kopierzeile: bereichsgrenze = “d5..“+endzelladr Bereich als range festsetzen: Set bereich = Bind(bereichsgrenze) Bereich auswählen: bereich.select   Möglichkeit Bereichsgrenze definieren inkl. Kopierzeile: bereichsgrenze ="d5..

h"+Cstr(3+Cint(Dialog1.Text3.caption)) Bereich als range festsetzen: Set bereich = Bind(bereichsgrenze) Bereich auswählen: bereich.Select   „Bereich löschen“: [ dialog1.text3.caption gibt hier an, ab welchem Wert die Zellen in der Tabelle gelöscht werden sollen.

Tabellenanfang bei D4. Bsp.: Bei Laufweite=30 wird der Bereich: [d34..h8192] gelöscht   endzelladr="d"+Cstr(4+Cint(Dialog1.Text3.

caption)) bereichsgrenze =endzelladr+"..h8192" {h8192 ist die letzte Zeile in der Spalte h} Set bereich = Bind(bereichsgrenze) bereich.Select Selection.Clear Cleardata     „Nach unten kopieren“: Selection.copyfill $down   „Letzte Zelle markieren“: Dim endzelle as range Endzelle als Range festsetzen: Set endzelle = Bind(endzelladr) Endzelle auswählen: endzelle.

select   Arbeiten mit Optionsboxen On load: z.B.: If[d4].contents = “1“ Then dialog1.option1.value = 1 Else dialog1.

option2.value = 1 On click: z.B.: [d4].contents = ”1” [d4].contents = “0“  Arbeiten mit Checkboxes:if (dialog1.

check1.value=1) Then [E9].contents=Cstr(2000) Else [E9].contents=Cstr(0)   @FOLGE(x;n) wandelt den Wert x in ein Label um, wobei n die Anzahl der Kommawerte angibt. Bsp: [d5]=8, @FOLGE(D5;2) liefert das Label 8,00   @KOMPR(Zeichenfolge) löscht führende, abschließende und aufeinanderfolgende Leerzeichen aus Zeichenfolge. Zeichenfolge kann Text in " " (Anführungszeichen), eine Formel, die eine Zeichenfolge ergibt, bzw.

die Adresse oder der Name einer Zelle sein, die ein Label oder eine Formel enthält, die ein Label ergibt. Bsp:[C5]=’test’, @KOMPR(C5) liefert das Label test   Verknüpfung von Label-Feldern mit &: Bsp.: [F5]= @FOLGE(D5;2), [C5]=’test’ @KOMPR(C5)&" "&F5 liefert das Label test 8,00   Bsp.: [E12]= 76396,6673 +"Holzbestand: "&@FOLGE(E12;2)&" fm" liefert das Label: Holzbestand: 76396,67 fm   Bsp.: @KOMPR(" 45 3/8") = 45 3/8, wobei die führende Leerstelle vor 45 und eine der beiden Leerstellen zwischen 45 und 3/8 gelöscht wird.  @VVERWEIS(Argument;Spaltenbereich;Versatz) ermittelt den Inhalt der Zelle in einer bestimmten Spalte einer vertikalen Verweistabelle.

Ist Argument kleiner als der erste Wert in Spaltenbereich, so ergibt @VVERWEIS FEHLER. Ist Argument größer als der letzte Wert in der ersten Spalte des Bereichs, so stoppt @VVERWEIS bei der letzten Zelle in der Spalte, die mit Versatz angegeben wird, und gibt den Inhalt dieser Zelle als Antwort zurück.   Bsp.: Schulnoten: [F5] .. Punkte bei Schularbeit; „Argument“ [a18].

.[b22] Tabelle mit 2 Spalten: Punkte und Notentexte; „Spaltenbereich“, => Versatz=1 @VVERWEIS(F5;$A$18..$b$22;1) Der jeweilige Notentext wird ausgegeben   Bsp.: @VVERWEIS(C3;B:A3..

B:G6;D4) Hinweis: Hier wird auf Zellen (A3,G6) eines 2 Dokumentes (B) zugegriffen   Quellen:   Hilfe im Script-Editor: Help, Lotus 1-2—3 Objects Besonders aufschlußreiche Themen sind hier: 1-2-3 Classes 1-2-3 Events 1-2-3 Methods 1-2-3 Properties   Internet:https://www.fh-wedel.de/cis/archiv/seminare/ss99/hs/Thema7/s4.htm

Suchen artikel im kategorien
Schlüsselwort
  
Kategorien
  
  
   Zusammenfassung Der Vorleser

   sachtextanalyse

   interpretation zwist

   Fabel interpretation

   literarische charakteristik

   interpretation bender heimkehr

   felix lateinbuch

   interpretation der taucher von schiller

   textbeschreibung

   charakterisierung eduard selicke
Anmerkungen:

* Name:

* Email:

URL:


* Diskussion: (NO HTML)




| impressum | datenschutz

© Copyright Artikelpedia.com