[Gelöst] Automatisches Speichern im Formular

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Christiana
***
Beiträge: 62
Registriert: Di, 20.03.2007 11:41

[Gelöst] Automatisches Speichern im Formular

Beitrag von Christiana »

Zum besseren Verständnis hier erst einmal ein Screenshot von meinem Formular.
Neubestand_RDA_deaktiviert.gif
Neubestand_RDA_deaktiviert.gif (42.73 KiB) 930 mal betrachtet
Wenn die Checkbox der Spalte ”Rest durch Abzug“ in der oberen Tabelle nicht angeklickt wurde, soll die untere rechte Tabelle deaktiviert sein. Mein Code dazu funktioniert auch. Ist jedoch mein Formular längere Zeit geöffnet, so ist die Tabelle plötzlich wieder aktiviert. Es scheint an dem automatischen Zwischenspeichern des Dokumentes zu liegen.
Ich habe das Speichern von AutoWiederherstellungsinfo unter Extras > Optionen > Laden/Speichern auf 1 Minute gesetzt und prompt tritt der oben beschriebene Zustand auch nach einer Minute ein.

Gibt es ein Ereignis oder ein Listener zu diesem automatischen Zwischenspeichern, sodass ich den richtigen Zustand der unteren rechten Tabelle per Makrocode wieder herstellen könnte? Mir sind die Ideen ausgegangen.

Viele Grüße
Christiana
Zuletzt geändert von Christiana am Di, 16.06.2009 13:41, insgesamt 1-mal geändert.
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Automatisches Speichern im Formular

Beitrag von turtle47 »

Hallo Christiana,



Edit: Idee verworfen. :(
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Automatisches Speichern im Formular

Beitrag von turtle47 »

Hi Christiana,

neuer Tag, neue Idee. :D

Das Verhalten des TableGrid ist in der Tat sehr merkwürdig. Wenn dieses via Makro deaktiviert wurde und nach dem Speichern wieder aktiv ist, so kann man mittels

Code: Alles auswählen

MsgBox TbContr.enabled
sehen, dass der Zustand in Wirklichkeit immer noch false ist.

Kleiner Workaround:
Weise folgendes Makro den Ereignissen des Grids "Bei Focuserhalt" und "Maus innerhalb" zu, dann wird das TableGrid wieder deaktiviert.

Code: Alles auswählen

Sub Main
	oForm = ThisComponent.Sheets(0).DrawPage.Forms.getByIndex(0)
	TbContr = oForm.getByName("TableControl")
	if TbContr.enabled = false then	
	TbContr.enabled = true
	TbContr.enabled = false
	end if
End Sub
Dann ist eine Bearbeitung nicht möglich. :lol:

Vielleicht hilft es Dir ja weiter.

Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Christiana
***
Beiträge: 62
Registriert: Di, 20.03.2007 11:41

Re: Automatisches Speichern im Formular

Beitrag von Christiana »

Hi Jürgen,

Du bist einfach Spitze. Deine heutige Idee war genau die richtige. Herzlichen Dank für Deine Hilfe.
Ich hatte mich da ganz schön verrannt mit der Suche nach einem Ereignis für das Zwischenspeichern. Einen Code hatte ich mir ebenfalls schon zusammengebastelt, aber viel zu kompliziert dabei gedacht. Ich hatte nämlich erst noch den Status des Markierfeldes in der oberen Tabelle abgefragt. Funktionierte auch, aber je einfacher der Code desto besser. Du hast mir also sehr geholfen.

Nochmals vielen, vielen Dank!!! :D :D :D
Christiana
Antworten