[de-users] Re: Probleme mit dem Formularassistent in OpenOffice.org-Base
Ich antworte mir mal selbst. Ulrich Möhrke wrote: > Mechtilde <[EMAIL PROTECTED]> writes: >> Wolfgang Hochhaeusler wrote: >> > >> > Ich arbeite mit OpenOffice.org 2.0.2 unter Linux. >> Welche Distribution? > > Ich nutze die interne Datenbank. Openoffice in Version 2.0.3 auf Linux > Debian etch. > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=354895 deutet darauf hin, dass es sich beim unten beschriebenen Problem um ein debian-spezifisches handelt. Ich werde mir demnächst direkt die Download-Dateien von openoffice holen. Wenns damit auch nicht klappt, melde ich mich wieder. Viele Grüße, Ulli > > Bei mir genauso: > Der Formularassistent von Base tut nichts bei Nutzung von > Java(TM) 2 RE, Standard Edition, Sun Microsystems(TM), Version 1.5.0 > Update 7. > > Er scheint gut zu funktionieren mit der Java-Version 1.4.2 der Free > Software Foundation, das Formular ist schon im Hintergrund zu sehen, aber > bei "Fertig stellen" passiert nichts. Bei Abbrechen ist dann leider auch > das Formular weg. > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[de-users] Base, Formulardaten mit Makro ändern
Hallo, ich verwende OpenOffice 2.0.3 Base mit interner Datenbank HSQLDB (für Tests). Vorrede: Ich möchte Dateinamen in einer Datenbankspalte speichern und diese komfortabel auf einem Formular bearbeiten können. Ein Dateiauswahlfeld kann man leider nicht direkt mit dem Datenfeld verbinden. Möglicherweise wäre das für mich auch nicht geeignet, da ich den Namen noch nach meinem Geschmack bearbeiten möchte. Problem: Ich habe auf einem Formular (einzelner Datensatz, nicht Tabelle) ein Textfeld txtfilename, dass mit dem Datenfeld filename verbunden ist. Außerdem gibt es daneben eine Schaltfläche. Beim Drücken der Schaltfläche soll der Text im Feld txtfilename verändern werden, so dass die Änderung beim Wechsel auf einen anderen Datensatz auch in der Datenbank gespeichert wird. Das Ändern des Textes mit Makro habe ich geschafft: odoc = ThisComponent oform = odoc.drawpage.forms.getbyindex(0) oTextFeld = oform.getbyname("txtfilename") oTextFeld.text = "blabla" Leider wird die Änderung aber nicht in die Datenbank geschrieben. Nach Blättern auf einen anderen Datensatz und zurückkommen ist der alte Text wieder da. Ich habe auch zusätzlich oform.ismodified = true versucht. Dann bekomme ich beim Wechsel zu einem anderen Datensatz (d.h. beim Speichern?) einen Fehler: SQL-Status: HY Fehler-Code: 1000 Es wurden keine Werte verändert. Auch oform.setstring(2,"blabla") war nicht mit Erfolg verbunden. (Die Tabelle hat zwei Spalten, "index" und "filename".) Wie bekomme ich es hin, dass sich das Makro so verhält, als würde ich in das Textfeld "blabla" schreiben? Hat jemand einen Tipp für mich bzw. welche Doku hätte ich finden müssen, die mir bei der Lösung hilft. Vielen Dank, Ulli - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[de-users] Lösung: Base, Formulardaten mit Makro ändern
Hallo Thomas, hallo Liste, Thomas Krumbein wrote: > Hey Ulrich, > > Ulrich Moehrke schrieb: > [..] >> Leider wird die Änderung aber nicht in die Datenbank geschrieben. Nach >> Blättern auf einen anderen Datensatz und zurückkommen ist der alte Text >> wieder da. > > Klar. Du musst deine Änderungen auch speichern. > [EMAIL PROTECTED] es einmal mit der > Anweisung > > oForm.upDateRow() > Mit oForm.upDateRow() hat es nicht funktioniert. Bei verschiedenen Versuchen ist entweder nichts Erkennbares passiert oder ich erhielt Fehlermeldungen. Nach der Lösung (unten) denke ich, dass oForm die Änderung des Textfeldes noch nicht mitbekommen hatte und also mit upDateRow() auch nichts bewirken kann. > > API, dort die IDL Referenz ? OK, schwer zu lesen. > Ein gutes Buch? z.B. das: > Hat mir tatsächlich geholfen, wenn auch mit viel Mühe. Nach einigen anderen Versuchen, war folgendes zielführend: Erst mal habe mit MsgBox oTextFeld.DBG_supportedInterfaces die Interfaces für das Textfeld herausbekommen und dann verschiedenstes dazu lesen. XBoundComponent war dann das entscheidende Interface. Die Lösung sieht jetzt so aus. Das folgende Makro verhält sich so, als würde der Text "blabla" direkt in das Textfeld "txtfilename" eines Formulars geschrieben auch bezüglich Zurückschreiben in die Datenbank. sub set_blabla odoc = ThisComponent oform = odoc.drawpage.forms.getbyindex(0) oTextFeld = oform.getbyname("txtfilename") oTextFeld.text = "blabla" oTextFeld.commit() end sub Nach der Beschreibung auf http://api.openoffice.org/docs/common/ref/com/sun/star/form/XBoundComponent.html hätte ich zwar gedacht, dass mit commit() sofort in die Datenbank geschrieben wird, aber anscheinend liefert es einfach die Informationen über die Änderung an oForm. Viele Grüße, Ulli - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]