Eingabe im Tabellenkontrollfeld rückgängig/null setzten

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Eingabe im Tabellenkontrollfeld rückgängig/null setzten

Re: Eingabe im Tabellenkontrollfeld rückgängig/null setzten

von Luke78 » Mi, 22.05.2013 22:28

Hi,

Es soll nur ein Wert zurückgesetzt werden, halt der für den die ListBox verantwortlich ist.

Im Prinzip werden für einen Dienstplan Datum, Anfangs- und Endzeit eingegeben und dann nach Auswahl eines Mitarbeiters überprüft ob dieser schon belegt ist zu dem Zeitpunkt.

Hab es jetzt auch ans Laufen bekommen, es klappt auch mit "Nach dem Aktualisiern". Das scheint stabiler zu funktionieren, auch wenn mir dadurch die Möglichkeit genommen ist einen Wert auf den vorher eingestellten zurückzu setzten. Aber null setzten funktioniert.

Re: Eingabe im Tabellenkontrollfeld rückgängig/null setzten

von F3K Total » Mi, 22.05.2013 17:52

Hi,
deine Frage ist zu unpräzise:
Luke78 hat geschrieben:Ich habe aktuell Probleme dabei, eingegebene Daten in einem Tabellenkontrollfeld nach deren Überprüfung wieder zurück zu setzten.
Sollen alle Spalten der zugrunde liegenden Tabelle zurückgesetzt werden, oder nur bestimmte?
Wenn alle, dann geht dies, an das Ereignis "Status geändert" der Listenfeldspalte gebunden.

Code: Alles auswählen

sub checkRow( oEvent as Object)
    dim ocontroller as Object
    dim oForm      as Object
    dim oSelect   as Object
    ocontroller = thisComponent.currentcontroller
    oSelect = oEvent.source.model
    ogrid = oSelect.Parent
    ogridcontrol = ocontroller.getcontrol(ogrid)
    oForm = ogrid.Parent
        if MsgBox( "Eintragen?", 36) = 7 then
            oform.reload
            oform.last
        else
            ogridcontrol.commit = true
            if oform.isnew then oform.insertrow else oform.updaterow
        end if
End sub
Gruß R

Eingabe im Tabellenkontrollfeld rückgängig/null setzten

von Luke78 » Di, 21.05.2013 23:21

Hallo zusammen!

Ich habe aktuell Probleme dabei, eingegebene Daten in einem Tabellenkontrollfeld nach deren Überprüfung wieder zurück zu setzten.

Das Skript wird durch das Event "Vor dem Aktualisieren" einer ListBox-Spalte aufgerufen (vereinfachte Version ohne Überprüfung, aber klappt auch nicht):

Code: Alles auswählen

sub checkRow( oEvent as Object)
	dim oForm		as Object
	dim oSelect	as Object

	if MsgBox( "Eintragen?", 36) = 7 then
		oSelect		= oEvent.Source 'ListBox
		oForm		= oSelect.Parent.Parent 'Form 

		oForm.updateNull( 5) 'Column 5 beinhaltet den Wert, der durch die Listbox gesetzt wird.
		oForm.updateRow()
	end if
end sub

Das wäre ja imho der richtige weg. War so auch in anderen Threads zu lesen, nur leider ging es da nie um Tabellenkontrollfelder.

Das Verhalten ist da sehr merkwürdig, mal klappt es mal nicht. Setze ich ein oForm.reload() hinter das updateRow stürzt Base immer ab.

Auf die ListBox, bzw. deren Methoden hab ich anscheinden an der Stelle keinen Zugriff. Versuche ich mit oSelect.selectItemPos( 0, true) den ersten Wert also leer auszuwählen, erhalte ich die Fehlermeldung "Eigenschaft oder Methode nicht gefunden", obwohl der Beobachter oSelect als ListBox ausweist.

Nach oben