OK, ich hab Dir mal ein paar Code-Schnipsel aus meinem DBPlanner kopiert - in FormShow einfügen...musst Du halt ein wenig anpassen:
with DBPlanner1.Display do
begin
ScaleToFit:=False;
DisplayUnit:=15; {Anzeige in 15 Minuten Abständen}
RowsPerHour:=(60 div DisplayUnit); {60 min durch Anzahl der Anzeigeeinheiten}
DisplayStart:=(6 * RowsPerHour)+2; {6:30h Uhrzeit-Start der Gesamt-Anzeige}
DisplayEnd:=21 * RowsPerHour; {Uhrzeit-Ende der Gesamt-Anzeige}
DisplayScale:=StrToInt(ZHoehe); {Zeilenhöhe in Pixel}
DisplayOffset:=0; {kein Offset}
ActiveStart:=((7-6) * RowsPerHour)-2; {7:00h Start der aktiven Kanlenderzeit=Arbeitszeitrahmen}
ActiveEnd:=(20-6) * RowsPerHour; {Ende}
ShowCurrent:=True; {Aktuelle Zeit wird andersfarbig angezeigt}
ShowCurrentItem:=False; {Termine in der aktuellen Uhrzeit werden andersfarbig angezeigt}
end;
DBPlanner1.Sidebar.Visible:=True;
und für die Mitarbeiter solltest Du eine kleine
DB mit den Namen und den IDs sowie - wenn gewünscht - der Position im Planner erstellen, dann:
//Resourcemapping
DBPlanner1.Header.AllowResize:=True;
DBPlanner1.Header.AutoSize:=True;
DBPlanner1.Header.Alignment:=taCenter;
DBPlanner1.Header.Height:=42;
DBPlanner1.Header.TextHeight:=40;
DBPlanner1.Header.Captions.Clear;
DBPlanner1.Header.Captions.Add('');
DBDaySource1.ResourceMap.Clear;
with DM1.DataModule1.IBMitarbeiterQuery do
begin
SQL.Clear;
SQL.Add('select * from MITARBEITER order by POS');
ExecQuery;
repeat
txt:=FieldByName('MITARBEITERNAME').AsString;
rs1:=FieldByName('RID').AsInteger;
rs2:=FieldByName('POS').AsInteger;
DBPlanner1.Header.Captions.Add(txt);
with DBDaySource1.ResourceMap.Add do
begin
ResourceIndex:=rs1;
PositionIndex:=rs2-1;
DisplayName:=txt;
end;
Next;
until EOF;
Close;
end;
Und ein paar Einstellungen:
//Planner-Footer
DBPlanner1.Footer.Alignment:=taCenter;
DBPlanner1.Footer.Height:=25;
DBPlanner1.Footer.ShowCompletion:=True;
DBPlanner1.Footer.Visible:=True;
DBPlanner1.Footer.CompletionFormat:='%d%%';
DBPlanner1.Footer.Captions.Clear;
DBPlanner1.Footer.Captions.Add(' ');
for x:=1 to anzahl do DBPlanner1.Footer.Captions.Add('0');
// Tagesanzeige
DBPlanner1.Caption.Title:='Übersicht '+FormatDateTime('d.mmmm yyyy', now); //heutiger Tag in Überschrift
DBPlannerCalendar1DayChange(Self, date,now); {Trick, um erste Daten anzuzeigen}
DBPlanner1.GridTopRow := DBPlanner1.TimeToIndex(now); {soll auf aktuelle Zeit springen....}
DBPlanner1.ScrollToTime(now);
Das steht aber auch alles in den Samples und in der Doku, die bei TMS sehr gut sind! Empfehlen würde ich Dir, das "Component Pack" zu kaufen und nicht nur den Planner - kaum teurer und jede Menge weiterer guter Komponenten...
Hartmut