更改 TDBChart 月份格式显示
Change TDBChart Month format display
我正在使用 TDBChart
- 来自 TeeChart Std 来显示一个饼图 SUM
来自我正在使用的数据库中的 PRICE
列的值,它是 排序 Months
上的数据 - 来自 DATE
列在数据库中设置为 datetime type
。
我的 TDBChart
显示如下:
我的问题:如何让它显示 月 为 2016 年 10 月和 2016 年 11 月
(最好分别是 10 月 16 日和 11 月 16 日)。
如您所见,它当前显示为数字 - 10-16 和 11-16。
似乎在系列选项中的任何地方都找不到格式选项。
我会在添加点之前将日期时间格式化为字符串,然后将其作为标签传递。即:
uses DateUtils;
procedure TForm1.FormCreate(Sender: TObject);
var tmpDate: TDateTime;
i: Integer;
begin
for i:=0 to 1 do
begin
tmpDate:=IncMonth(Today,i);
Series1.AddPie(random*100,FormatDateTime('mmm-yy', tmpDate));
end;
end;
编辑:
如果您将其填充连接到数据源,则会自动添加标签。然后,我在不修改源代码的情况下看到的唯一选择是使用 OnGetMarkText 事件,如下所示:
procedure TForm1.Series1GetMarkText(Sender: TChartSeries; ValueIndex: Integer;
var MarkText: string);
var i: Integer;
m, y: string;
begin
i:=Pos('-',MarkText);
m:=Copy(MarkText,1,i-1);
y:=Copy(MarkText,i+1,Length(MarkText)-i);
MarkText:=ShortMonthNames[StrToInt(m)] + ' ' + y;
end;
我正在使用 TDBChart
- 来自 TeeChart Std 来显示一个饼图 SUM
来自我正在使用的数据库中的 PRICE
列的值,它是 排序 Months
上的数据 - 来自 DATE
列在数据库中设置为 datetime type
。
我的 TDBChart
显示如下:
我的问题:如何让它显示 月 为 2016 年 10 月和 2016 年 11 月
(最好分别是 10 月 16 日和 11 月 16 日)。
如您所见,它当前显示为数字 - 10-16 和 11-16。
似乎在系列选项中的任何地方都找不到格式选项。
我会在添加点之前将日期时间格式化为字符串,然后将其作为标签传递。即:
uses DateUtils;
procedure TForm1.FormCreate(Sender: TObject);
var tmpDate: TDateTime;
i: Integer;
begin
for i:=0 to 1 do
begin
tmpDate:=IncMonth(Today,i);
Series1.AddPie(random*100,FormatDateTime('mmm-yy', tmpDate));
end;
end;
编辑:
如果您将其填充连接到数据源,则会自动添加标签。然后,我在不修改源代码的情况下看到的唯一选择是使用 OnGetMarkText 事件,如下所示:
procedure TForm1.Series1GetMarkText(Sender: TChartSeries; ValueIndex: Integer;
var MarkText: string);
var i: Integer;
m, y: string;
begin
i:=Pos('-',MarkText);
m:=Copy(MarkText,1,i-1);
y:=Copy(MarkText,i+1,Length(MarkText)-i);
MarkText:=ShortMonthNames[StrToInt(m)] + ' ' + y;
end;