Textmarken in Writer-Vorlage "festnageln"

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: Textmarken in Writer-Vorlage "festnageln"

Re: Textmarken in Writer-Vorlage "festnageln"

von Bara » Mo, 16.04.2012 13:31

Gast hat geschrieben: Natürlich geht das auch in OOo und nicht erst in neueren Versionen, schließlich ist das ja keine Erfindung von LO.
mfG
Hast Du den ganzen Thread gelesen? Dass man eine Textmarke in einen Rahmen setzen kann, ist mir bekannt. Es geht um das vorgenannte Script (Makro als Bestandteil einer Erweiterung). Wenn man die vorgesehenen Textmarken in Rahmen setzt, dann funktioniert die Übertragung der Daten beim Klick in der Erweiterung nicht.

Re: Textmarken in Writer-Vorlage "festnageln"

von Bara » Mo, 16.04.2012 10:25

Danke für den Tipp!

Unter LibO habe ich aber leider Probleme mit der Erweiterung, die ich nutze (ich muss sie immer neu installieren, wenn ich den Rechner neu gestartet habe, andernfalls erscheint ein Fehler beim Ausführen von Makros). Weißt du zufällig, wie ich das umgehen kann (in OOo hab ich das Problem nicht), oder ob in neueren Versionen von OOo auch Textmarken "ganz normal" in Rahmen gesetzt werden können? Wenn ja, wann ist sowas zu erwarten? :)

Re: Textmarken in Writer-Vorlage "festnageln"

von pmoegenb » Mo, 16.04.2012 07:46

Unter LibO lassen sich in einen Rahmen (Einfügen/Rahmen...) Textmarken platzieren. Nur, wenn der Rahmen mittels der Zeichnenfunktion erstelllt wird, ist das nicht möglich.

Re: Textmarken in Writer-Vorlage "festnageln"

von Bara » So, 15.04.2012 18:08

turtle47 hat geschrieben:Hallo Fuchsfrager,

über eins kann man ja nicht meckern. Du hast ne enorme Geduld.

Beigefügt mal eine Dokumentvorlage zum beschreiben von Textmarken innerhalb von Tabellen und Rahmen.
Du brauchst nur innerhalb der beiden Subs die entsprechenden Werte einzutragen, den Rest übernehmen die Functionen.

Vielleicht hilft Dir das weiter.

Jürgen
Hallo!

Ich habe ein ähnliches Problem. Der vorliegende Code setzt Text aus einer MySql-Datenbank an Textmarken, diese lassen sich nicht in Rahmen positionieren. Wenn ich nun anstelle der ursprünglichen Textmarke "Adresse" die hier beschriebene Funktion einbaue, läuft eine Schleife, die mir mehrmals den Text (Anschrift) in meinen Frame schreibt und außerhalb des Frames gar nichts mehr. Ich muss also irgendwie festlegen: "Schreibe Adresse (schon definiert) in den Frame 3 (Rahmen4)" - wie kann ich das umsetzen, sodass danach alles weitere außerhalb des Frames platziert wird?

Re: Textmarken in Writer-Vorlage "festnageln"

von ghysmodos » Do, 10.03.2011 09:39

Hallo,


ich habe das gleiche Problem mit der gleichen Anwendung.
Habe immer noch den Fehler

Code: Alles auswählen

textFrames = oDoc.gettextFrame()
Leider kann ich damit
Das liegt bestimmt daran, dass die Methode nicht definiert ist

Lese mal: API-Dokumentation
nichts anfangen. Könnt ihr mit weiterhelfen?


Beste Grüße

Ludwig

Re: Textmarken in Writer-Vorlage "festnageln"

von komma4 » Do, 01.07.2010 10:36

Ich_frag'_den_Fuchs hat geschrieben:Ganz oben im Code steht nämlich "Option Explicit" und darunter sind einige "Variabeln" mit Private festgelegt.
F1 Online-Hilfe Basic, Option Explicit-Anweisung[Laufzeit] hat geschrieben:Legt fest, dass jede Variable im Programmcode explizit mit der Dim-Anweisung deklariert werden muss.
[Hervorhebung durch mich]

Jede bedeutet eben: nicht nur "einige".

DIM und PRIVATE sind dabei fast gleich (s. ebenfalls in der Hilfe)



Weiterhin viel Spass mit OOo-StarBasic :)

Re: Textmarken in Writer-Vorlage "festnageln"

von Ich_frag'_den_Fuchs » Do, 01.07.2010 10:21

komma4 hat geschrieben:
Das liegt bestimmt daran, dass die Methode nicht definiert ist 8)
Okay, damit (+ Google) ist heute Morgen* ein dicker Groschen durch die Dachrinne gerauscht.

Ganz oben im Code steht nämlich "Option Explicit" und darunter sind einige "Variabeln" mit Private festgelegt. Nehme ich das "Open Explicit" raus, so laufen die meisten Sachen auch ( Man kann sich ja als Ahnungsloser gar nicht vorstellen, dass so etwas dazu führen soll, dass Änderungen nicht "gefressen" werden). Ich habe jetzt mal den Code von Jürgens Vorlage eingebaut.

Scheint bisher alles zu klappen; weiß jetzt nur nicht, ob das Rausnehmen oben auch negative Auswirkungen hat.

Also, erstmal vielen vielen Dank Euch beiden!!! :D


*(neue Rechtschreibung sieht wieder komisch aus)

Re: Textmarken in Writer-Vorlage "festnageln"

von komma4 » Do, 01.07.2010 05:25

Ich_frag'_den_Fuchs hat geschrieben:Im folgenden "Zusammenbau" bleibt es aber bei dem besagten Fehler; wenn "textFrames = oDoc.gettextFrame()" - also nicht im Plural - dann kommt in dieser Zeile aber die Meldung ..Laufzeitfehler Eigenschaft oder Methode nicht gefunden.
Das liegt bestimmt daran, dass die Methode nicht definiert ist 8)

Lese mal: API-Dokumentation


Hoffentlich kommst Du mit Jürgens Beispiel weiter!

Re: Textmarken in Writer-Vorlage "festnageln"

von turtle47 » Mi, 30.06.2010 21:21

Hallo Fuchsfrager,

über eins kann man ja nicht meckern. Du hast ne enorme Geduld.

Beigefügt mal eine Dokumentvorlage zum beschreiben von Textmarken innerhalb von Tabellen und Rahmen.
Du brauchst nur innerhalb der beiden Subs die entsprechenden Werte einzutragen, den Rest übernehmen die Functionen.

Vielleicht hilft Dir das weiter.

Jürgen
Dateianhänge
Textmarke Tabellen Rahmen.ott
(12.88 KiB) 68-mal heruntergeladen

Re: Textmarken in Writer-Vorlage "festnageln"

von Ich_frag'_den_Fuchs » Mi, 30.06.2010 12:46

komma4 hat geschrieben:Du schreibst den Code hier (neu) rein - kopierst ihn nicht?
Nein, ich kopiere ihn schon aus dem "Basic-Fenster" (heißt bestimmt anders). (Den Code bastele ich in 'ner odt.-Datei und kopiere ihn dann ins "Basic-Fenster..)
Folgendes läuft bei mir ohne Fehlermeldung

Code: Alles auswählen

Sub de39680
oDoc= ThisComponent

textFrames = oDoc.gettextFrames()
Zahl = textFrames.count()
for TabellenZaehler = 0 to Zahl-1
   Table = textFrames(TabellenZaehler)
   print Table.name
next

End Sub
Wenn ich das reinkopiere, stört sich der Computer daran auch nicht.

Im folgenden "Zusammenbau" bleibt es aber bei dem besagten Fehler; wenn "textFrames = oDoc.gettextFrame()" - also nicht im Plural - dann kommt in dieser Zeile aber die Meldung ..Laufzeitfehler Eigenschaft oder Methode nicht gefunden.

Code: Alles auswählen

Dim textFrame As Object
Dim Table As Object
Sub TextmarkeStringZuordnen
Dim textFrames as variant
oDoc = ThisComponent
textFrames = oDoc.gettextFrame()
Zahl = textFrame.count()
for TabellenZaehler = 0 to Zahl-1 
Table = textFrame(TabellenZaehler)
print Table.name
on error goto Fehler

     If oDoc.getBookmarks().hasByName(sTextmarkeName) = True Then
      oTextmarke = oDoc.getBookmarks().getByName(sTextmarkeName)
      oCursor = oDoc.Text.createTextCursorByRange(oTextmarke.Anchor)
      oCursor.String = sTextmarkeString
   End If
Next TabellenZaehler
   exit Sub
   Fehler:
   Msgbox  "Es wurde kein entsprechender Bookmark gefunden"
End Sub
(Überhaupt scheint dem Ding nichts zu gefallen, was ich an dem Code ändere; ist was eingerückt: Syntaxfehler; End Sub erwartet, nicht erwartet oder ist zuviel...dieses Basic ist 'ne schlecht gelaunte Ehefrau... Dann wollte ich den verlinkten Tabellencode nehmen und eine Vorlage mit Tabellen bauen - gefällt ihm auch nicht. :( )

Re: Textmarken in Writer-Vorlage "festnageln"

von komma4 » Mi, 30.06.2010 01:47

Du schreibst den Code hier (neu) rein - kopierst ihn nicht?


Folgendes läuft bei mir ohne Fehlermeldung

Code: Alles auswählen

Sub de39680
oDoc= ThisComponent

textFrames = oDoc.gettextFrames()
Zahl = textFrames.count()
for TabellenZaehler = 0 to Zahl-1
   Table = textFrames(TabellenZaehler)
   print Table.name
next

End Sub

Re: Textmarken in Writer-Vorlage "festnageln"

von Ich_frag'_den_Fuchs » Di, 29.06.2010 15:24

komma4 hat geschrieben:Ich sage hier mal, Dein Dokument enthält keine Texttabellen... vielleicht "nur" Rahmen?



Okay, ich sage jetzt mal, es sind Rahmen, weil die Dinger Rahmen1 und Rahmen2 heißen. An den anderen Tipps habe ich mir erstmal die Zähne ausgebissen.
Den Code habe ich jetzt so verändert (Texttabelles durch Frames ersetzt):

Code: Alles auswählen

Dim textFrame As Object
Dim Table As Object
Sub TextmarkeStringZuordnen
Dim textFrames as variant
textFrames = oDoc.gettextFrame()
Zahl = textFrame.count()
for TabellenZaehler = 0 to Zahl-1 <-----------------* Fehler: Basic-Laufzeitfehler. Variable nicht definiert 
Table = textFrame(TabellenZaehler)
on error goto Fehler

     If oDoc.getBookmarks().hasByName(sTextmarkeName) = True Then
		oTextmarke = oDoc.getBookmarks().getByName(sTextmarkeName)
		oCursor = oDoc.Text.createTextCursorByRange(oTextmarke.Anchor)
		oCursor.String = sTextmarkeString
	End If
Next TabellenZaehler
   exit Sub
   Fehler:
   Msgbox  "Es wurde kein entsprechender Bookmark gefunden"
End Sub
Jetzt kommt an anderer Stelle (<---*) diese blöde Fehlermeldung. Muss Dim Table As Object bzw. Table = textFrame(TabellenZaehler) jetzt nicht auch irgw anders lauten?

Re: Textmarken in Writer-Vorlage "festnageln"

von komma4 » Di, 29.06.2010 04:56

Ich sage hier mal, Dein Dokument enthält keine Texttabellen... vielleicht "nur" Rahmen?


Untersuche Deine Objekte (oDoc, TextTables) mit X-Ray




Anmerkungen:

* prüfe in der Unterroutine ZUERST, ob die BOOKMARK vorhanden ist-wenn nicht: Exit Sub
* Dein Zähler startet mit 1. Arrays in OOo sind NULL-basiert, schleife also von 0 To TabellenZaehler-1 (es sei denn, Du möchtest die erste Texttabelle nicht bearbeiten 8)


Versuche Dich mal an Folgendem (aus meiner Krabbelkiste) - ersetze den Namen der Textmarke!:

Code: Alles auswählen

oDok = ThisComponent
' Textmarke
oBM = oDok.getBookmarks().getByName("replaceMe_BM")

print oBM.getAnchor.getText() '  

oBM.getAnchor.setString = "neuer Inhalt"

Hilft das weiter?

Re: Textmarken in Writer-Vorlage "festnageln"

von Ich_frag'_den_Fuchs » Di, 29.06.2010 03:35

turtle47 hat geschrieben:Hi Ganther,

Textmarken in Tabellen müssen anders angesprochen werden als "normale" Textmarken!

Viel Erfolg.

Jürgen
Erstmal vielen Dank dafür. Jetzt könnte es fast klappen.

Also, ich habe jetzt mal versucht, den verlinkten Code zu verbasteln:

Code: Alles auswählen

(zT auch In der "Ober-Sub" einsortiert; Ort scheint aber nicht so wichtig:
Dim TextTables As Object
Dim Table As Object)



Sub TextmarkeStringZuordnen

Dim Texttables as variant
TextTables = oDoc.getTextTables()
Zahl = TextTables.count() <--------------*
for TabellenZaehler = 1 to (Zahl - 1)
Table = TextTables(TabellenZaehler)
on error goto Fehler

     If oDoc.getBookmarks().hasByName(sTextmarkeName) = True Then
		oTextmarke = oDoc.getBookmarks().getByName(sTextmarkeName)
		oCursor = oDoc.Text.createTextCursorByRange(oTextmarke.Anchor)
		oCursor.String = sTextmarkeString
	End If
Next TabellenZaehler
   exit Sub
   Fehler:
   Msgbox  "Es wurde kein entsprechender Bookmark gefunden"
End Sub
In der Sternchenzeile kommt aber die Meldung "Basic-Laufzeitfehler Variable" nicht definiert. Soll das nicht in der nächsten Zeile erst stattfinden?

Gruß
Ganther

Re: Textmarken in Writer-Vorlage "festnageln"

von turtle47 » So, 27.06.2010 23:11

Hi Ganther,

Textmarken in Tabellen müssen anders angesprochen werden als "normale" Textmarken!

Viel Erfolg.

Jürgen

Nach oben