Einzelnen Beitrag anzeigen

harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
180 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TDBPlanner von TMS Software

  Alt 12. Jan 2015, 13:36
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
Hartmut
  Mit Zitat antworten Zitat