andere Darstellung nach Erreichen des Sprungzieles?

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: andere Darstellung nach Erreichen des Sprungzieles?

Re: andere Darstellung nach Erreichen des Sprungzieles?

von weinstein » Do, 21.08.2008 17:02

Hallo Winfried,

ich habe es jetzt alleine hingekriegt, indem ich das eben beschriebenen Funktionen in das Makro "Springe zum nächsten Tag" eingebaut habe.
Vielen Dank für deine Hilfe und Anregungen!

Gruß, weinstein

Re: andere Darstellung nach Erreichen des Sprungzieles?

von weinstein » Do, 21.08.2008 15:39

Ich habe es zumindest geschafft, dass die Zeile, in der der Cursor ist, per Klick auf das Makro in die erste Zeile verschoben wird:

function getRow() as String
dim oSel as Object
dim oDesktop as Object
dim oAdr as Object
oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
oSel = oDesktop.CurrentFrame.Controller.Selection
oAdr = oSel.CellAddress
getRow = oAdr.Row
end function

sub springe_A573
rem ----------------------------------------------------------------------
rem define variables
rem ----------------------------------------------------------------------
rem get access to the document
oBlatt = ThisComponent.Sheets().getByName( "B_Terminplan" )
oViewContr = ThisComponent.getCurrentController()
rem ----------------------------------------------------------------------
With oViewContr
.setActiveSheet( oBlatt )
.setFirstVisibleColumn( 0 )
.setFirstVisibleRow( getRow )
End With
end sub


Jetzt müsste man das nur noch in die Suche nach der Zeile einbauen ...
Gruß, weinstein

Re: andere Darstellung nach Erreichen des Sprungzieles?

von komma4 » Do, 21.08.2008 15:32

OK, anders gefragt:

wie soll ein Makro wissen können, ob es zum 17.11.2007 oder zum 03.03.2008 springen soll?

Wie "springst" Du bislang?

Re: andere Darstellung nach Erreichen des Sprungzieles?

von weinstein » Do, 21.08.2008 15:29

Hallo Winfried,
komma4 hat geschrieben:wie "springst" Du auf einen solchen Tag? würde es reichen, nach Deinem Sprung jeweils 3 (?) Zeilen nach oben zu scrollen?
Scrollen alleine reicht nicht, da die Tabelle auf Montoren mit verschiedenen Auflösungen geöffnet wird, die oberste Zeile aber immer gleich sein sollte. Es wäre als Notlösung möglich.

Gruß, weinstein

Re: andere Darstellung nach Erreichen des Sprungzieles?

von komma4 » Do, 21.08.2008 14:05

Hallo weinstein,

Basic lernen: erstes sticky Posting im BASIC-Bereich.

zum "Sprungproblem": wie "springst" Du auf einen solchen Tag? würde es reichen, nach Deinem Sprung jeweils 3 (?) Zeilen nach oben zu scrollen?

Re: andere Darstellung nach Erreichen des Sprungzieles?

von weinstein » Do, 21.08.2008 13:44

Hallo Winfried,

entschuldige, dass ich mich erst jetzt melde, hatte leider bis eben keine Zeit, das auszuprobieren.
Das klappt schon mal super, ganz herzlichen Dank!

Jetzt habe ich noch das Problem, dass ich ungerne 60 Makros definieren möchte, um zu den einzelnen Tagen zu springen.
Besser wäre, wenn man zu einem bestimmten Zeichen springen könnte (z.B. zum nächsten schwarzen Viereck vor dem B, oder zu irgendeinem anderen eindeutigen Zeichen) und diese Zeile als oberstes angezeigt wird. Kannst du mir dabei nochmal helfen?

Leider habe ich noch keine Erfahrung in der Makroprogrammierung, würde aber gerne mehr lernen.
Gibt es irgendwo ein Handbuch dazu, am besten online?

Gruß, weinstein

