Text in Platzhalter via makro einfügen

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: Text in Platzhalter via makro einfügen

von oskar99 » So, 26.11.2006 10:39

Danke.

Da werde ich mich dann gleich mal dran versuchen.

:D

von Stephan » Sa, 25.11.2006 21:10

Wenn ich die anfangs erwähnten Platzhalter nutzen würde,
was müsste ich dann in der Makro-Zeile verändern?

Code: Alles auswählen

Sub Feld_suchen 
Dim sWoTag As String 
sWoTag=Inputbox("Bitte Wochentagnummer eingeben") 
if sWoTag =1 then wert = "Montag"
if sWoTag =2 then wert = "Dienstag" 
oViewCursor = ThisComponent.CurrentController.getviewCursor()
TextFieldEnum = ThisComponent.getTextFields.createEnumeration
While TextFieldEnum.hasMoreElements()
	TextField = TextFieldEnum.nextElement()
	If TextField.supportsService("com.sun.star.text.TextField.JumpEdit") Then
		If  TextField.PlaceHolder = "Wochentag" Then
			oViewCursor.gotorange(Textfield.Anchor,false)
			oViewCursor.String = wert
			Exit Sub
		End If
	End If
Wend
End Sub

Gruß
Stephan

von oskar99 » Sa, 25.11.2006 17:10

:D

Daaaankeeeee dem großen OO-Guru :idea: !

Das wars. So funktioniert es endlich.

Manchmal sieht man den Wald vor lauter Bäumen nicht :roll:


Wenn ich die anfangs erwähnten Platzhalter nutzen würde,
was müsste ich dann in der Makro-Zeile verändern?
Gibt es auch dafür irgendwo ein Beispiel?

von Stephan » Sa, 25.11.2006 16:45

Eingefügt über:

Einfügen -> Feldbefehl -> Andere -> [Referenzen] / Textmarke / Referenztext

Dann hast Du keine Textmarke eingefügt sondern versucht eine Referenz (auf eine nichtvorhandene) Textmarke einzufügen. Da die Textmarke nun nicht da ist hast Du im Dokument eine sog. unaufgelöste Referenz.

Die Fehlermeldung:
Die Fehlermeldung ist immer noch die gleiche:

"
BASIC-Laufzeitfehler
Es ist eine Exception aufgetreten.
Type: sun.com.star.container.NoSuchElementExeption
Message:.
"
steht damit in Einklang.




Das Einfügen von Textmarken geht über Einfügen-Textmarken.




Gruß
Stephan

von oskar99 » Sa, 25.11.2006 16:13

Hallo Toxitom,

nein, leider funktioniert auch dann der Code nicht :cry:

Weder mit noch ohne ' " '...

Die Fehlermeldung ist immer noch die gleiche:

"
BASIC-Laufzeitfehler
Es ist eine Exception aufgetreten.
Type: sun.com.star.container.NoSuchElementExeption
Message:.
"

Mach ich evtl. beim Einfügen der Textmarken / Platzhalter
einen Fehler? (Die Vorgehensweise habe ich ja weiter oben
schon beschrieben)

von Toxitom » Sa, 25.11.2006 09:23

Hey Oskar,
Das habe ich nun zwar in Textmarken geändert, aber die
Fehlermeldung bleibt gleich.
?

Sicher? An gleicher Stelle mit gleicher Meldung
sWoTag=Inputbox("Bitte Wochentagnummer eingeben")

if sWoTag =1 then thisComponent....
Das kann nicht funktionieren! Die Inputbox liefert - wie du richtig angenommen hast - nur "Strings" zurück, dann muss natürlich die Abfragebedingung auch dementsprechend ausfallen, also:

Code: Alles auswählen

if sWoTag = "1"  then thisComponent....
Tia - und dann funktioniert dein Code :-)

Gruss
Thomas

von oskar99 » Fr, 24.11.2006 23:01

Stimmt, ich hatte erst Platzhalter verwendet.

Das habe ich nun zwar in Textmarken geändert, aber die
Fehlermeldung bleibt gleich.
(Im Text heißt die Textmarke ebenfalls 'Wochentag')

(Das Makro wird beim Öffnen der Datei gestartet)
Anbei ein Auszug aus meinem Makro für die ersten beiden Wochentage:

-------------------------
Sub Main

Dim sWoTag As String

