Gelöst: Seitenumbruch einer Writer-Tabelle ermitteln

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: Gelöst: Seitenumbruch einer Writer-Tabelle ermitteln

Re: Gelöst: Seitenumbruch einer Writer-Tabelle ermitteln

von RobertG » Mo, 02.06.2014 15:08

Hallo Rik,

alles klar, jetzt kann ich, wenn ich wieder etwas Muße habe, daran weiter arbeiten.

Gruß

Robert

Re: Seitenumbruch einer Writer-Tabelle ermitteln

von F3K Total » So, 01.06.2014 23:09

... passiert mir auch immer wieder ...
Nimm statt
oCursor = thiscomponent.CurrentController.ViewCursor
oCursor = oNewDoc.CurrentController.ViewCursor
dann klappt's auch mit der Seitenzahl ...
Gruß Rik

Re: Seitenumbruch einer Writer-Tabelle ermitteln

von RobertG » So, 01.06.2014 20:19

Hallo Rik, hallo Stephan,

ich habe beide Varianten probiert und komme leider ebensowenig wie vorher zum Erfolg. Ich dachte schon dass es vielleicht an der Cursorstellung in der Vorlage liegt - aber auch die Vorlagenänderung brauchte nichts. Ich drucke über Textfelder in eine Vorlage und erweitere die Tabelle dabei. Der Cursor steht nach dem Durchlauf immer am Beginn des Textes, direkt unter dem Rahmen für die Anschrift.

Ich hänge das Beispiel einmal an. Es handelt sich um die in dem Päckchen enthaltene Datenbank ohne besonderen Inhalt. Das Formular "Rechnung_Textfelder" muss gestartet werden. Es löst das Makro "Rechnungsinhalt_zusammenstellen_Tabelle" aus. In diesem Makro wird die Vorlage "Beispiel_Rechnung_Textfelder.ott" geladen. Die angezeigte Seitenzahl bleibt immer 1 - zur Zeit bei dem Code von Stephan.

Kann das daran liegen, dass das Dokument noch nicht abgespeichert ist?

Gruß

Robert
Dateianhänge
Serienbrief.zip
(84.2 KiB) 62-mal heruntergeladen

Re: Seitenumbruch einer Writer-Tabelle ermitteln

von Stephan » So, 01.06.2014 13:43

Ich habe es mit dem ViewCursor und getPage versucht
das sollte der richtige Weg sein
aber der Cursor steht bei dieser Aktion ja beständig an der gleichen Position, nämlich auf der ersten Seite.
verstehe ich jetzt nicht. Im Grunde sollte es doch bereits genügen den ViewCursor ans Ende des Dokuments zu setzen um den Seitenwechsel zu detektieren.?

Eigentlich schiene mir selbst das nicht nötig, denn so wie ich Dich verstehe willst Du doch nur die Info haben wann bei der Erweiterung einer Tabelle ein Seitenwechsel stattfindet und nicht unbedingt wo er sich befindet.
Hierzu sollte es doch im Standardfall genügen zu prüfen wann sich die Gesamtseitenzahl des Dokuments erhöht, also ungefähr so:

Code: Alles auswählen

tmp = ThisComponent.CurrentController.PageCount
'hier tut Dein Code irgendwas, was die Tabelle erweitert
If ThisComponent.CurrentController.PageCount <> tmp Then
	Msgbox "ein neuer SEitenwechsel wurde erzeugt"
End If
Gruß
Stephan

Re: Seitenumbruch einer Writer-Tabelle ermitteln

von F3K Total » So, 01.06.2014 13:41

Hallo Robert,
vielleicht habe ich dich falsch verstanden.
Wenn Du ein Writer-Dokument mit einer Tabelle auf Seite 1, so dass noch etwa 5 Tabellenzeilen auf die Seite passen,vorbereitest, dann fügt dieses Makro einzelne Zeilen zu und prüft danach die Seitenzahl.

Code: Alles auswählen

Sub Main
 oTexttables = thiscomponent.Texttables
 oRows = oTexttables(0).Rows
 for i = 0 to 10
     nNewIndex = oRows.count
     oRows.insertbyindex(nNewIndex,1)
     oCursor = thiscomponent.CurrentController.ViewCursor
     oCursor.gotoEnd(false)
     msgbox "Seite: " & oCursor.Page
 next i
End Sub
Gruß Rik

Gelöst: Seitenumbruch einer Writer-Tabelle ermitteln

von RobertG » So, 01.06.2014 12:52

Hallo *,

ich habe für den Ausdruck von Rechnungen aus Base ein Makro konstruiert, bei dem in einer Textvorlage für jeden Datensatz der Rechnung eine neue Tabellenzeile erstellt wird und diese Zeile dann direkt mit Daten gefüllt wird. Das geht auch locker über mehrere Seiten. Jetzt wollte ich allerdings beim Seitenwechsel einen Übertrag einbauen. Mein Hauptproblem liegt darin, dass ich nicht ermitteln kann, wann denn nun der Wechsel von Seite 1 zu Seite 2 stattfindet. Wenn ich den Wechsel hätte, dann könnte ich noch eine Tabellenzeile hinzufügen und in der vorhergehenden Tabellenzeile einfach den Inhalt mit dem Übertrag ersetzen.

Ich habe es mit dem ViewCursor und getPage versucht, aber der Cursor steht bei dieser Aktion ja beständig an der gleichen Position, nämlich auf der ersten Seite.

Gruß

Robert

Nach oben