Exception mit ThisComponent

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: Exception mit ThisComponent

Re: Exception mit ThisComponent

von ROM » Di, 30.03.2010 17:24

oh, sorry, Asche auf mein Haupt :(

Danke für dein Mühe. Hast mir echt weiter geholfen.

Vg
Martin

Re: Exception mit ThisComponent

von turtle47 » Di, 30.03.2010 17:10

Hallo Martin,
ROM hat geschrieben:Die Textmarken habe ich in einer Tabelle hinterlegt
Oh man, das ist die entscheidende Info.
Textmarken in Tabellen müssen anders angesprochen werden!

Ich hoffe das hilft jetzt.

Jürgen

Re: Exception mit ThisComponent

von ROM » Di, 30.03.2010 17:06

Hi,

danke für deine Mühen.


Kann es daran liegen, dass der Code nicht in der Vorlage hinterlegt ist sondern unter MeineMakros?
Bzw. vielleicht füge ich ja die Textmarke falsch ein?

Ich habe eine Vorlage aus Word. Die habe ich nachgebaut.
Die Textmarken habe ich in einer Tabelle hinterlegt, (wenn ich es denn richtig gemacht habe)

Die Textmarken habe ich folgendermaßen hinzugefügt:

Ich bin in das Tabellenfeld gegangen, dann auf "Einfügen" -> "Textmarke" -> Namen der Textmarke eingefügt und auf OK geklickt.

lg Martin

Re: Exception mit ThisComponent

von turtle47 » Di, 30.03.2010 16:56

Hi Martin,

ich habe in einem Dokument einem Text eingefügt und dort die Textmarke BM1 gesetzt.

Dann habe ich folgeneden Code drüber laufen lassen:

Code: Alles auswählen

public sub AdresseEinsetzenTextmarke(Textmarke$)
   
   Dim strTextMarken as String
   Dim objDatei as Object
   Dim objCursor as Object
   Dim objBookmarks as Object
   Dim objBookmark as Object
   Dim objAnchor as Object

   
	objDatei = ThisComponent
       
	objCursor = objDatei.text.createtextcursor()'Textcursor ins Sheet setzen
	objBookmarks = objDatei.Bookmarks 'Textmarken ansprechen
	objBookmark = objBookmarks.getByName("BM1")'Textmarke mit Namen ansprechen
	objAnchor = objBookmark.getAnchor 'Anker der Textmarke anwählen
	objCursor.gotoRange(objAnchor,false)'Cursor auf Textmarke setzen
	objCursor.string = "BM1 wurde gefunden"  'Textmarke mit Text füllen   
end sub
Der Text wird ohne Probleme an der Textmarke eingefügt.

Jetzt weis ich auch keinen Rat mehr. :?

Jürgen

Re: Exception mit ThisComponent

von ROM » Di, 30.03.2010 16:45

turtle47 hat geschrieben: poste bitte mal den umgeschriebenenTeilcode.
Hi,

das ist die gesamte Routine:

Code: Alles auswählen

public sub AdresseEinsetzenTextmarke(Textmarke$)
	
	Dim strTextMarken as String
	Dim objDatei as Object
	Dim objCursor as Object
	Dim objBookmarks as Object
	Dim objBookmark as Object
	Dim objAnchor as Object

	
	objDatei = ThisComponent
	 	
	objCursor = objDatei.text.createtextcursor()'Textcursor ins Sheet setzen
        objBookmarks = objDatei.Bookmarks 'Textmarken ansprechen
   	objBookmark = objBookmarks.getByName(Textmarke$)'Textmarke mit Namen ansprechen
        objAnchor = objBookmark.getAnchor 'Anker der Textmarke anwählen
       objCursor.gotoRange(objAnchor,false)'Cursor auf Textmarke setzen
       objCursor.string = gefundeneAdresse(Fa1) + gefundeneAdresse(St1)  'Textmarke mit Text füllen
	
end sub

Re: Exception mit ThisComponent

von turtle47 » Di, 30.03.2010 16:42

Hallo,

poste bitte mal den umgeschriebenenTeilcode.

Jürgen

Re: Exception mit ThisComponent

von ROM » Di, 30.03.2010 16:37

Hallo Jürgen,

das funktioniert leider auch nicht,

nun bekomme ich an dieser Stelle

Code: Alles auswählen

objCursor.gotoRange(objAnchor,false)'Cursor auf Textmarke setzen
die gleiche Fehlermeldung.

vg
Martin

Re: Exception mit ThisComponent

von turtle47 » Di, 30.03.2010 16:17

Hallo Martin,
ROM hat geschrieben:Ich habe mytextCursor als Object instanziiert. Ist das überhaupt richtig
Das ist schon OK.
turtle47 hat geschrieben: versuche es mal folgendermassen (entsprechend anpassen)
Von:

Code: Alles auswählen

      mytextCursor = oDoc.text.createtextcursor()'Textcursor ins Sheet setzen
      oBookmarks = oDoc.Bookmarks 'Textmarken ansprechen
Nach:

Code: Alles auswählen

      mytextCursor = objDatei.text.createtextcursor()'Textcursor ins Sheet setzen
      oBookmarks = objDatei.Bookmarks 'Textmarken ansprechen
      .......
Denn Du hast die Variable für ThisComponent ja so gesetzt:

Code: Alles auswählen

objDatei = thisComponent
Jürgen

Re: Exception mit ThisComponent

von ROM » Di, 30.03.2010 15:24

Hallo Jürgen,

danke für deine Hilfe.
turtle47 hat geschrieben:

Code: Alles auswählen

		mytextCursor = oDoc.text.createtextcursor()'Textcursor ins Sheet setzen 
Leider bekomme ich an der Stelle mytextCursor ... die Meldung, das das Object nicht belegt ist. Ich habe mytextCursor als Object instanziiert. Ist das überhaupt richtig?

Lg
Martin

Re: Exception mit ThisComponent

von turtle47 » Di, 30.03.2010 15:12

Hallo ROM,

versuche es mal folgendermassen (entsprechend anpassen):

Code: Alles auswählen

		mytextCursor = oDoc.text.createtextcursor()'Textcursor ins Sheet setzen
		oBookmarks = oDoc.Bookmarks 'Textmarken ansprechen
		oBookmark = oBookmarks.getByName(Name_TM)'Textmarke mit Namen ansprechen
		oAnchor = oBookmark.getAnchor 'Anker der Textmarke anwählen
		mytextCursor.gotoRange(oAnchor,false)'Cursor auf Textmarke setzen
		mytextCursor.string = modText 'Textmarke mit Text füllen
So hat es bei mir auch aus einer Vorlage erzeugten Dokument funktioniert.

Jürgen

Exception mit ThisComponent

von ROM » Di, 30.03.2010 14:20

Hallo,


ich habe von Open Office eine Fehlermeldung bekommt, mit der ich überhaupt nichts anfangen kann.

Fehlermeldung:

BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.star.uno.RuntimeException
Message: .


Ich habe folgendes gemacht:

Ich habe mir in der Bib "meine Makros" einige Funkionen und Makros eingebaut.
Ich habe einen Startmakro, welcher über ein Button in der Standardsymbolleiste ausgeführt werden kann.
Es werden hier einige Prüfung durchlaufen und Daten aus einer Datenbank geholt und eine Vorlagen geöffnet (bzw. ein Dokument aus einer Vorlage). In dieser Vorlage wird eingentlich erst das holen der Daten angestartet.

Die Daten, die ich mir geholt habe, möchte ich in Bookmarks wiedergeben. Dies mache ich folgendermaßen:

Code: Alles auswählen

public sub AdresseEinsetzenTextmarke(Textmarke$)
	Dim objTextMarken as Object
	Dim objTextMarke as Object
	Dim i as Integer
	Dim strTextMarken as String
	Dim objDatei as Object
	Dim objCursor as Object

	objDatei = thisComponent
	objTextMarken = objDatei.getBookmarks
	
	if objTextMarken.hasByName(Textmarke$) then
		objTextmarke = objTextMarken.getByName(Textmarke$)
		objCursor = objDatei.Text.createTextCursorByRange(objTextmarke.Anchor) ------> hier kommt die Fehlermeldung
		objCursor.String = gefundeneAdresse(Fa1) + gefundeneAdresse(St1) 
	end if

end sub
Bei der Text.create.... - Funktion bekomme ich die Fehlermeldung. Kann ich hier "thisComponent" nicht verwenden? Muss ich anders auf das geöffnete Dokument referenzieren, wenn ja wie?

Danke schon mal für eure Hilfe.

vg Rom

Nach oben