我使用 D2007 和 Teechart v7.10 标准我想显示每周的数据。我设置
Series1.GetHorizAxis.Increment := DateTimeStep[dtOneWeek];
和
chart1.TopAxis.minimum = //a Monday's date
问题是垂直分隔线及其日期不在星期一。有什么方法可以强制这些标记在一周开始时?提前致谢
使用 TGantSeries
我已经尝试过实际版本(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;
请注意,在上面的解决方案中,轴标签没有反重叠控件