[de-users] Re: Probleme mit dem Formularassistent in OpenOffice.org-Base

2006-07-13 Thread Ulrich Moehrke
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

2006-09-20 Thread Ulrich Moehrke
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

2006-09-21 Thread Ulrich Moehrke
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]