Krumbein

Transcrição

Krumbein
Krumbein - Itswiki
http://localhost/itswiki/index.php/Krumbein
Krumbein
Aus Itswiki
Inhaltsverzeichnis
1 Sourcecode
2 OpenOffice.org-Versionen
2.1 Extensions (seit 2.1)
3 Java
4 Dateinamen der Dokumente
5 Ordner
6 Makros
6.1 direkt unterstützte Sprachen
6.2 Speicherorte für Bibliotheken
6.3 Steuerdateien
6.4 Dateistruktur für Makros
6.5 OOo-Basic
6.6 Bestandteile von Uno
6.7 Dateioperationen
6.8 Debugging
6.9 Writer-Makros (RPA-Randkommentare)
6.10 Dialoge
6.11 Makrorekorder
6.12 Calc-Makros
6.13 Texte in geschriebenes Writer-Dokument einfügen
6.14 Base
6.15 Faustregel
7 Shortcuts und Co in Writer
8 Weisheiten
Sourcecode
Sun hat Recht, seinen Code auch außerhalb der LGPL zu nutzen
Novell und Google haben eigene Builds
Ubuntu auch, besonders dort starke Verzahnung mit Debian, daher keine Sun-Updates mehr möglich
Netter alternativer Mirror: ftp://ftp.linux.cz/pub/localization/OpenOffice.org
sowohl nächtliche Snapshots, als auch stabile Versionen
OpenOffice.org-Versionen
Releasepolitik
jedes halbe Jahr, eine Zehnerstelle, also von 2.3 auf 2.4
dazwischen nur Bugfixes, keine neuen Features (2.3 auf 2.3.1)
ab 3.0
Office-2007-Konverter
PDF/A-Export
PDFs bearbeiten
seit 2.2.
Makrosicherheit auf Hoch, statt auf Normal
ab 2.4
Andocken einer Gnuplot-Erweiterung möglich
23.12.2007 16:11
1 von 7
Krumbein - Itswiki
http://localhost/itswiki/index.php/Krumbein
API neu geschrieben
Extensions (seit 2.1)
zusätzliche "Module" zum Hauptcode
oxt-Datei
keine Qualitätskontrolle von Sun
schnell verfügbar (sonst 1-2 Jahre, bis im Hauptcodestamm verfügbar)
derzeit noch keine automatischen Updates möglich, da Server dafür noch leer
Idee: MediaWiki-Import-Extension
noch offen
Basic Addon Builder (http://wiki.services.openoffice.org/wiki/Extensions_Packager) (Extension für schnelle
Extensions)
Bibliothek auswählen
Module und Dialogmodule werden automatisch übernommen
Symbolleisten, Menüs und Icons definieren
derzeit keine Versionsnummer und Lizenztext
beides manuell in content.xml einpflegen
noch schneller
Bibliothek als Extension exportieren
keine Symbolleisten oder Menüs
Installation per Doppelklick
OOo passt automatisch die Steuerdateien (xlb/c) an
Bibliotheken sind dann zwar da, müssen aber trotzdem geladen werden
z.B. durch zwei Zeilen in der Vorlage dafür
Java
nicht unbedingt notwendig, außer für
Base
diverse Assistenten
optimale JRE derzeit: 1.5.10 und höher
Dateinamen der Dokumente
MIME-Typ steht in der XML-Datei
Erweiterung egal
Doppelklick geht dann aber auch nicht mehr
Ordner
C:\Programme\OpenOffice.org\share
zentrale Einstellungen im Auslieferungszustand
bei Neuinstallation überschrieben
wird beim Starten in Userprofil kopiert
C:\Dokumente und Einstellungen\Flominator\Anwendungsdaten\OpenOffice.org2\user
Userprofil
bleibt bei Neuinstallation erhalten
für jungfräuliche Installation einfach umbenennen
kritische Teile bei Bedarf wieder zurückkopieren
Speicherort der Extensions
C:\Dokumente und Einstellungen\Flominator\Anwendungsdaten\OpenOffice.org2\.lock zeigt an, dass
Profil derzeit benutzt wird (auch vom Schnellstarter)
wenn sich alle Dateien nur noch schreibgeschützt öffnen lassen, einfach mal löschen
erst wenn Profil nicht mehr benutzt, Änderungen daran vornehmen, sonst wird Profil beim
Beenden aus Arbeitsspeicher überschrieben
23.12.2007 16:11
2 von 7
Krumbein - Itswiki
http://localhost/itswiki/index.php/Krumbein
Makros
direkt unterstützte Sprachen
Basic (einzige mit integrierter IDE)
Python
Javascript
Speicherorte für Bibliotheken
OpenOffice.org-Makros
C:\Programme-Profil
mitgelieferte Funktionen
Gimmicks und Tools im Buch erklärt
Unternehmensweite Makros
Meine Makros
User-Profil
nur angemeldeter Benutzer kann drauf zugreifen
Dokument
nur verfügbar, wenn Dokument geladen ist
Steuerdateien
Bibliotheken müssen in xlb/xlc-Dateien referenziert sein
kopieren in Ordner genügt nicht (werden dann nicht gefunden)
oft reicht Wiederherstellen alter Backups, wenn Makros nicht mehr funktionieren
Dateistruktur für Makros
Bibliothek (Verzeichnis)
steht nur zur Verfügung, wenn geladen (gelb, sonst weiß)
nur Standard-Bibliothek wird automatisch geladen
nicht nutzen, da jedes Dokument eine Standard-Bibliothek hat und beim Zusammenfügen zweier
Dokumente zumindest eine beschädigt wird
immer eigene Bibliothek anlegen
Ausnahme: Benutzerdefinierte Funktion von Calc (in Meine Makros)
lässt sich auch verschlüsseln (Schutz des Quellcodes)
Modul (Datei)
Funktionen (Subs)
kleiner als 64KB - wird komplett als String eingelesen
darf nicht gleichen Namen haben, wie Bibliothek
Suche wird bereits bei Bibliothek abgebrochen und kommt nicht bis zum Modul
Dialogmodul
OOo-Basic
Namen der Funktionen sind egal
Sub main 'keine Bedeutung, kann auch Karl-Heinz heißen
End Sub
IDE führt immer nur erste Sub aus und hört bei ersten End auf
neuere Funktionen hoch kopieren
Startfunktion nutzen:
23.12.2007 16:11
3 von 7
Krumbein - Itswiki
http://localhost/itswiki/index.php/Krumbein
Sub erste
zweite(var)
End erste
Sub zweite (var as Integer)
...
End Sub
Deklaration von Variablen erzwingen:
option explicit
es besteht bereits eine Referenz auf zuletzt geladenes Hauptmodul [grafik]
thisComponent
Sub hat keinen Rückgabewert
Function kann einen Rückgabewert haben:
Function eineFunktion
eineFunktion = "Ich bin ein Rückgabewert"
End Function
Parameter in Basic werden bei Aufruf einer Function mit , getrennt
eineFunktion(1, 5, 8)
Quelltext kann mit Unterstrich (_) unterbrochen und am nächsten Zeilenanfang fortgesetzt werden
Bestandteile von Uno
services
Objekte
Wie finden?
1. http://api.openoffice.org -> IDL-Referenz
2. Debugger (Brillensymbol)
3. Inspektor (Buch-CD)
4. Debug-Methoden (geben Strings mit allem aus)
msgbox thisComponent.dbg_properties
msgbox thisComponent.dbg_methods
msgbox thisComponent.dbg_interfaces
noch offen
interfaces
Gruppen von Methoden
struct
kleinste Einheit: Name->Wert
Dateioperationen
[Grafik]
wo möglich Uno nutzen, da in Basic z.B. (Put- und Get-Methoden für bitweise Dateibearbeitung fehlerhaft
sind)
StarDesktop ist quasi oberste Ebene
Store geht bei neuen Dokumenten nicht (keine URL vorhanden)
StoreAsURL
23.12.2007 16:11
4 von 7
Krumbein - Itswiki
http://localhost/itswiki/index.php/Krumbein
StoreToURL
Debugging
mit jedem Klick einen Step weiter
Step Into:
Makro schrittweise ausführen, wie es später auch der Interpreter tuen würde
wenn eine Unterfunktion aufgerufen wird, dort hinein springen
Step Out
Unterfunktion zwar weiter abarbeiten, aber erst nach Rückkehr in die aufrufende Funktion wieder
stoppen
Step Over:
nur Oberfunktion betrachten, keine Unterbrechungen wegen Unterfunktionen
unten kann man Variablen und ihre Werte beobachten (Brille)
Writer-Makros (RPA-Randkommentare)
[Grafik]
Text mit getString kann nur 64 KB fassen
Tabellen werden wie Absätze behandelt
TextCursor sieht keinen Zeilenumbruch, wird erst bei View erzeugt
ViewCursor sieht keinen Absatz, solange er nicht zeichenweise abklappert
TextRange (document.text, viewCursor.string)
Anfang
Inhalt (Text)
Ende
Achtung: Richtung in der markiert wurde, bestimmt Reihenfolge von Anfang und Ende
Objekt (z.B. Textrahmen) erzeugen, siehe S. 294
Objekt muss an irgendwas verankert werden
mit Absatz bewegen (Standard bei OOo-Oberfläche)
als Zeichen (Standard von Basic)
an Seite
Eigenschaften löschen (z.B. Farbe)
0 ist auch eine Farbe
-1 löscht die Farbe
Rahmenvorlage (Style) wird über ihren Namen zugewiesen
muss vorher in Writer erzeugt werden
alles manuell einstellen und "Vorlage aus Markierung erzeugen"
Manche Eigenschaften lassen sich erst verändern, wenn Objekt sichtbar ist
Erstellt man Dokument aus Vorlage mit Makro, hat Dokument auch Makro
Dialoge
"Art der Schaltfläche"
Standard: selbst definieren
Makro zuweisen, oft "Beim Auslösen"
OK (liefert 1)
Abbrechen (liefert 0)
Hilfe - muss Hilfeseite hinterlegt werden
Dialogbibliotheken werden nie automatisch geladen, da sie zuviel Hauptspeicher benötigen würden
explizites Laden der Dialogbibliotheken notwendig
jeder Dialog wird zu einem Dialogmodul
Problem bei execute(): Benutzer kann nicht weiterarbeiten, bevor Dialog geschlossen wird
Lösung: setVisible=true
Problem: nur noch Standard-Schaltflächen funktionieren, kein automatische Beenden mehr
msgbox("Meldung", Aussehen, "Titel")
Meldung wird aus irgendwas addieren (ist auch so beim Löschen von Zellbereichen)
23.12.2007 16:11
5 von 7
Krumbein - Itswiki
http://localhost/itswiki/index.php/Krumbein
Makrorekorder
erzeugt Dispatcher-Code
nicht zum Weiterprogrammieren geeignet, wie z.B. bei VBA
Sun darf Dispatcher-Codes jederzeit ändern oder entfernen
Nutzer wird auf diese Art keine Makros programmieren => Workshops für Poweruser
Calc-Makros
cInt(Variable)
versucht, aus Variable eine Ganzzahl zu machen
Kommastellen werden abgeschnitten
während eine benutzerdefinierte Funktion läuft, kann man keine Zellen über Makro verändern
Parameter Calc werden mit ; getrennt
=EINE_ANDERE_FUNKTION(1;5;8)
geschützte Blätter können auch mit Basic nicht bearbeitet werden
vorher sheet.unprotect("Passwort")
hinterher dann wieder sheet.protect("Passwort")
versteckte Blätter können mit Basic bearbeitet werden
z.B. kann dort auch Passwort für Seitenschutz gespeichert werden (vgl. OOo-Kassenbuch)
kann aber über XML-Datei ausgelesen werden
eine Selektion aus mehreren Zellen hat keine Value
prüfen, ob Selektion den Service "CellSheetService" unterstützt (S. 351)
lockControllers() friert die Sicht ein
kein Flackern des Bildschirms
später unbedingt wieder unlocken
Texte in geschriebenes Writer-Dokument einfügen
Variante 1: Textmarke (Ankerpunkt)
jeden Namen nur 1x benutzen
Ort muss bekannt sein (nicht auf einmal in einem Rahmen, wenn früher direkt in Absatz)
Vorteil nur, wenn mehrmals an selber Stelle etwas geändert werden muss
Problem: Wie Ende des zuvor eingefügten Textes finden?
expandierende Textmarke (Bereich markieren und dann Textmarke einfügen)
auf Bereich in Textmarke kann gesondert zugegriffen werden
Variante 2: Platzhalter
z.B. $Ich_bin_ein_Feldname$ durch Werte ersetzen
meist schneller und einfacher
Platzhalter beliebig oft in einem Dokument benutzbar
Funktion zum Suchen und Ersetzen (S. 285) erreicht auch Textrahmen, ....
Einzige Vorgabe an den Mitarbeiter: Schreib den Namen des Platzhalters richtig
optimal, wenn nur Dokument nur einmal durchlaufen wird
Base
Base ist ein Container
Daten oder Verknüpfungen zu Daten
Formulare (Writer-Dokumente)
Berichte sind Basic-Befehle, die Datenfelder aus einer Datenbank auslesen und ein Writer-Dokument erzeugen
Früher: selbst kodieren oder Assistent
Heute: Report-Designer-Extension: Berichte in Entwurfsansicht erstellen
Ergebnis ist auch wieder Basic-Code, aber per Drag and Drop gebastelt
Detailbereich wird von jedem Datensatz durchlaufen
eigene Funktionen erstellen
23.12.2007 16:11
6 von 7
Krumbein - Itswiki
http://localhost/itswiki/index.php/Krumbein
nicht unbedingt geeignet zum Anlegen neuer (großer) Datenbanken
meist tut es auch Calc
optimal, um schnell ein GUI für bestehende Datenbanken zu schaffen
Base wird zur Serienbrieferstellung genutzt
im Hintergrund Base-Verknüpfung zu Datenquelle
Start-Datei kann aber trotzdem gelöscht werden, da nur Startaufruf im StarDesktop (siehe Bild)
Verknüpfte Daten befinden sich im Cache
keine automatische Aktualisierung
oft sogar noch 10 Minuten nach dem Beenden der Anwendung
Faustregel
nicht versuchen, bestehende Makros zu verstehen und nachzuprogrammieren
sondern: fragen, was das Ergebnis sein soll
Shortcuts und Co in Writer
Blindtext: bi + F3 (Autotext -> Blindtext)
F11 - Formatvorlagen anzeigen
"weiches" Return: Shift + Enter
zusätzliche Buttons im Dokument zum Starten von Makros:
Ansicht => Symbolleiste => Formular-Steuerelemente
Entwurfsmodus aktivieren, Button einfügen
Makro zuweisen
Entwurfsmodus beenden
Weisheiten
ein String kann nur 64KB aufnehmen, nicht den ganzen Text eines Dokumentes (Duden-Dilemma)
Windows-API liefert bei Anfrage nach Temp-Verzeichnis einen Dateinamen im 8.3-Format (erst in Vista
behoben)
Von "http://localhost/itswiki/index.php/Krumbein"
Diese Seite wurde zuletzt geändert um 12:11, 23. Dez 2007.
Diese Seite wurde bisher 12 mal abgerufen.
Datenschutz
Über Itswiki
Lizenzbestimmungen
23.12.2007 16:11
7 von 7