Hello,
The two Gantt Charts are related. The Timelines are different, however. How can I achieve that they are equal?
Edit the lower Gantt so that it is equal to the upper one?
Henk
synchonize two Gantt Charts
Re: synchonize two Gantt Charts
Hello,
You can change the bottom axis scale for the lower chart. Ie:
You can change the bottom axis scale for the lower chart. Ie:
Code: Select all
lowerChart.Axes.Bottom.SetMinMax(upperChart.Axes.Bottom.Minimum, upperChart.Axes.Bottom.Maximum);
Best Regards,
Yeray Alonso Development & Support Steema Software Av. Montilivi 33, 17003 Girona, Catalonia (SP) | |
Please read our Bug Fixing Policy |
Re: synchonize two Gantt Charts
Hello,
Something strange happens: setting the bottom axis happens with a delay of a click. See Video
The Bottomaxis automatic is set to false.
The code is:
Link to video:
https://www.dropbox.com/s/ot4p98yeuvgku ... 4.mp4?dl=0
Something strange happens: setting the bottom axis happens with a delay of a click. See Video
The Bottomaxis automatic is set to false.
The code is:
Code: Select all
procedure TWerktijdoverzichtDag.SetChart;
var
startT, endT: TTime;
activiteit: string;
kleur: TColor;
i, Y: Integer;
Itemnummer: Integer;
begin
Series1.Clear;
Chart1.Title.Caption := nxMTL_Medewerkers.FieldByName('naam').AsString + ' datum: ' + DateToStr(AdvDateTimePicker1.Date);
Series1.XValues.DateTime := true;
Y := 10;
i := 0;
nxQL_Activiteiten.First;
while not nxQL_Activiteiten.eof do
begin
startT := TimeOf(nxQL_Activiteiten.FieldByName('WT_VanDT').AsDateTime);
endT := TimeOf(nxQL_Activiteiten.FieldByName('WT_TotDT').AsDateTime);
activiteit := nxQL_Activiteiten.FieldByName('A_Activiteitsoort').AsString;
kleur := nxQL_Activiteiten.FieldByName('A_Activiteitkleur').AsInteger;
Y := Y + 20;
Series1.AddGanttColor(startT, endT, Y, activiteit, kleur); // met kleur
recinfo1[i] := nxQL_Activiteiten.FieldByName('WT_Autonum').AsInteger;
inc(i);
nxQL_Activiteiten.Next;
end;
// WO toevoegen:
GanttSeries1.Clear;
GanttSeries1.XValues.DateTime := true;
Chart2.Title.Caption := nxMTL_Medewerkers.FieldByName('naam').AsString + ' datum: ' + DateToStr(AdvDateTimePicker1.Date);
Chart2.Axes.Bottom.SetMinMax(Chart1.Axes.Bottom.Minimum, Chart1.Axes.Bottom.Maximum);
nxQL_Werkopdrachten.First;
Y := 10;
i := 0;
while not nxQL_Werkopdrachten.eof do
begin
startT := TimeOf(nxQL_Werkopdrachten.FieldByName('Van').AsDateTime);
endT := TimeOf(nxQL_Werkopdrachten.FieldByName('Tot').AsDateTime);
activiteit := nxQL_Werkopdrachten.FieldByName('Werksoort').AsString;
kleur := clRed; // nxQL_Activiteiten.FieldByName('A_Activiteitkleur').AsInteger;
Y := Y + 20;
Itemnummer := GanttSeries1.AddGanttColor(startT, endT, Y, activiteit, kleur); // met kleur
GanttSeries1.Marks.Item[Itemnummer].Text.Add('Werk voor: ' + nxQL_Werkopdrachten.FieldByName('Voor').AsString);
GanttSeries1.Marks.Item[Itemnummer].Text.Add('Van: ' + nxQL_Werkopdrachten.FieldByName('VanT').AsString);
GanttSeries1.Marks.Item[Itemnummer].Text.Add('Tot: ' + nxQL_Werkopdrachten.FieldByName('TotT').AsString);
recinfo2[i] := nxQL_Werkopdrachten.FieldByName('Nummer').AsInteger;
inc(i);
nxQL_Werkopdrachten.Next;
end;
end;
https://www.dropbox.com/s/ot4p98yeuvgku ... 4.mp4?dl=0
Re: synchonize two Gantt Charts
Problem solved by putting a Chart1.Repaint
Henk
Code: Select all
procedure TWerktijdoverzichtDag.SetChart;
var
startT, endT: TTime;
activiteit: string;
kleur: TColor;
i, Y: Integer;
Itemnummer: Integer;
begin
Series1.Clear;
Chart1.Title.Caption := nxMTL_Medewerkers.FieldByName('naam').AsString + ' datum: ' + DateToStr(AdvDateTimePicker1.Date);
Series1.XValues.DateTime := true;
Y := 10;
i := 0;
nxQL_Activiteiten.First;
while not nxQL_Activiteiten.eof do
begin
startT := TimeOf(nxQL_Activiteiten.FieldByName('WT_VanDT').AsDateTime);
endT := TimeOf(nxQL_Activiteiten.FieldByName('WT_TotDT').AsDateTime);
activiteit := nxQL_Activiteiten.FieldByName('A_Activiteitsoort').AsString;
kleur := nxQL_Activiteiten.FieldByName('A_Activiteitkleur').AsInteger;
Y := Y + 20;
Series1.AddGanttColor(startT, endT, Y, activiteit, kleur); // met kleur
recinfo1[i] := nxQL_Activiteiten.FieldByName('WT_Autonum').AsInteger;
inc(i);
nxQL_Activiteiten.Next;
end;
Chart1.Repaint; //<----------------------------
// WO toevoegen:
GanttSeries1.Clear;
GanttSeries1.XValues.DateTime := true;
Chart2.Title.Caption := nxMTL_Medewerkers.FieldByName('naam').AsString + ' datum: ' + DateToStr(AdvDateTimePicker1.Date);
Chart2.Axes.Bottom.SetMinMax(Chart1.Axes.Bottom.Minimum, Chart1.Axes.Bottom.Maximum);
nxQL_Werkopdrachten.First;
Y := 10;
i := 0;
while not nxQL_Werkopdrachten.eof do
begin
startT := TimeOf(nxQL_Werkopdrachten.FieldByName('Van').AsDateTime);
endT := TimeOf(nxQL_Werkopdrachten.FieldByName('Tot').AsDateTime);
activiteit := nxQL_Werkopdrachten.FieldByName('Werksoort').AsString;
kleur := clRed; // nxQL_Activiteiten.FieldByName('A_Activiteitkleur').AsInteger;
Y := Y + 20;
Itemnummer := GanttSeries1.AddGanttColor(startT, endT, Y, activiteit, kleur); // met kleur
GanttSeries1.Marks.Item[Itemnummer].Text.Add('Werk voor: ' + nxQL_Werkopdrachten.FieldByName('Voor').AsString);
GanttSeries1.Marks.Item[Itemnummer].Text.Add('Van: ' + nxQL_Werkopdrachten.FieldByName('VanT').AsString);
GanttSeries1.Marks.Item[Itemnummer].Text.Add('Tot: ' + nxQL_Werkopdrachten.FieldByName('TotT').AsString);
recinfo2[i] := nxQL_Werkopdrachten.FieldByName('Nummer').AsInteger;
inc(i);
nxQL_Werkopdrachten.Next;
end;
end;