Home / LinuxUser / 2008 / 03 / Zeit ist Geld

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Zeit ist Geld

Zeiterfassung mit OOBase

01.03.2008 Die OpenOffice-Komponenten Base und Basic fristen ein Schattendasein – zu Unrecht, wie unser Workshop beweist.

OpenOffice.org Basic genießt nicht gerade den Ruf eines professionellen Werkzeugs und hält tatsächlich dem Vergleich mit Programmiersprachen wie C++, Java oder Python kaum stand. Das heißt aber nicht, dass man mit OOoBasic keine mächtigen und flexiblen Lösungen programmieren könnte. Seit die Skriptsprache in der Lage ist, die Anwendungen aus OpenOffice miteinander zu verbinden, taugt sie sogar perfekt zum Selbstbau individueller Werkzeuge. Wir beweisen Ihnen das an einem Tool für professionelle, nach Stundensätzen bezahlte Schreiber. Für die ist es wichtig zu wissen, wieviel Zeit sie für einzelne Dokumente benötigen, damit sie diese ihren Auftraggebern in Rechnung stellen können.

Man könnte eine Calc-Tabelle für solche Berechnungen verwenden, in die man Dokumentenname, Datum, benötigte Zeit und weitere Informationen von Hand einträgt. Besonders effizient erscheint das in Zeiten automatischer Datenverarbeitung aber nicht. Stattdessen kann man mit OpenOffice.org Basic ein Werkzeug anfertigen, das die Zeit, , die man für ein Writer-Dokument braucht, selbständig im Auge behält. Die trägt es Tool dann automatisch in eine Base-Datenbank ein, die nachher für die Rechnungsstellung alle benötigten Informationen liefert.

Ein Anwender ohne Programmierkenntnisse mag sich von einer solchen Aufgabenstellung einschüchtern lassen – um dieses nützliche Helferlein anzufertigen, benötigt man jedoch nichts weiter als ein Makro und eine einfache Base-Datenbank.

Datenbank in Base anlegen

Bevor Sie sich um das Makro kümmern, legen Sie in Base eine einfache Datenbank an, in der das Makro anschließend die wichtigsten Daten über das Erstellen der Dokumente ablegt. Starten Sie OpenOffice.org, klicken Sie auf Neues Dokument | Datenbank und danach auf Öffnen: Damit starten Sie den Datenbank-Assistenten. Übernehmen Sie die Option Neue Datenbank erstellen und klicken Sie auf Fertig stellen. Vergeben Sie einen Namen, zum Beispiel Zeiterfassung. Mit OK legen Sie die Datenbank an.

Nun klicken Sie im Arbeitsfenster von Base auf Tabellen und danach auf Tabelle in der Entwurfsansicht erstellen. Es öffnet sich ein neues Fenster, in dem Sie die Felder Ihrer Zeiterfassung definieren. Welche das sein sollen, hängt davon ab, was Sie dort später sehen möchten. Mindestens sollten Sie aber vier Felder für Datenbankschlüssel, Dokument, Datum und Zeit dort eintragen (Tabelle "Feldnamen" und Abbildung 1).

Feldnamen

Feldname

Feldtyp

Beschreibung

ID Integer [INTEGER] Primärschlüssel (für jeden Datensatz einzigartig und eindeutig)
Dateiname Text [VARCHAR] Name des erfassten Office-Dokuments
Zeit Integer [INTEGER] Dauer für das Erstellen des aktuellen Dokuments
Datum Datum [DATE] Tag, an dem Sie den Datensatz hinzugefügt haben

Abbildung 1: Als Basis Ihrer Zeiterfassung erstellen Sie in Base eine einfache Tabelle.

Klicken Sie mit der rechten Maustaste auf das kleine Feld links neben dem Feldnamen ID und wählen Sie aus dem Kontextmenü Primärschlüssel. Base fügt dem Feld ein kleines Schlüsselsymbol hinzu. Stellen Sie in den Feldeigenschaften bei Auto-Wert Ja ein, damit Base diesen Wert später automatisch hochzählt. Haben Sie alle Felder erstellt, speichern Sie die Tabelle zum Beispiel unter dem Namen time und schließen die Entwurfsansicht. Klicken Sie auch im Datenbankfenster von Base auf Datei | Speichern, um die gesamte Datenbank bis hierher zu sichern.

Im nächsten Schritt registrieren Sie Ihre Datenbank als Datenquelle, auf die Sie mit anderen OpenOffice-Anwendungen zugreifen wollen. Dafür wählen Sie aus dem Menü Extras die Optionen und im Bereich OpenOffice.org Base die Datenbanken (Abbildung 2). Taucht die Datenbank in der Liste der registrierten Datenbanken nicht auf, klicken Sie auf Neu sowie Durchsuchen, wählen die Zeiterfassung per Doppelklick und OK aus und schließen das Menü.

Abbildung 2: Registrieren Sie Ihre Datenbank in Base, so dass Sie von anderen OpenOffice-Anwendungen darauf zugreifen können.

OpenOffice-Makro erstellen

Alle Einzelprogramme des freien Büropakets arbeiten mit OpenOffice.org Basic zusammen. Das bedeutet: Mit welcher Applikation Sie auf den Basic-Editor zugreifen, spielt keine Rolle. Sie erreichen den Editor immer über Extras | Makros | Makros verwalten | OpenOffice.org Basic. Markieren Sie das Makro Main und klicken Sie auf Bearbeiten. Anschließend präsentiert sich der Bildschirm etwa so, wie in Abbildung 3 zu sehen. Um den unten beschriebenen Code einzufügen, scrollen Sie einfach ans Ende des Skripts.

Abbildung 3: Der Basic-Editor von OpenOffice. Hier fügen Sie den Code der Zeiterfassung ein.

Das OOoBasic-Makro, das Sie für Ihre Zeiterfassung benötigen, besteht aus zwei Teilen: Der erste startet und stoppt einen Timer und berechnet die dazwischen vergangenen Minuten, der zweite zeichnet für gleich drei Dinge zuständig: Er verschafft sich Namen und Entstehungsdatum des aktuellen Dokuments, baut eine Verbindung zur Datenbank auf und schreibt die erhobenen Daten in einen neuen Datensatz.

Starten Sie mit dem Timer, der wiederum aus zwei Subroutinen besteht: Die erste sorgt für den Beginn der Zeiterfassung, die zweite stoppt sie und misst die verbrauchte Zeit. Dazu definieren Sie in OOoBasic zunächst zwei globale Variablen: GlobalElapsedTime und GlobalStartTime (Listing 1, Zeilen 2 und 3). Sie brauchen diese Variablen, um die Werte für Start- und verbrauchte Zeit zwischen den Subroutinen für StartTime und EndTime auszutauschen. Die Subroutine für StartTiming() fällt ziemlich einfach aus (Listing 1, Zeile 6 ff.).

Listing 1
rem — Globale Variablen
Global ElapsedTime as Long
Global StartTime
rem — Timer starten
Sub StartTiming()
  If ElapsedTime <> 0 then
    Message="Es laeuft bereits eine Zeitmessung!" & Chr(13) & "Moechten Sie eine neue Messung starten?"
  Else
    Message="Moechten Sie eine Zeitmessung starten?"
  EndIf
  Answer=MsgBox(Message,4,"Zeitmessung starten?")
  If Answer=7 then End
  StartTime=Time
  ElapsedTime=Timer
End Sub

Als erstes prüft sie anhand der Variablen ElapsedTime, ob bereits eine Zeitmessung läuft. Ist der Wert der Variable Null, fordert die Subroutine den Anwender auf, eine neue Session zu starten. Um die verbrauchte Zeit zu berechnen, wenn der Anwender die Messung stoppt, verwendet die Routine die beiden Variablen StartTime und ElapsedTime. StartTime erhält ihren Wert von der Variablen Time, die wiederum die aktuelle Uhrzeit von der Systemzeit des Rechners bezieht. ElapsedTime fungiert als Timer und holt sich ihren Wert aus der gleichnamigen Funktion.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

2258 Hits
Wertung: 164 Punkte (18 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 0 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...