delphi7中如何做报表
需求:从数据库中检索数据,以柱状图、曲线图、word版式显示,然后用户可以选择打印和保存为word文档。
希望有经验的朋友指点一下。。。
[解决办法]
柱状图、曲线图 用tchart控件, 如果有第三方的同类控件也行
word的, 如果只是表格和文字版式, 网路上应该有详细例子
[解决办法]
word版的不太熟悉,说下柱状图和曲线图,建议先去看下TChart的文档,里面将的比较全,抛砖引玉的部分代码:
//TMSChartSeries是自己写的一个类,比较简单,包装部分图的信息,比如显示样式,描述等字段,
procedure TfrmPublicReport.ShowSeriesInChart(cs: TMSChartSeries);
var
ChartSeries: TChartSeries;
chtShow: TChart;
dValue: Double;
sLabel: String;
begin
//在Chart中显示序列
case cs.FStyle of
1: //折线图
begin
ChartSeries := TLineSeries.Create(chtShow);
ChartSeries.Marks.Style := smsValue;
end;
2: //柱状图
begin
ChartSeries := TBarSeries.Create(chtShow);
ChartSeries.Marks.Style := smsValue;
end
else //折线图
begin
ChartSeries := TLineSeries.Create(chtShow);
ChartSeries.Marks.Style := smsValue;
end;
end;
ChartSeries.Title := cs.FName;
//grdSearch数据控件
if grdSearch.DataSource <> nil then
begin
grdSearch.DataSource.DataSet.DisableControls;
try
grdSearch.DataSource.DataSet.First;
for i := 0 to grdSearch.DataSource.DataSet.RecordCount - 1 do
begin
dValue := grdSearch.DataSource.DataSet.FieldByName(cs.FYFields.Strings[j]).AsFloat;
sLabel := grdSearch.DataSource.DataSet.FieldByName(cs.FXField).AsString;
ChartSeries.Add(dValue, sLabel);
grdSearch.DataSource.DataSet.Next;
end;
finally
grdSearch.DataSource.DataSet.EnableControls;
end;
end;
chtShow.AddSeries(ChartSeries);
end;