Re: andere Darstellung nach Erreichen des Sprungzieles?

von komma4 » Mo, 18.08.2008 23:54

mmh, bei Deiner Frage nach "Tricks" brach bei mir sofort die Makroantwort aus...

ja: erstelle ein neues Makro-Modul (zum Dokument, wo Du es brauchst) und kopiere den Code (Wiki). Stelle ein Sub springe_A573 voran und ein End Sub hinterdran.

Nun tauschst Du den Namen Deines Tabellenblatts noch aus (im Code aufstellung - und fertig.


Damit hast Du schon ein lauffähiges Makro (den viewcursor erzeugt es dann selbst):

Code: Alles auswählen

Sub springe_A573
    oBlatt = ThisComponent.Sheets().getByName( "aufstellung" )
    oViewContr =  ThisComponent.getCurrentController()

    With oViewContr
    .setActiveSheet( oBlatt )
    .setFirstVisibleColumn( 0 )
    .setFirstVisibleRow( 572 )
    End With
End Sub
DIe Spalten-/Zeilen-Nummern sind Indices und fangen bei Null an, deshalb wird bei obigen Werten "A573" angezeigt.

Das Makro wird dann einer Tastenkombination oder Schaltfläche zugewiesen: mindestens in den neueren 2.x-Versionen geht das auch pro Dokument zu speichern.


HIlft das - und verzeihst Du mir die Makroantwort?!

Re: andere Darstellung nach Erreichen des Sprungzieles?

von weinstein » Mo, 18.08.2008 19:59

Hallo Winfried,

ganz herzlichen Dank für deine schnelle Antwort.
Leider bin ich ziemlich doof und weiss nicht, was ich mit dem Code machen soll. Muss ich den in ein Makro einfügen oder damit ein Makro erzeugen? Was ist ein ViewCursor und wie erzeuge ich ihn? Die HIlfe von OOO kennt das Wort nicht (ich auch nicht).
Ich benutze die Windows-Version von OOO 2.4.1 (XP prof)

Gruß, weinstein

Re: andere Darstellung nach Erreichen des Sprungzieles?

von komma4 » Mo, 18.08.2008 09:17

Du erzeugst einen ViewCursor, und bestimmst mit ihm das Blatt und die erste sichtbare Spalte/Zeile:

Code: Alles auswählen

oBlatt = ThisComponent.Sheets().getByName( "aufstellung" )
oViewContr =  ThisComponent.getCurrentController()

With oViewContr
 .setActiveSheet( oBlatt )
 .setFirstVisibleColumn( 0 )
 .setFirstVisibleRow( 572 ) 
End With
Hilft das weiter?

andere Darstellung nach Erreichen des Sprungzieles?

von weinstein » Mo, 18.08.2008 00:36

Hallo,

immer wenn ich in einer langen Tabelle ein Sprungziel ansteuere, wird dieses Sprungziel in die Mitte des Fensters gerückt. Ich brauche aber eine Funktion die es mir erlaubt, das Sprungziel ganz oben darzustellen.
Ich habe eine lange Tabelle, in der unter jedem Wochentag eine unterschiedlich lange Reihe von Einträgen steht. Wegen der Übersichtlichkeit sollte die Titelzeile immer an oberster Stelle stehen, hier ist auch meine Sprungmarke. Die Sprungmarke weiter unten zu plazieren funktioniert nicht, weil unterschiedliche Bildschirme zur Anwendung kommen und das Calc-Fenster unterschiedlich hoch sein kann.
Siehe Bild, der schwarze Punkt kennzeichnet meine Sprungmarke.

Weiß jemand einen Trick oder eine Funktion, die mir weiter hilft?
Gruß, weinstein
Dateianhänge
Die Datum-Zeile erscheint leider immer mitten im Fenster
Die Datum-Zeile erscheint leider immer mitten im Fenster
080818003250_1.jpg (36.03 KiB) 482 mal betrachtet

Nach oben