🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[GELÖST]Re: Seiten- und Zeilenzahlen

Alles zur Programmierung im LibreOffice.
Antworten
paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

[GELÖST]Re: Seiten- und Zeilenzahlen

Beitrag von paulderfinne » Fr 5. Dez 2014, 11:41

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?) .
Zuletzt geändert von paulderfinne am Di 9. Dez 2014, 05:47, insgesamt 3-mal geändert.

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: Seiten- und Zeilenzahlen

Beitrag von paulderfinne » So 7. Dez 2014, 11:00

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.

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: Seiten- und Zeilenzahlen

Beitrag von paulderfinne » So 7. Dez 2014, 11:40

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.

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Seiten- und Zeilenzahlen

Beitrag von mikele » So 7. Dez 2014, 12:41

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)
Gruß,
mikele

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: Seiten- und Zeilenzahlen [GELÖST]

Beitrag von paulderfinne » So 7. Dez 2014, 13:28

Jawohl! Vielen Dank Mikele. Du hast mir sehr geholfen. Genau das brauche ich

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: Seiten- und Zeilenzahlen

Beitrag von paulderfinne » So 7. Dez 2014, 18:57

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

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Seiten- und Zeilenzahlen

Beitrag von mikele » Mo 8. Dez 2014, 21:22

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
Gruß,
mikele

paulderfinne
Beiträge: 71
Registriert: Mi 20. Feb 2013, 13:49

Re: Seiten- und Zeilenzahlen

Beitrag von paulderfinne » Di 9. Dez 2014, 05:45

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ß.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten