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]

Antwort per Email an