Writer: Seite anspringen - ohne Navigator

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

Moderator: Moderatoren

Benutzeravatar
Eric March
Beiträge: 6
Registriert: Fr, 17.09.2010 16:04

Writer: Seite anspringen - ohne Navigator

Beitrag von Eric March »

Moin, Moin!

Ich suche letztlich nach der Entsprechung für einen VBA-Befehl: Selection.GoTo Name:={Seitennummer [String]}

Sinn der Übung soll nichts großartigeres sein als über einen Klick auf einen Button eine Eingabebox präsentiert zu bekommen in die man die gewünschte Seitenzahl eingibt - was den Umgang mit dem Navigator ausmanövrieren soll ;)

Selbst unter MS-Word (97…) habe ich mir das geschrieben, und mit freundlicher Hilfe im CHIP Office-Forum wurde dieser VBA-Code schon mal angepasst (die Meldungen mögen mit etwas Augenzwinkern bedacht werden, ich kriege sie ja allgemein nie zu Gesicht):

Code: Alles auswählen

Option VBASupport 1
Option Compatible

Public Sub GeheZuSeite()
Dim Seiten As Single
Dim Seite As Double
Dim Zusatztext As String
Dim odoc As Object
Dim myViewCursor As Object
 Zusatztext = ""
 odoc = thiscomponent
 myViewCursor = odoc.GetCurrentController.ViewCursor
 Seiten = odoc.CurrentController.PageCount
 Seite = myViewCursor.getPage()
 Do
  Dummy = InputBox("Seitennummer eingeben" & Chr(13) & Chr(13) & Chr(10) & "Wir haben hier Seite 1 bis Seite " & Seiten & " zur Verfügung" & Chr(13) & _
    Chr(13) & Chr(10) & Zusatztext, "Gehe zu Seite", Seite)
  If Dummy = "" Then Exit Sub
  Seite = Val(Dummy)
  Select Case Seite
   Case Is = 0
    Zusatztext = Dummy & " ist schlichtweg ungültig..."
   Case Is < 0
    Zusatztext = "Nö, ich will nicht. Kleiner 1 (" & Seite & ") ist nicht drin."
   Case Is > Seiten
    Zusatztext = "Quark, so viele Seiten (" & Seite & ") hab ich doch gar nicht!"
   Case Else
    Zusatztext = Dummy & " ist nun völlig ungültig..."
  End Select
 Loop Until Seite >= 1 And Seite <= Seiten
 REM Selection.GoTo Name:=Str(Seite)
End Sub
Bis auf die alles entscheidende Funktion steht der Code also schon. (Fehlerabfrage falls man in einem Bild sein sollte beim Aufruf lassen wir mal weg.)

Was muss an Stelle von Selection.GoTo Name:=Str(Seite) Befehls stehen?
Eric March

»Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit liegt das Verderben der Zukunft.«
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Writer: Seite anspringen - ohne Navigator

Beitrag von Karolus »

Hallo

Code: Alles auswählen

myViewCursor.jumptopage( Seite )
zumindest solange Seite = val(Dummy) ist.

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
Eric March
Beiträge: 6
Registriert: Fr, 17.09.2010 16:04

Re: Writer: Seite anspringen - ohne Navigator

Beitrag von Eric March »

:D
Merci vielmals, das tut so wie es soll!


2 Dinge hätte ich noch:

1. im Makro Editor - wie kann ich das Makro ›in dem ich bin‹ laufen lassen? Das Zahnrad klicken (umständlich rechts außen…), dann auswählen und Starten bremst die Freude doch sehr.

2. «myViewCursor.jumptopage(Seite)» - wo findet man diese Sorte Befehle? VBA hat ja meist eine Auto-Ergänzung wenn man den Punkt hinter einem Befehl tippt. Hier vermisse ich das; gäbe es eine thumbe Liste mit diesen Befehlen und knappen, für Programmierer ausreichenden Infos zur Einschätzung was man damit erreicht?
Eric March

»Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit liegt das Verderben der Zukunft.«
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Writer: Seite anspringen - ohne Navigator

Beitrag von Karolus »

Hallo
zu 1. Das oberste Makro im Modul startest du mit dem "grünen Pfeil"- symbol , steht das gewünschte Makro nicht zuoberst, dann schreib oben halt schnell drei Zeilen :

Code: Alles auswählen

sub Main
dein_makro
end sub
zu 2.
xray und Mri sind recht brauchbare Werkzeuge dazu.

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: Writer: Seite anspringen - ohne Navigator

Beitrag von mumpel »

Hallo!

Zu 1. Habe ich bereits im Chip-Forum geschrieben. Aber für alle anderen noch einmal hier (ausnahmsweise).

1. Makro erstellen
2. Starbasic-Editor schließen
3. Extras->Anpassen
4. Register Symbolleisten wählen
5. Bei Speichern in Deine Datei wählen
6. Auf Neu klicken, um eine neue Symbolleiste zu erstellen (oder Makro in eine Standardsymbolleiste packen)
7. Auf Hinzufügen klicken
8. OpenOffice.org Makros->Deine Datei->Standard->Das Modul->Das Makro, markieren und auf Hinzufügen klicken
9. Auf Schließen klicken
10. Mit Klick auf OK abschließen
11. Änderungen an Datei speichern

Gruß, René
Benutzeravatar
Eric March
Beiträge: 6
Registriert: Fr, 17.09.2010 16:04

Re: Writer: Seite anspringen - ohne Navigator

Beitrag von Eric March »

Hallo allerseits!

Da will der Zufall, dass ich gerade ein Backup fahre und deswegen nicht mit OOo testen kann - und bei der zeit die ich hier in angenehmer Atmosphäre verbringen will bekomme ich 2 gute Vorschläge die erst mal brach liegen.

@Karolus
Die beiden Tools habe ich mir geholt - aber im Moment kann ich sie nicht testen.
Was wiederum den grünen Pfeil beträfe, dass er nur das erste Makro startet, so erlaube ich mir dieses Verhalten mit ›armselig‹ zu dokumentieren. Nur muss man so was eben auch wissen, die Hilfe ist da keine solche.
Wenn es auch ungerecht klingen sollte: mit diesem Wissen hätte ich mir auf die vorgeschlagene Weise gewiss selbst zu helfen gewusst - das Problem ist halt über solche Details Wissen zu erlangen, Details zu Abweichungen zum Üblichen.

@mumpel
…aber auch aaaaausnahmsweise :D
Mir gehts hier wie unter JavaScript - das Programm steht rein funktionell & logisch, es fehlt nur noch die Syntax. Von solchen Lehrmaterialien träume ich und werde ich wohl immer träumen.
Eric March

»Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit liegt das Verderben der Zukunft.«
Antworten