我使用D2007和Teechart v7.10标准 我想每周显示数据。 我设置了
Series1.GetHorizAxis.Increment := DateTimeStep[dtOneWeek];
和
chart1.TopAxis.minimum = //a Monday's date
问题是垂直分离线及其日期没有开启 星期一。 有没有办法强制这些标记在一周开始? 提前谢谢
使用TGantSeries
答案 0 :(得分:0)
我尝试过实际版本(v2013.09),我总是在星期一得到一个带有标签的底轴,使用以下简单示例:
uses GanttCh;
procedure TForm1.FormCreate(Sender: TObject);
begin
Chart1.View3D:=false;
Chart1.Legend.Visible:=false;
Chart1.AddSeries(TGanttSeries).FillSampleValues;
with Chart1.Axes.Bottom do
begin
LabelsAngle:=90;
Increment:=DateTimeStep[dtOneWeek];
DateTimeFormat:='ddd dd/mm/yyyy';
end;
end;
但是,我在TeeChart v7中看到,上面的代码在标签中显示了不同的工作日,具体取决于系列中的值。然后,我能想到的唯一解决方案是使用自定义标签。即:
uses GanttCh;
procedure TForm1.FormCreate(Sender: TObject);
var tmpDate: TDateTime;
begin
Chart1.View3D:=false;
Chart1.Legend.Visible:=false;
Chart1.AddSeries(TGanttSeries).FillSampleValues;
Chart1.MarginBottom:=15;
with Chart1.Axes.Bottom do
begin
LabelsAngle:=90;
//Increment:=DateTimeStep[dtOneWeek]; //this won't take effect with custom labels
DateTimeFormat:='ddd dd/mm/yyyy';
tmpDate:=(Chart1[0] as TGanttSeries).StartValues.MinValue;
while DayOfWeek(tmpDate) <> 2 do
tmpDate:=tmpDate+1;
Items.Clear;
repeat
Items.Add(tmpDate);
tmpDate:=tmpDate+7;
until tmpDate>=(Chart1[0] as TGanttSeries).EndValues.MaxValue;
end;
end;
请注意,在上面的解决方案中,轴标签没有抗重叠控制