2016-07-11 10 views
1

Dies bei einer Veranstaltung den Wert eines Feldes bekommen funktioniert (zB ein Button-Klick):Libreoffice Base-Basisformularfeld Wert auf Last Get

Sub runatevent(Event as Object) 
    dim form as Object 
    dim cntrl 
    form = Event.Source.Model.Parent 
    cntrl = form.getByName("txtpath").currentvalue 
    print(cntrl) 
End Sub 

aber wenn ich versuche, dies ist auf dem Formular zu feuern „Nach Datensatzänderung "Ereignis, ich erhalte eine Fehlermeldung:" Eigenschaft oder Methode nicht gefunden: Modell "

Wie erhalte ich den Wert von" txtpath "beim Formularereignis" Nach Datensatzänderung "?

Antwort

2

Um dies herauszufinden, habe ich XrayTool auf dem Event Objekt verwendet. Dies ist, was funktioniert hat:

form = Event.Source 

Wie in meiner Antwort auf your other question, schlage ich vor, den Wert aus der Ergebnismenge zu lesen:

nameCol = form.findColumn("PATH") 
print(form.getString(nameCol)) 

Die Idee ist, dass das Formular auf einer Ergebnismenge basiert, so Sie können nur aus der Ergebnismenge lesen, anstatt ein Steuerelement aus dem Formular abzurufen und dann den Wert des Steuerelements zu überprüfen. Nur ein bisschen eleganter meiner Meinung nach.

+0

außer meine Daten sind in Feldern (Textblöcke) nicht in Spalten ... so scheint findColumn() nicht zu funktionieren. Wie finde ich etwas Einfaches wie die Methoden, die das Formularobjekt jetzt erlaubt? Mein Feld hat den Namen txtpath, der den Datenpfad anzeigt, es hat das Label (alias lblpath). Vielen Dank! – Trees4theForest

+0

Die Diskussion wurde in http://chat.stackoverflow.com/rooms/117030/room-for-jim-k-and-trees4theforest-libreoffice-base-get-form-field verschoben –