sWoTag=Inputbox("Bitte Wochentagnummer eingeben")

if sWoTag =1 then thisComponent.getBookmarks().getByName("Wochentag").getAnchor.setString("Montag")
if sWoTag =2 then thisComponent.getBookmarks().getByName("Wochentag").getAnchor.setString("Dienstag")


End Sub
-------------------------

Ich hoffe das Beispiel hilft bei der Fehlersuche weiter.

Eingefügt über:

Einfügen -> Feldbefehl -> Andere -> [Referenzen] / Textmarke / Referenztext

bzw. in meiner ersten Anfrage mit den Platzhaltern:

Einfügen -> Feldbefehl -> Andere -> [Funktionen] / Platzhalter / Text

Sofern ich Platzhalter statt Textmarken verwende, wie würde
der Code dann aussehen müssen, bzw. welche Variante
wäre die Bessere für das obige Beispiel?

Danke vorab für die Hilfe.

------------
WinXP SP2 / OO 2.0.4

von Toxitom » Fr, 24.11.2006 14:33

Hey Leute,

bitte genau sein mit der Bezeichnung - sonst gibt es Missverständnisse.

Dier Code von Dannenhöfer arbeitet mit Textmarken (Bookmarks), Oskar99 arbeitt meiner Ansicht nicht mit Textmarken, sondern Feldern (Platzhaltern) oder reinem Text. Das ist noch nicht klar.
Dann kann der Code natürlich nicht funktionieren - es wird keine Textmarke gefunden.

Also: Oskar99 soll mal exakt beschreiben, was genau er denn nun eigentlich im Text benutzt und ersetzt haben will - und am besten, wie er diese "Marke" eingefügt hat.

Dann sehn wir weiter :-)

Gruss
Thomas

von komma4 » Fr, 24.11.2006 13:21

Die Code-Zeile funktioniert bei mir (hier: WinXPpro/OOo2.0.3) einwandfrei.

Du hast darauf geachtet, dass die Textmarkennamen case-sensitive sind?

von oskar99 » Fr, 24.11.2006 12:01

Hallo "komma4",

nein, das wars leider nicht.
Der Platzhalter heißt <WoTag> und in 'meiner'
"dannenhoefer"-Zeile steht auch "WoTag".

Die Zeile im Posting hatte ich von der Seite kopiert und
(leider) nicht aus meinem Skript (kleiner 'Schönheitsfehler' ;)

Die Fehlermeldung bleibt aber .....

Ich habe jetzt in meinem Script, nach der Abfrage
praktisch nur diese eine Zeile zum Ersetzen der
Platzhalter drin und jetzt eher die Vermutung, das ich da
evtl. noch Variablen oder OO-Funktionen deklarieren muß,
oder sowas in der Art.... :?

Wie gesagt, OO-Scripting ist nicht so meine Stärke.... :oops:

von komma4 » Fr, 24.11.2006 09:18

Du solltest dann auch eine Textmarke namens "test" im aktuellen Dokument definiert haben....

War's das schon?

Text in Platzhalter via makro einfügen

von oskar99 » Do, 23.11.2006 23:42

Hallo OO-Leute.

Ich habe ein Problem in einem Writer-Dok.

Ich möchte gerne einen Platzhalter (Text) in einem Writer-Dok
über ein Makro mit einem Text belegen.

In dem Makro ist eine (If-)Abfrage eingebaut und jenachdem wie die
Abfrage ausgeht, soll in dem Platzhalter <WoTag> der Wochentag eingefügt werden.

Also wenn die Abfrage 1 ergibt, soll an der Stelle des Platzhalters im
Text das Wort "Montag" eingefügt werden.

Leider habe ich nicht soviel Ahnung von der Makroprogrammierung.
Das Beispiel von der "dannenhoefer"-Seite funktioniert leider nciht:

thisComponent.getBookmarks().getByName("test").getAnchor.setString("Text einfügen")

Dort erhalte ich immer die Fehlermeldung:
"
BASIC-Laufzeitfehler
Es ist eine Exception aufgetreten.
Type: sun.com.star.container.NoSuchElementExeption
Message:.
"

Ich vermute das hier noch irgendetwas definiert werden muß?

Vielleicht kann mir hier mal jemand etwas praktisch auf die Sprünge helfen.
Danke ;)

Nach oben