分隔线在 GetHorizAxis.Increment := DateTimeStep[dtOneWeek] 时开始



我使用 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;

请注意,在上面的解决方案中,轴标签没有反重叠控件

相关内容

  • 没有找到相关文章

最新更新