Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TDBPlanner von TMS Software (https://www.delphipraxis.net/183468-tdbplanner-von-tms-software.html)

Sugar 12. Jan 2015 13:50

TDBPlanner von TMS Software
 
Vorweg: Ich programmiere nur aus Hobby ein wenig und habe keinerlei Ausbildung dazu.

Für eine Freundin habe ich ein kleines Programm geschrieben mit dem sie Kunden, Artikel und Dienstleistungen ihres Friseurbetriebes verwaltet. Sie und ihre Mitarbeiter kommen damit gut zurecht und würden nun gerne auch Ihre Termine damit verwalten.

Um mal etwas zu „spielen“ habe ich mit die Planer-Komponente von TMS als Demo besorgt, zusätzlich die Demos. Aber ich bekomme schon die Ansicht nicht so hin wie ich es mir vorstelle. Im Grunde sollen in einer Spalte die Mitarbeiter aufgelistet sein und in der Horizontalen eben die Zeitleiste. Aus den Demos gibt es was vergleichbares das ich schon als Beispiel verwenden kann, ich bekomme jedoch nur einen Eintrag pro Tag in der Ansicht eingestellt. Ich hätte schon gerne eine zu definierende Arbeitszeit z.B. 8-18 Uhr und eine Unterteilung in 15 Minuten Schritten. Egal was ich einstelle, ich bekomme die Ansicht nicht hin.

Hat jemand Tipps oder arbeitet mit den Komponenten von TMS und kann mir auf die Sprünge helfen? Bin für jeden Hinweis dankbar.

gruß
Heiko

harfes 12. Jan 2015 14:36

AW: TDBPlanner von TMS Software
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf