Zelle auslesen mit Fehlern

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Zelle auslesen mit Fehlern

Beitrag von sven-my »

Hallo Experten,

in einem Writer-Doku habe ich eine Tabelle mit zwei Spalten und zwei Zeilen; in der Zelle 1,0 sind zwei Textmarken nach folgendem Schema:

fax | mail

die von einem anderen Programm mit der Fax-Nummer UND der Mail-Adresse ausgefüllt werden.

Die Zelle werte ich mit folgendem Code, innerhalb eines größeren Makros, aus:

Code: Alles auswählen

	oDoc = ThisComponent
	Title = oDoc.DocumentInfo.Title
	SNr = instr(Title,"Notiz") + instr(Title,"Deckblatt")
	if SNr > 0 then exit sub
	wait 500
	ausT = oDoc.getTextTables().getByName("eMail").getCellByPosition(0,0).string
	adrT = oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).string
msgbox adrT
	adrS = instr(adrT,"|")
	adrF = left(adrT,adrS-1)
	adrM = right(adrT,len(adrT)-adrS)

	wait 500
	oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString("")

	if instr(ausT,"Fax") > 0 then oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString(adrF)
	if instr(ausT,"Mail")> 0 then oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString(adrM)
Der Fehler: in der msgbox wird mir nur der Trenner (ALT Gr + <) bzw. chr(124) angezeigt, obwohl in der Zelle beide Informationen, also Fax-Nr und Mail-Adr., stehen.


Lasse ich folgenden Code in einem Extra-Modul ganz allein ausführen, tritt der Fehler nicht auf:

Code: Alles auswählen

	oDoc = ThisComponent
	adrT = oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).string
msgbox adrT
	adrS = instr(adrT,"|")
	adrF = left(adrT,adrS-1)
	adrM = right(adrT,len(adrT)-adrS)
	wait 500
	oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString("")

	if instr(ausT,"Fax") > 0 then oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString(adrF)
	if instr(ausT,"Mail")> 0 then oDoc.getTextTables().getByName("eMail").getCellByPosition(1,0).setString(adrM)

Die Variable >adrT< wird NUR in diesem Teil des gesamten Codes benutzt, auch mit >DIM adrT as string< hab' ich's schon versucht - ohne Erfolg.
Ich bin mit meinem Latein völlig am Ende.
Für ganz pingelige: die >wait 500< sind, aus welchen Gründen erschließt sich mir nicht, nötig, damit der code bei mir korrekt ausgeführt wird.

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable