textfelder mittels button löschen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

apple
Beiträge: 4
Registriert: Fr, 09.03.2007 10:17

textfelder mittels button löschen

Beitrag von apple »

hej :)
meine idee: ich habe ein formular mit einigen textfeldern und checkboxen. nun möchte ich den inhalt der textfelder löschen (.string = "" ?) und die checkboxen auf 0 setzen.
gibt es die möglichkeit alle vorhandenen objekte in ein array zu packen und "gebündelt" zu bearbeiten?
Ich danke Euch!
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey apple,

na, da machst du es dir ein wenig einfach.... theoretisch geht das, nur - was wilst du damit erreichen? Und wie hast du das Formular erzeugt? Sind die Eingabefelder mit Daten aus einer Datenbank verbunden?
Die Anzeige spiegelt normalerweise den Inhalt des aktuellen Datensatzes wieder. Durch das Löschen der Anzeige änderst du zunächst keine "inneren" Werte, das heisst die Daten bleiben erhalten. Also, was soll das Ganze dann? Willst du einen neuen Datensatz anlegen (leer)? Oder den aktuellen löschen? Dafür gibt es jeweils andere Methoden!
Beschreibe doch bitte mal genauer, was du machen willst und wie du zu der Situation kommst.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
apple
Beiträge: 4
Registriert: Fr, 09.03.2007 10:17

Beitrag von apple »

hej Toxitom!
es ist so: ein formular, ohne datenbank, zum ausfüllen, und ausdrucken o. ä.. der anwender soll die möglichkeit haben, via button den inhalt aller felder zu "löschen", um das formular mit den daten einer anderen person auszufüllen.
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey apple,

OK, das versteh ich. Dann bastele dir eine Schleife oder erzeuge einen Array mit allen Feldnamen:

Code: Alles auswählen

sub FelderLerren
dim aListeTextfelder()
dim aListeBoxen()
aListeTextfelder = array("textfeld1", "textfeld2", "textfeld3") 'Liste der Textfelder
aListeBoxen = array("Checkbox1", "Checkbox2")  ' Liste der Checkboxen
oForm = thisComponent.drawpage.forms(0)  ' das Formular
for i = 0 to uBound(aListeTextfelder())
  oForm.getByName(aListeTextfelder(i)).text = ""
next
for i = 0 to uBound(aListeBoxen())
  oForm.getByName(aListeBoxen(i)).state= 0
next
end sub
Das wäre die Varainte mit Arrays.
Die Arrays kannst du dir sparen, wenn du alle Felder mit gleichen Namen versiehst und sie nur durchnummerierst - und die Namen dann direkt erzeugst, also im dem Fall etwa so:

Code: Alles auswählen

sub FelderLeeren2
oForm = thisComponent.drawpage.forms(0)  ' das Formular
for i = 1 to 3
  oForm.getByName("textfeld" & i).text = ""
next
for i = 1 to 2
  oForm.getByName("Checkbox" & i).state= 0
next
end sub
Wie du dein Formular eakt erreichst, hängt natürlich vom verwendeten Modul und dem entsprechenden Formular ab - aber das weisst du sicher :-)

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
apple
Beiträge: 4
Registriert: Fr, 09.03.2007 10:17

Beitrag von apple »

großartig! das wochenende ist gerettet: "Danke!"
Antworten