delphi7中如何做报表

需求:从数据库中检索数据,以柱状图、曲线图、word版式显示,然后用户可以选择打印和保存为word文档。
希望有经验的朋友指点一下。。。
...全文
693 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lifeiyan1030 2015-04-07
一般绘制这种商业统计的图表的话,我还是选finereport这种报表软件来做,操作会更简单一点,delphi7不怎么会用。
  • 打赏
  • 举报
回复
TADOQuery *ado = new TADOQuery(NULL); ado->conn; ado->SQL->Clear(); ado->SQL->Text = "select * from "+IntToStr(id); cht->Title->Text->SetText("曲线图") ; //cht为TDBChart控件,为控件设置标题 cht->Series[0]->DataSource = ado; //设置数据源 cht->Series[0]->ValueFormat= "#.#"; //设置数据格式 cht->Series[0]->XLabelsSource ="id"; //绑定x轴与数据源的字段“id” cht->Series[0]->XValues->Name = "时间"; //设置x轴名称 cht->Series[0]->XValues->ValueSource = "id";//绑定x轴数据与数据源的字段“id” cht->Series[0]->YValues->Name = "值";//设置y轴名称 cht->Series[0]->YValues->ValueSource = "zhi"; //绑定y轴数据与数据源的字段“zhi” cht->Series[0]->ShowInLegend = false; //设置不显示图例,只显示曲线图 ado->Open(); 这种方法实现,我想使用数据库表中的日期字段值作为横坐标,具体应该怎么做呢?
  • 打赏
  • 举报
回复
把数据库中日期字段类型由date改为datetime,就好了 最后一个问题了,x轴显示日期有重复,不知道为什么?
  • 打赏
  • 举报
回复
DBChart1.Series[0].XValues.ValueSource:='日期'; 报错“2013-02-21”is not a valid floating point
  • 打赏
  • 举报
回复
jonathanscor 2013-02-20
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;

  • 打赏
  • 举报
回复
simonhehe 2013-02-20
柱状图、曲线图 用tchart控件, 如果有第三方的同类控件也行 word的, 如果只是表格和文字版式, 网路上应该有详细例子
  • 打赏
  • 举报
回复
引用 1 楼 simonhehe 的回复:
是要在word中显示柱状图, 曲线图?
不是,是想把数据库里面的数据,以柱状图、曲线图、word报表版式三种形式展现出来
  • 打赏
  • 举报
回复
simonhehe 2013-02-20
是要在word中显示柱状图, 曲线图?
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi

5124

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
帖子事件
创建了帖子
2013-02-20 08:28
社区公告
暂无公告