tabellenreiter monatsansicht

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

Moderator: Moderatoren

Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: tabellenreiter monatsansicht

Beitrag von Karolus »

Hallo
Quick and dirty:

Code: Alles auswählen

Sub kalenderblatt_auswaehlen

	odoc = thisComponent
	icount = odoc.sheets().count()
	m = month( now ) 'aktueller Monat (1...12)
	vm = m-1 'vormonat bug : 0...11
	nm = m+1 'nachmonat bug : 2...13
	
for i = 1 to icount
	if  i >= vm and i <= nm  then
 		odoc.sheets(i-1).isvisible = true 'Korrektur -1 wg Tabellenindex 0 bis icount-1
 		if i = m then
 			odoc.Currentcontroller.select(odoc.sheets(i-1).getcellbyposition(0,0))
 		end if
	else
 		odoc.sheets(i-1).isvisible = false 'alle anderen ausblenden
 	end if
next

End Sub
Verknüpfe das Makro mit dem Ereigniss "Dokument öffnen" deines Kalenderdokuments (→Extras→Anpassen→"Ereignisse" )
Wenn du noch verrätst in welcher Spalte/Zeile die Datumswerte stehen kann man das auch noch erweitern auf die Selektion des aktuellen Tags.
( Im Code steckt noch Fehler, im Januar und im Dezember läufts vmtl. nicht .. )

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)
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: tabellenreiter monatsansicht

Beitrag von Karolus »

Hallo
sehe ich das eh richtig, dass erstmal alle 12 monate als Tabellenreiter angelegt sein müssen?!
Heute reichen noch 8 Blätter :) den kommenden Samstag solltest du das Septemberblatt hinzufügen.

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)
Andi_CH
***
Beiträge: 69
Registriert: Fr, 04.06.2010 09:21
Wohnort: Zürich

Re: tabellenreiter monatsansicht

Beitrag von Andi_CH »

Hm wenn ich so nachdenke - irgendwo könnte ein Template liegen das bei Bedarf kopiert wird. (Zum Beispiel das Blatt mit dem Namen "Template")
Vielleicht muss noch gesetzt werden um welches Jahr und welchen Monat es sich bei der Kopie handelt.
Nein noch besser - es müsste nur gesetzt werden, welches das Vorgängerblatt ist und damit könnte alles berechnet werden und wenn nötig können Werte aus dem Vormonat übernommen werden.

Weitere Probleme: Das Sheet wird das erste mal geöffnet? Das Sheet wird nach mehr als einem Monat wieder geöffnet?

Wie aufwändig ist denn so etwas?

So nebenbei, wie könnte automatisiert werden, dass genau 28, 29, 30 oder 31 Zeilen dargestellt werden?
(Ich geb zu, dass das ein Schnellschuss ist. Ich habe nicht recherchiert - falls das schon beantwortet ist reicht ein kleiner Hinweis ;-) )

Wenn ich so an meinen Stundenrapport denke, würde mir das einiges an Arbeit abnehmen ;-)

Andi
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: tabellenreiter monatsansicht

Beitrag von Karolus »

Hallo
@Andi
Geht alles - musst du nur machen: http://www.dannenhoefer.de/faqstarbasic ... tml#Zweig7

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
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: tabellenreiter monatsansicht

Beitrag von lorbass »

Wie kann man per Makro ein Arbeitsblatt aktiveren?
Kommst du damit klar?

Gruß
lorbass
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: tabellenreiter monatsansicht

Beitrag von komma4 »

Wenn Dein Blatt "7" heisst, dann funktioniert es.

Heisst das Blatt "Juli" dann

Code: Alles auswählen

m = Format( NOW() , "MMMM" )
Wenn Du (s. erstes Posting) dreistellige Abkürzungen mit Punkt verwendest

Code: Alles auswählen

m = Mid( Format( NOW() , "MMMM" ), 1,3) & "."

Ergänzung:
Du holst das Objekt des Blattes dann über den Namen:

Code: Alles auswählen

mydoc = thisComponent
myview = mydoc.currentController
mysheet = mydoc.sheets.getByName( m ) 
myview.setActiveSheet(mysheet)
Hilft Dir das weiter?




Moderation,4: da es hier um BASIC und weniger um Calc geht.... verschoben ins Basic-Unterforum
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten