von eBayer » Mi, 11.02.2009 19:57
Hallo,
ich habe kürzlich in einem US-Forum die Lösung gefunden, mit der ich per Macro an eine Tabelle gebundene Formularfelder ändern und automatisch speichern kann. Mit dieser Methode erkennt das Formular die Änderung und speichert die Daten so ab, als wenn ich sie per Hand geändert hätte (der Speichern-Button wird aktiviert und beim schließen wird automatisch gefragt, ob die Änderungen gespeichert werden sollen. Weiterer Vorteil: ein UnDo, also rückgängig machen der noch nicht gepeicherten Änderung des Formulars geht auch!
Hier der auf das wesentliche reduzierte Code:
oDoc = thisComponent
oForm = oDoc.DrawPage.Forms.GetByIndex(0)
oTx = oForm.getByName("meinFormularFeld")
oTxCtr = oDoc.CurrentController.GetControl(oTx)
oTxCtr.Text = "neuer Wert"
Das wars!!
Achtung, Du mußt natürlich auf den richtigen Datentyp achten, also numerisch, text usw.
Allerdings kann ich das Funktionieren nur für ooBase 3.0 bestätigen.... zu früheren Versionen kann ich nichts sagen.
Viel Spaß und Gruß
eBayer
Hallo,
ich habe kürzlich in einem US-Forum die Lösung gefunden, mit der ich per Macro an eine Tabelle gebundene Formularfelder ändern und automatisch speichern kann. Mit dieser Methode erkennt das Formular die Änderung und speichert die Daten so ab, als wenn ich sie per Hand geändert hätte (der Speichern-Button wird aktiviert und beim schließen wird automatisch gefragt, ob die Änderungen gespeichert werden sollen. Weiterer Vorteil: ein UnDo, also rückgängig machen der noch nicht gepeicherten Änderung des Formulars geht auch!
Hier der auf das wesentliche reduzierte Code:
oDoc = thisComponent
oForm = oDoc.DrawPage.Forms.GetByIndex(0)
oTx = oForm.getByName("meinFormularFeld")
oTxCtr = oDoc.CurrentController.GetControl(oTx)
oTxCtr.Text = "neuer Wert"
Das wars!!
Achtung, Du mußt natürlich auf den richtigen Datentyp achten, also numerisch, text usw.
Allerdings kann ich das Funktionieren nur für ooBase 3.0 bestätigen.... zu früheren Versionen kann ich nichts sagen.
Viel Spaß und Gruß
eBayer