Seitenumbruch vor Tabelle

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

Moderator: Moderatoren

schwammer
Beiträge: 7
Registriert: Di, 26.06.2018 11:18

Seitenumbruch vor Tabelle

Beitrag von schwammer »

Ich versuche gerade einen Seitenumbruch zwischen Tabelle3 und Tabelle4 per makro einzufügen.
Doch leider weiß nicht wie ich den Textcursor vor die Tabelle bekomme.

Code: Alles auswählen

Sub zeilenumbruch(templateDoc)
 	oZelle = templatedoc.getTextTables.getbyName("Tabelle4").getCellByPosition(0,0)  'bedeutet, es Klappt nur innerhalb der Zelle 0,0
 	oDoc = templatedoc	
	oText = oDoc.Text	
	oTextCursor = oZelle.Text.createTextCursor()
	oTextCursor.gotoEnd(False)
	oTextCursor.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
	oText.insertControlCharacter(oTextCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)


End Sub
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Seitenumbruch vor Tabelle

Beitrag von Stephan »

z.B.:

Code: Alles auswählen

Sub zeilenumbruch()
 	oZelle = ThisComponent.getTextTables.getbyName("Tabelle1").getCellByPosition(0,0)  'bedeutet, es Klappt nur innerhalb der Zelle 0,0
	oTextCursor = oZelle.Text.createTextCursor()
	vCur = ThisComponent.GetCurrentController.ViewCursor
	vCur.gotoRange(oTextCursor,false)
	vCur.goUp(1, False)
	vCur.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
End Sub
(dazu muss vor der Tabelle ein Absatz existieren)


Gruß
Stephan
schwammer
Beiträge: 7
Registriert: Di, 26.06.2018 11:18

Bereiche und Leere zeilen löschen

Beitrag von schwammer »

Code: Alles auswählen

vCur.goUp(1, False)
Stimmt ja, das habe ich bei
https://www.openoffice.org/api/docs/com ... ursor.html
auch gelesen. nur ist mir jetzt nicht eingefallen wie ich das lösen kann

Vielen dank für deine Hilfe Stephan :)
_______________________________________________________________________________________________________


Jetzt habe ich noch so leerezeilen und Bereiche am schluss, die sich eingefügt haben und das Dokument in die Länge ziehen

Diese möchte ich jetzt einfach löschen

Wie man Bereiche löscht, habe ich soweit hinbekommen.
Da fehlt mir aber noch die Überprüfung ob überhaupt der Bereich existiert, da hier bei testreihen,
"index out of bounds exception" entstehen.

Code: Alles auswählen

Sub bereicheEntfernen(docTemplate)
	

	 For i = 0 To docTemplate.TextSections.count-1 
	  	oText = docTemplate.Text 
		 if docTemplate.TextSections.getByindex(i)....... "" Then 'gibt es sowas wie exist oder ähnliches
	 
		oText.removeTextContent(docTemplate.TextSections.getByindex(i))
	 i = i +1
	  End If
	 Next i 
	 
	 Exit Sub
Hat das löschen geklappt, habe ich aber jede menge Leerzeilen und ich weiß leider nicht wie ich an diese rankomme.
könnte man da auch von der Tabelle4 (ist der letzte Eintrag im Dokument) mit dem Cursor nach unten gehen und diese dann mit eine zählschleife löschen ? Ist das ganze Dynamisch zu bewerkstelligen?
Antworten