OpenOffice-Programmierung Automatisieren von Büroanwendungen mit Basic von René Martin 1. Auflage OpenOffice-Programmierung Martin schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Hanser München 2005 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 40450 2 Inhaltsverzeichnis: OpenOffice-Programmierung Martin
OpenOffice- Programmierung René Martin Automatisieren von Büroanwendungen mit Basic ISBN 3-446-40450-3 Vorwort Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40450-3 sowie im Buchhandel
Vorwort Zu OpenOffice.org/StarOffice Eine spannende Sache ist es schon: Eine OpenSource-Gemeinde, die sich das hohe Ziel setzt, ein Anwendungsprogramm kostenfrei als OpenSource-Produkt allen Benutzern zur Verfügung zu stellen, und damit sogar noch den Anspruch erhebt, Microsoft Konkurrenz machen zu wollen. Immerhin: Download-Zahlen, Usergroups und Artikel im Internet sprechen ein deutliche Sprache. Mehr und mehr Anwender arbeiten und beschäftigen sich mit diesem Office-Paket. OpenOffice.org stellt alles zur Verfügung, was von einem Office- Programm erwartet wird. Man erstellt Dokumente, kalkuliert, analysiert Daten, entwirft Präsentationen und öffnet Datenbanken. StarOffice/OpenOffice.org kann Dokumente in das Portable Document Format (.pdf) exportieren und Grafiken im Flash-Format (*.swf) weiterreichen ohne auf externe Software ausweichen zu müssen. Internationale Nutzer wurden durch die Integration von Complex Text Layout-Sprachen (CTL) (wie beispielsweise Thai, Hindi, Arabisch und Hebräisch) sowie vertikale Schreibrichtungen berücksichtigt. Doch all dies wäre sicherlich nur ein Teil, wenn man das Paket nicht auch von innen und außen steuern könnte. Zu diesem Buch Und eben um eine dieser Programmiersprachen soll es in diesem Buch gehen. Seit einigen Monaten häufen sich die Berichte über OpenOffice.org und StarBasic *. Nicht nur in Fachzeitschriften erscheinen mehr und mehr Artikel zu diesen kostenlosen, beziehungsweise kostengünstigen Office-Produkten, auch die Anzahl der Bücher zu OOo und StarOffice * Im Folgenden werde ich der Einfachheit wegen von OOo sprechen ich meine dabei selbstverständlich beide Produkte, StarOffice und OpenOffice.org.
Vorwort XIII nimmt zu. Bis zur Drucklegung dieses Buches lag allerdings noch kein deutschsprachiges Buch zum Thema des Automatisierens vor **. Diese Lücke möchte ich hiermit füllen. Parallel dazu entstehen mehr und mehr Internet-Communities, es existieren einige pdf- Dokumente und Seiten zur Programmierung von OOo im Internet. Die wichtigsten von ihnen sind am Ende des Vorworts aufgelistet. Zum Autor Seit über 15 Jahren unterrichte ich Softwareprodukte und Programmiersprachen von verschiedenen Herstellern aus verschiedenen Bereichen. Dabei zählen die Basic-Dialekte (oder sollte ich besser sagen: Basic-Sprachen?) zu meinen Lieblingssprachen. Vielleicht weil ich in meiner Tätigkeit als Selbstständiger eine Lücke gefunden habe: das Einrichten der Standardapplikationen zum Erstellen von Texten, zum Kalkulieren von Daten, Präsentationssoftware, Datenbanken und so weiter. Diese Programme stellen eine Reihe von Vorlagen, Assistenten, Hilfen und Werkzeugen zur Verfügung. Aber es liegt in der Natur der Sache, dass sie nicht alles können. Oder bestimmte Rechtestrukturen oder Arbeitsabläufe sollen sich für den Benutzer transparent in den Programmen wieder finden. Was die Standardsoftware OOo nicht von Hause aus kann, das kann man programmieren, mit Basic, und seit der Version 2.0 auch mit Java und Python. Und hier setzt der zweite Teil meiner Begeisterung an: Ich bin immer wieder überrascht und erstaunt, wie viel ich programmieren kann, das heißt, wie viele Benutzereingaben ich überprüfen kann, wie viele Systemvoraussetzungen ich kontrollieren kann und wie tief ich mit Basic im System komme. Diese Begeisterung versuche ich seit Jahren in den vielen Büchern weiterzugeben, die ich bereits über StarCalc und VBA (und verwandte Themen) publiziert habe; und in den vielen Artikeln in Fachzeitschriften, für die ich seit Jahren schreiben darf. Zu den Lesern des Buchs Ich habe versucht, das vorliegende Buch für Anfänger, Fortgeschrittene und Profis zu schreiben. Dabei bin ich mir im Klaren, dass der Begriff Profi sehr weit und sehr unterschiedlich interpretiert werden kann. Dieser Gefahr bin ich mir bewusst; das Ergebnis sehe ich im Schulungsbereich in Aufbaukursen. Deshalb habe ich versucht, jedes Kapitel so zu schreiben, dass es unabhängig von den übrigen gelesen werden kann. Ein Profi oder Fortgeschrittener muss also nicht von der ersten bis zur letzten Seite vorgehen. Für einen ** Zwar gibt es Ankündigungen anderer Autoren, die mit dem gleichen Thema beschäftigt sind. Es werden wohl mehrere Bücher zur OOo-Basic-Programmierung erscheinen, was ich persönlich nicht schlimm finde, da jedes Buch niemals alle Aspekte für alle Interessierten abdeckt und niemals sämtliche Programmiermöglichkeiten beschreiben kann.
XIV Vorwort effektiven Einstieg in die zentralen Kapitel 5 bis 8 (das Objektmodell von Calc, Writer, Draw, Impress und Base) empfiehlt es sich allerdings, einen Blick auf das grundlegende Kapitel 1 (der Sprachkern und die Organisation der Makros) zu werfen. Zu diesem Buch Den Sprachkern von OOo-Basic zu kennen ist unerlässlich. Er wird in Kapitel 1 ausführlich beschrieben immerhin nimmt er fast ein Fünftel des Buches ein. Dialoge mit ihren differenzierten Möglichkeiten, Benutzereingaben abzufangen, werden in Kapitel 2 behandelt. Auch die Dynamik der Dialoge spielt eine große Rolle in diesem Kapitel. In Kapitel 3 werden die allgemeine Theorie und der Aufbau der Befehle erläutert, in Kapitel 4 beschreibe ich den Zugriff auf Elemente, die in jedem der Programmteile identisch sind, also: Öffnen, Schließen, eine neue Datei anlegen, drucken und überprüfen, in welchem Programm ich mich befinde. Kapitel 5 bis 8 widmen sich jeweils einem der Programmteile Calc, Writer, Draw und Impress und Base. Ich habe mich für diese Reihenfolge entschieden, da ich vermute, dass die meisten Programme für Calc geschrieben werden. Sicherlich nimmt die Steuerung des Zeichenprogramms Draw und des Präsentationstools Impress nur einen geringen Raum ein. Base habe ich deshalb ans Ende der Viererreihe platziert, weil es erst in OOo 2.0, beziehungsweise StarOffice 8.0 eingeführt wurde. Ab Kapitel 9 werden unterschiedliche Beispielanwendungen beschrieben, wie sie in Firmen oder im Privatbereich Einsatz finden könnten. Der Nachteil, der aus diesem Aufbau erwächst, liegt auf der Hand: Einige Themen überschneiden sich und werden im Buch an mehreren Stellen besprochen. Oder es sind Querverweise auf andere Kapitel zu finden. Mein Wissen Es wäre vermessen und verlogen, wenn ich nicht die Quellen benennen würde, in denen ich eine Reihe von Hinweisen und Informationen gefunden habe. Bei all diesen Autoren möchte ich mich recht herzlich bedanken ohne ihr profundes Wissen wäre dieses Buch niemals zustande gekommen beziehungsweise ich hätte sicherlich noch viele Monate tüfteln und suchen müssen, um die Programmiertechniken selbst erlernen zu können. Andrew Pitonyak: OpenOffice.org Macros Explained. Hentzenwerke Publishing Das erste und bislang beste Buch zu OOo-Basic auf dem Markt. Eine Fülle von Beispielen und profunden Erklärungen zur Programmierung. http://docs.sun.com/db/817-1826-10 Eine pdf-datei, die zum Download bereitsteht, leider nicht vollständig und mit einigen Fehlern.
Vorwort XV http://api.openoffice.org/docs/common/ref/com/sun/star/module-ix.html liefert die komplette Dokumentation leider ohne Beispiele sondern lediglich eine immense Ansammlung an Befehlen. Von der Seite http://api.openoffice.org/developersguide/developersguide.html kann eine über 1000 Seiten umfassende Dokumentation heruntergeladen werden, wie man mit Java OOo steuert. Weitere Hinweise finden Sie natürlich unter http://api.openoffice.org/ Ralf Nebelo: Tipps zur Programmierung von StarOffice 6, die wirklich helfen. Linux- Magazin 05/2002 und 07/2002 Bächinger Consulting http://www.bcwin.ch OpenOffice.org deutschsprachig http://de.openoffice.org Inzwischen gibt es bereits die ersten deutschsprachigen Newsgroups und Foren zu OOo (Stand Juni 2005, ohne Garantie auf Vollständigkeit): Das deutsche OpenOffice.org-Portal: http://www.ooo-portal.de/ Eine OpenOffice.org-Distribution http://www.openoffice-cd.de/ Deutsches Forum rund um OpenOffice.org: http://de.openoffice.info OpenOffice-CD-Forum: http://www.openoffice-cd.de Das OpenOffice.org- und StarOffice-Forum http://www.industrie24.com Vescon OpenOffice Support-Forum: http://openoffice.vescon.com/ Das StarOffice- & OpenOffice.org-Forum auf WinTotal: http://www.wintotal-forum.de Peter Herzogs Spotlight.de StarOffice-Forum: http://www.spotlight.de Open-Craft.org: Freie Software für freie Handwerker: http://www.open-craft.org Forum der Akademie für Management und Technik http//www.amt-wiesbaden.de (diese Seite wird zurzeit überholt) Das StarOffice- & OpenOffice.org-Forum: http://supportforum.sun.com Die Beispiele dieses Buches Beim Schreiben hatte ich oft den Wunsch, zu einigen Kapiteln viel mehr zu schreiben. Dies begann bereits bei der Frage nach dem Inhalt und der Form. Gerne hätte ich im Buch sämtliche Objekte mit ihren Eigenschaften und Methoden aufgelistet. Das hätte aber den Umfang des Buches gesprengt. Gerne hätte ich dem Buch eine CD beigefügt mit dem kostenfreien Programm OOo, sowie sämtlichen Beispieldateien, wie auch die Liste der Objekte, Eigenschaften und Methoden. Dies hätte allerdings einen höheren Ladenpreis bedeutet, gegen den wir uns Autor und Verlag letztlich entschieden haben. Deshalb können Sie sämtliche Beispieldateien von meiner Homepage http://www.compurem.de herunterladen. Sie finden den Link unter AUTORENTÄTIGKEIT BÜCHER. In den Ordnern finden Sie die gleichen Dateien, die das Buch begleiten. Da die Beispiele von Kapitel 6
XVI Vorwort nicht mit der Reihenfolge der Dateinamen übereinstimmten habe ich dort auf den Dateinamen verwiesen, unter dem Sie den entsprechenden Code finden können. Einige der Dateien verlangen bestimmte Datei- oder Ordnernamen. Sie müssen möglicherweise geändert werden. Ich habe versucht, sie zentral in einer Konstanten unterzubringen, so dass sie leicht geändert werden können. Die Hinweise in diesem Buch Folgende Tabelle gibt eine Übersicht zu den im Buch verwendeten Schreibkonventionen: Element Beispiel Formatierung Dateinamen, mit oder C:\Eigene Dateien\Dinos.xls Kursiv ohne Pfad Menüs DATEI DRUCKEN KAPITÄLCHEN Spezielle Bezeichnungen, die im Text mitgelesen werden können, Punkte auf Dialogblättern, Steuerelemente, Beschriftungen, Titel, Namen von Symbolleisten, Services True, Laufweite, Standard, der Service com.sun.star.sheet.spreadsheet Document in Anführungszeichen Tasten <Strg>+<A> <In spitzen Klammern> Programmiercode, i = i + 1 Nichtproportionalschrift Schlüsselwörter und Variablennamen
Vorwort XVII Um Ihnen die Orientierung in diesem Buch zu erleichtern, habe ich den Text in bestimmte Funktionsabschnitte gegliedert und diese durch entsprechende Hinweise gekennzeichnet. Folgende Symbole finden Verwendung: Hinweis Manches ist von besonderer Bedeutung und verdient darum auch, besonders hervorgehoben zu werden. Solche Hinweise sind sehr nützlich; damit erreichen Sie schneller das Ziel. Tipp Manches geht ganz leicht. Wenn man nur weiß wie. Tipps und Tricks finden Sie in den Abschnitten, bei denen dieser Text steht. Achtung Achtung, mit diesem Hinweis wird eine Warnung angezeigt. An der markierten Stelle sollten Sie besonders achtsam sein. Beispiel Gerade im ersten Kapitel wird das theoretisch Erläuterte an verschiedenen Beispielen erläutert. Sie sind durch dieses Icon gekennzeichnet. Ein Dankeschön geht an den Lektor des Buches, Fernando Schneider, der mich schnell mit Informationen versorgt hat, die ich benötigte. Ebenso an Monika Kraus vom Hanser-Verlag, die wie immer sehr genau den Satz kontrolliert hat. Und natürlich an die Korrektorin, Frau Sandra Gottmann, die viele Fehler aufgespürt hat, die mir entgangen sind. Ein weiteres Dankeschön geht auch an die Firma Sun, die mir kostenlose StarOffice-Versionen zur Verfügung gestellt hat und mir eine Reihe an Informationen zukommen ließ. Ebenso gilt mein Dank den Autoren, die im Internet ihr Wissen über OOo-Basic bereitstellen. Und besonders an Herrn Andrew Pitonyak, dessen Buch mir eine große Hilfe war. Ohne ihr Wissen und ihre Kenntnisse wäre dieses Buch nicht zustande gekommen.
XVIII Vorwort übrigens Gerne können Sie den gesamten Code ansehen, testen, verändern und für eigene Zwecke weiter benutzen. Ich habe auch kein Problem damit, wenn Sie dieses Buch als Ideensammlung für eigene Projekte verwenden. Da ich jedoch als freier Trainer, Autor und Programmierer von Aufträgen lebe, wie ich sie hier beschrieben habe, würde ich mich natürlich auch über das Zustandekommen einer gemeinsamen Zusammenarbeit freuen. Und nun wünsche ich viel Freude beim Lesen, beim Nachdenken und beim Lösen von Aufgaben mit OOo-Basic. Dr. René Martin München, August 2005 Über Kritik, Anregungen und Vorschläge freue ich mich sehr. Rene.Martin@compurem.de Besuchen Sie auch meine Homepage: http://www.compurem.de