Perfekt vielen Dank!
Ich hatte zuerst den Thread von cebolina angeschaut und mit folgender Formel ein Agent über die Dokumente laufen lassen:
Datum := @Now;
@SetField("Datum"; Datum);
REM "Berechnung der Kalenderwoche des Tages >>Datum<<";
Date := Datum;
WeekThursday := @Adjust(Date; 0; 0; @If (@Weekday(Date) = 1; -3; -@Weekday (Date) + 5); 0; 0; 0);
WeekYear := @Year (WeekThursday);
January4Date := @Date (WeekYear; 1; 4);
FirstThursday := @Adjust (January4Date; 0; 0; @If (@Weekday (January4Date) = 1; -3; -@Weekday (January4Date) + 5); 0; 0; 0);
Week := ((WeekThursday - FirstThursday) / 86400) / 7 + 1;
@SetField("KW"; Week);Wahrscheinlich zu kompliziert, aber er hat mir in das Feld KW dann die aktuelle KW reingeschrieben und so konnte ich das machen, was Tode jetzt auch im IF Code platziert hat.
Problem:
Die Spalte kann leider nur entweder oder anzeigen, d.h. habe ich eine Maßnahme, die für KW 15 geplant ist, dann ist diese "rot", bin ich gleichzeitig noch in der KW15 zieht gelb.(siehe Bild KW 15 Maßnahme "Test".Lösung:
a). ich könnte natürlich ein Maßnahmen Dokument anlegen das aktuelle KW heißt und das wäre denke ich auch ausreichend.
b). in der openntf Anwendung Planboard schafft es der Programmierer über, wenn es mich nicht täuscht folgenden Befehl die Spaltenbezeichnungen zu ändern:
Call UpdateColumnHeaders( "01.PlanBoard",4 )
Bild hänge ich auch an.
Das ist natürlich am aller schickesten.
FRAGE: ist es denn möglich mittels Wert aus dem Feld KW der Spaltenüberschrift zu sagen, du bist in roter Schrift, weil Bedingung KW = 15 zutrifft?
Das ist übrigens der Code aus der Scriptbibliothek(meine LS Kenntnisse sind nicht besonders):
Sub UpdateColumnHeaders( nameOfView As String,Offset As Integer )
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim vc As NotesViewColumn
Dim dd As Variant
Dim count As Integer
Dim daycount As Integer
Dim VarColor As String
Set db = session.CurrentDatabase
Set view = db.GetView(nameOfView)
count = View.ColumnCount 'Count number of columns in the whole view
daycount = (count-offset)/2 - 1 'Prepare the dayscounter (substract offset, then divided by 2 (due to extra color colums)).
Do Until count = offset 'Do until offset reached (see intialize)
Set vc = view.Columns(count-1) 'Sets the column to be re-designed
dd = Format$(Today()+ daycount,"Short Date") 'set dd to datecount,and force dd/mm/yyyy format
vc.FontFace = "Webdings" 'Set default font/header options etc.
vc.Alignment = VC_ALIGN_CENTER
vc.FontPointSize = 16
vc.HeaderFontPointSize = 10
vc.HeaderFontStyle = VC_FONT_BOLD
vc.HeaderAlignment = VC_ALIGN_CENTER
Select Case Weekday(dd) 'Select headerfontcolor by weekday
Case 1 : vc.HeaderFontColor = COLOR_RED 'Set to red on Sundays
Case 7 : vc.HeaderFontColor = COLOR_DARK_YELLOW 'Set to Dark yellow on saturdays
Case Else :vc.HeaderFontColor = COLOR_BLACK 'use black on other days
End Select
vc.Title = Format$(dd,"dd") 'Rename the colum to 2-digit day number dd
vc.Width = 1 '(Re-)set width to re-align the view (just in case user messed it up)
'Rewrite the date column formula to avoid use of @today (This avoids unneeded refresh of index)
vc.Formula = {@If(CSjobVisitDate=[} & dd &{];@If(CSjobCategory="Time off - holiday";@Char(120);CSjobStatus="Tentative";@Char(99);CSjobCategory="Duty Phone";@Char(212);@Char(103));@Char(99))}
count =count -1 'Select the corresponding color column (next column)
Set vc = view.Columns(count-1) 'Sets the column to be re-designed
vc.Title = "C" & Format$(dd,"dd") 'Rename the colums to C(olor)+daynum
'Rewrite the color column formula that goes with the previous date-colum.
Select Case Weekday(dd) 'Select background color by weekday
Case 1,7 : varColor = "242:242:242" 'Set to lightgrey on weekends
Case Else : varColor = "255:255:255" 'use white on other days
End Select
vc.Formula = "varred := 255:0:0 ; vargreen := 0:222:0 ; varblue := 0:0:255; varyellow := 255:255:0; " & _
"varpink := 225:27:213; varwhite :=" & VarColor & " ; vargrey :=222:222:222; varblack := 1:1:1; varapricot := 255:113:19; varplain := 0:0:0;" &_
"@If(CSjobVisitDate=[" & dd & "];@If(CSjobCategory="& Chr$(34) &"Time off - holiday" & Chr$(34) &_
";varwhite:varapricot;CSjobCategory="& Chr$(34) &"Duty Phone"& Chr$(34) &";varwhite:varpink;varwhite:varred);ETA=Null|ETD=Null;varwhite:vargrey;ETA=<[" &_
dd &"]&ETD=>[" & dd &"];varwhite:vargreen;varwhite:vargrey)"
count =count -1 'Select the next column
daycount = daycount -1 'and set the next day until offset is reached
Loop
End Sub