Hallo Reimer, zum Umgang mit der Mailingliste hat Edgar schon das Wesentliche vermerkt. Deswegen hier nur Kommentare zum Inhalt. > > Zunächst hätte ich gerne gewusst, wo ich Hanfbuch oder ähnliches über > OOo-Basic erhalten kann. Gibt es im Netz eine Adresse wo man das > Handbuch in einem PDF-Format herunterladen könnte. Oder lässt es sich > nur über den Fachhandel erwerben. Wenn JA dann WO???
Suchst Du OOo-Basic oder die Grundlagen für Base, also Datenbank? Zur Datenbank: Es handelt sich um eine HSQLDB, d.h. die Website dafür ist hier: http://hsqldb.org/doc/guide/ch09.html ... wobei ich gleich die bei mir am häufigsten genutzte Seite angebe, die Dir bei den untenstehenden Problemen vielleicht die entscheidenden Hinweise geben kann. > > Dann zu meinem Problem was ich mir auferlegt habe. Im Anhang habe ich > eine Test-Tabelle mal hinterlegt. Zu dieser Tabelle möchte ich eben eine > Datenbank hinterlegen. Ich habe mir auch schon eine Datenbank-Tabelle > erstellt. speziell geht es mir jetzt darum, das ich bei der Eingabe im > Formular von den Feldern "Start-Zeit" und Ende Zeit die Stunden in dem > Feld "Stunden" errechnet ausgeben möchte. Außerdem soll wenn in dem Feld > "Pausen" ein "TRUE" eingegeben wird aus der Stamm-Datei die hinterlegen > Pausen-Zeit abgezogen werden. > > Gibt es jemand der mir schon Lösungsvorschläge machen kann, und wie ich > unter OOo-Base da vorgehen muss??? Vorsicht ist geboten, wenn Du zwischen Datenbank (HSQLDB) und OOo-Basic mit Datum/Zeit hin und her springen willst. Dabei geht es sowohl um Formatierungen als auch um unterschiedliche Startdaten (Welches Datum entspricht der Zeit 0 ...) Deshalb mein Vorschlag: Mach alles mittels einer Abfrage, die Du im Abfragecontainer von Base hinterlegst und in Deinem Formular nur zum Update aufrufst. IDZeit SZeit als Startzeit EZeit als Endzeit CheckPause stehen in einer Tabelle IDPause Pause steht in der zweiten Tabelle Die Abfrage jetzt SELECT "IDZeit", DATEDIFF('mi', "SZeit", "EZeit") AS "Arbeitszeit" FROM "Tabelle1" müsste den Zeitunterschied in Minuten ergeben SELECT "Tabelle1"."IDZeit", CASEWHEN("Tabelle1"."Pause",DATEDIFF('mi', "Tabelle1"."SZeit", "Tabelle1"."EZeit")-"Tabelle2"."Pause", DATEDIFF('mi', "Tabelle1"."SZeit", "Tabelle1"."EZeit") AS "reine_Arbeitszeit" FROM "Tabelle1","Tabelle2" Die Abfrage wirst Du so nicht in der GUI-Ansicht eingeben können. Dazu musst Du den Ansichtsmodus auf den Abfragetext umschalten. Im Formular machst Du die Abfrage zu einem Unterformular, das Du gar nicht erst zum Beschreiben vorsiehst. Verknüpfungspunkt zum Hauptformular ist die "IDZeit". Das Unterformular muss nachher in der Ansicht gar nicht als solches erkennbar sein, d.h. die entsprechenden Felder können auch direkt neben den Eingabefeldern zur Zeit liegen. In BASIC ist jetzt nur ein Makro notwendig, dass - die Eingabe aus dem Hauptformular abspeichert und - das Unterformular aktualisiert. Prinzipiell geht das Ganze aber auch ohne, wenn Du auf die direkte Ansicht verzichtest. Ansonsten: SUB Zeitausgabe DIM oDoc AS OBJECT DIM oDrawpage AS OBJECT DIM oForm AS OBJECT DIM oSubForm AS OBJECT oDoc=thisComponent oDrawpage=oDoc.Drawpage oForm=oDrawpage.Forms.getByName("NameFormular") oSubForm=oForm.getByName("NameSubFormular") IF oForm.rowInserted() THEN REM Die neue Zeile abspeichern oForm.updateRow() ELSE oForm.insertRow() END IF oSubForm.reload() END SUB Das bindest Du an das Eingabefeld, das direkt vor dem Feld zur Berechnung liegt. Wenn das Feld verlassen wird soll dieses Makro laufen. Du musst lediglich den Namen des Formulars ( meist "MainForm" in der Normaleinstellung) und den des Subformulars (meist "Standard" in der Normaleinstellung) ersetzen. Eine Macke hat das Makro so allerdings: Es funktioniert erst einmal nur bei Neueingaben, da die Funktion oForm.rowInserted() nur aktuelle einen Rückgabewert abgibt, aber eben nicht, wenn es sich um einen schon vor einiger Zeit abgespeicherten Wert handelt. Um das in den Griff zu bekommen musst Du entweder über den Makrorecorder einfach die entsprechende Datenspeicherung mit den dazugehörigen Befehlen ermitteln oder bei der Analyse des Formularinhaltes mehr Hand anlegen. Gruß Robert --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org