Seite 1 von 1

[GELÖST]Re: Seiten- und Zeilenzahlen

Verfasst: Fr 5. Dez 2014, 11:41
von paulderfinne
Hallo ihr Lieben,

da ich mal wieder was in LO programmieren will, werde ich euch jetzt wohl öfter nerven müssen. Ich bräuchte für meine weitern Überlegungen per Programm die momentane Seitenzahl und Zeilenzahl. Dazu habe ich mit Hilfe eines Beitrags in einem OO-Forum folgende Zeilen geschrieben:

Code: Alles auswählen

sub PageLineInfo
    DIM Doc As Object
    DIM MyPageStyle As Object
    DIM HContent As Object
    DIM FooterCursor As Object
    DIM PageNumber As Object
    DIM StdPage As Object

    oDoc = StarDesktop.CurrentComponent
    MyPageStyle = oDoc.createInstance( "com.sun.star.style.PageStyle" )
    MyPageNumber= oDoc.createInstance("com.sun.star.text.TextField.PageNumber")
    msgbox "Du bist auf Seite" & MyPageNumber       
end sub

Aber da laufe ich auf einen Laufzeitfehler: Falscher wert für Eigenschaft. Welchen Typ hat PageNumber von oben? Und kennt jemand den Befehl, wenn ich die momentane Zeilennummer haben will (auf deiser Seite?) .

Re: Seiten- und Zeilenzahlen

Verfasst: So 7. Dez 2014, 11:00
von paulderfinne
Da offenbar niemand eine Idee hat, wie man Seiten- und Zeilennummern auslesen kann, hat jemand vielleicht eine Idee, wie ich das anderweitig hinkriege:

Mein Anliegen: ich möchte Texte aus einem Memo-Feld einer Datenbank ausgeben. Da ich keine Ahnung habe wieviel Text da drin ist weiß ich nicht auf welcher Seite und in welcher Zeile ich lande. Da es sich hier um eine Rechnung handelt, muss ich je nachdem wie viele Seiten ich habe Zwischensumme und Übertrag setzen und ich muss entscheiden, ob der Schlussblock (summe +Mehrwertseuer = Gesamt) noch auf die Seite passt. Eine Möglichkeit das mit einer Dokumentenvorlage zu handeln, fällt mir nicht ein. Muss allerdings zugeben, dass ich da nicht wirklich Ahnung habe.

Daher wollte ich das mit einem Makro erledigen. Aber dazu brauch ich imho eben die Angaben, wo ich mich nach dem Ausgeben der Daten befinde.

Re: Seiten- und Zeilenzahlen

Verfasst: So 7. Dez 2014, 11:40
von paulderfinne
Entschuldigt wenn ich nerve, aber jetzt glaube ich, dass ich fündig geworden bin. Kann das allerdings nicht interpretieren.

https://forum.openoffice.org/en/forum/v ... 20&t=72491

Also was muss ich danach in meine Zeile schreiben?

MyPageNumber= oDoc.createInstance("com.sun.star.frame.XController.getCurrentController(PageCount)")

funktioniert jedenfalls nicht.

Re: Seiten- und Zeilenzahlen

Verfasst: So 7. Dez 2014, 12:41
von mikele
Hallo,
die folgenden Zeilen funktionieren bei mir:

Code: Alles auswählen

    oDoc = ThisComponent
    oCtr=oDoc.getCurrentController()
    msgbox("Zeile: " & oCtr.LineCount &chr(13) &"Seite: " & oCtr.PageCount)

Re: Seiten- und Zeilenzahlen [GELÖST]

Verfasst: So 7. Dez 2014, 13:28
von paulderfinne
Jawohl! Vielen Dank Mikele. Du hast mir sehr geholfen. Genau das brauche ich

Re: Seiten- und Zeilenzahlen

Verfasst: So 7. Dez 2014, 18:57
von paulderfinne
Wenn mir jetzt noch jemand (Mikele?) verraten könnte, wie ich das Ding dazu bewege auch Leerzeilen zu zählen, wäre ich sehr dankbar.

Habe folgenden Link dazu gefunden: https://www.openoffice.org/api/docs/com ... rties.html

Leider checke ich die ganze Logik mit dem com.sun.star... nicht

Re: Seiten- und Zeilenzahlen

Verfasst: Mo 8. Dez 2014, 21:22
von mikele
Hallo,
ich weiß nicht, ob es etwas einfacheres gibt, aber folgendes scheint zu funktionieren (zumindest bei reinen Textdokumenten):

Code: Alles auswählen

sub PageLineInfo
    oDoc = ThisComponent
    oCtr=oDoc.getCurrentController()
    seite=oCtr.PageCount    
	oViewCursor = ThisComponent.CurrentController.getViewCursor()
	merke=oViewCursor.getposition().y
	oSaveCursor = oDoc.Text.createTextCursorByRange(oViewCursor)
	oViewCursor.jumpToStartOfPage()
	zeile=1
	do while oViewCursor.getposition().y<>merke
		zeile=zeile+1
		oViewCursor.godown(1,false)
	loop
	oViewCursor.gotoRange(oSaveCursor, False)
	msgbox("Zeile: " & zeile & chr(13) & "Seite: " & seite)
end sub

Re: Seiten- und Zeilenzahlen

Verfasst: Di 9. Dez 2014, 05:45
von paulderfinne
Ja, dass man hochläuft und die Zeilen zu Fuß zählt ist eine gute Idee. Dachte auch schin mal darüber nach. Aber wie man das dann konkret ausführt, hätte ich sowieso nicht gewusst. Von daher: Vielen Dank Mikele. Das funktioniert wunderbar. Hoffe ich darf wiedekommen, wenn ich wieder mal nicht weiter weiß.