Löschen von Benutzerfeldern?
Moderator: Moderatoren
Löschen von Benutzerfeldern?
Hallo,
gibt es eine Möglichkeit, Benutzerfelder komfortabel zu löschen? Ich habe ein Dokument mit ca. 900 Benutzerfeldern und möchte diese komfortabel löschen. Gibt es da in Starbasic ggf. einen Befehl oder vielleicht sogar in OpenOffice selbst eine Möglichkeit? Die X-Schaltfläche in den Optionen der Benutzerfelder ist bei so vielen Felder sehr mühsam und anscheinend lassen sich auch einige Benutzerfelder nicht löschen.
Vielleicht etwas wie:
Masters = ThisComponent.getTextFieldMasters()
Feld = Masters.getByName("com.sun.star.text.FieldMaster.User.AccusationMacro")
Feld.Delete?
Danke und Gruß
Harryh99
gibt es eine Möglichkeit, Benutzerfelder komfortabel zu löschen? Ich habe ein Dokument mit ca. 900 Benutzerfeldern und möchte diese komfortabel löschen. Gibt es da in Starbasic ggf. einen Befehl oder vielleicht sogar in OpenOffice selbst eine Möglichkeit? Die X-Schaltfläche in den Optionen der Benutzerfelder ist bei so vielen Felder sehr mühsam und anscheinend lassen sich auch einige Benutzerfelder nicht löschen.
Vielleicht etwas wie:
Masters = ThisComponent.getTextFieldMasters()
Feld = Masters.getByName("com.sun.star.text.FieldMaster.User.AccusationMacro")
Feld.Delete?
Danke und Gruß
Harryh99
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Ich denke schon, dass es diese Möglichkeit gibt.
Gib' uns 'ne Chance, und die Angaben zu:
OOo Version
Dokumentenformat
was Du unter "Benutzerfeld" verstehst, wie sie erstellt wurden.
Danke.
Gib' uns 'ne Chance, und die Angaben zu:
OOo Version
Dokumentenformat
was Du unter "Benutzerfeld" verstehst, wie sie erstellt wurden.
Danke.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Hey Harry,
Textfelder löschst du - wie andere Textinhalte auch - über die Methode removeTextContent().
Bei Feldern mit einem Master bleibt dieser allerdings bestehen. Um das Masterobjekt endgültig zu löschen, bkeibt meiner ansicht nur die Methode dispose().
Gruss
Thomas
Textfelder löschst du - wie andere Textinhalte auch - über die Methode removeTextContent().
Bei Feldern mit einem Master bleibt dieser allerdings bestehen. Um das Masterobjekt endgültig zu löschen, bkeibt meiner ansicht nur die Methode dispose().
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo,
Openoffice-Version ist 2.0.1
Dokumentenformat ist im Grunde egal, momentan jedoch noch sxw, wäre aber auch odt nicht abgeneigt.
Die Benutzerfelder wurden unter Einfügen->Feldbefehl->andere->Variablen->Benutzerfeld eingetragen.
Ich suche nun eine Möglichkeit alle Benutzerfelder des Dokumentes komfortabel zu löschen (z.B. über ein Makro).
Danke und Gruß
Harryh99
Openoffice-Version ist 2.0.1
Dokumentenformat ist im Grunde egal, momentan jedoch noch sxw, wäre aber auch odt nicht abgeneigt.
Die Benutzerfelder wurden unter Einfügen->Feldbefehl->andere->Variablen->Benutzerfeld eingetragen.
Ich suche nun eine Möglichkeit alle Benutzerfelder des Dokumentes komfortabel zu löschen (z.B. über ein Makro).
Danke und Gruß
Harryh99
Zuletzt geändert von harryh99 am Mo, 17.07.2006 15:29, insgesamt 1-mal geändert.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Basic: löschen aller Benutzerfelder
Das ist ein "Acht-Zeiler", radikales Löschen, ohne Fehlerprüfungen: Benutzung auf eigene Gefahr!
Getestet mit OOo 2.0.3, Linux, .odt Format
Getestet mit OOo 2.0.3, Linux, .odt Format
Code: Alles auswählen
Sub oooinfo_8136
' 20060714
' http://de.openoffice.info/viewtopic.php?t=8136
' Writer Makro OHNE Fehlerprüfungen !
'
' Loeschen aller:
' " Einfügen->Feldbefehl->andere->Variablen->Benutzerfeld "
' eines Writer-Dokuments
oDok = ThisComponent
enumTextFelder = ThisComponent.getTextFields().createEnumeration()
' alle
Do While enumTextFelder.hasMoreElements()
oTextFeld = enumTextFelder.nextElement()
' Benutzerfeld
If oTextFeld.supportsService("com.sun.star.text.TextField.User") Then
' weg damit
oTextFeld.dispose()
End If
Loop
End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Hallo komma4,
ich habe gerade das Makro ausprobiert und es löscht leider die Benutzerfelder nur im Inhalt des Dokumentes nicht aus den Daten des Dokumentes. Sie tauchen weiterhin unter "Einfügen->Feldbefehl->andere->Variablen->Benutzerfeld" auf.
Ich würde jedoch gerne die kompletten Benutzerfelder auch aus den Metadaten des Dokuments loswerden. Gibt es da eine Möglichkeit?
Danke und Gruß,
Harryh99
ich habe gerade das Makro ausprobiert und es löscht leider die Benutzerfelder nur im Inhalt des Dokumentes nicht aus den Daten des Dokumentes. Sie tauchen weiterhin unter "Einfügen->Feldbefehl->andere->Variablen->Benutzerfeld" auf.
Ich würde jedoch gerne die kompletten Benutzerfelder auch aus den Metadaten des Dokuments loswerden. Gibt es da eine Möglichkeit?
Danke und Gruß,
Harryh99
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
auf die GanzHarte:harryh99 hat geschrieben:Gibt es da eine Möglichkeit?
Code: Alles auswählen
Sub oooinfo_8136_variante2
oDok = ThisComponent
for i = UBound( oDok.TextFieldMasters.ElementNames ) to 0 Step -1
if Instr( _
oDok.TextFieldMasters.ElementNames( i ), _
"com.sun.star.text.FieldMaster.User" ) > 0 then
oMaster = oDok.TextFieldMasters.getByName( _
oDok.TextFieldMasters.ElementNames( i ) )
oMaster.dispose()
end if
next i
End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)