1.dbchart和chart有什么区别?(25分)
2.如何用dbchart把检索的数据用饼形图显示?(25分)
例如:比如说要显示a,b,c 分别为12,20,50,怎么用dbchart表示出饼形图?
3.如果检索出一段时期的数据,如何把这段时期的数据按照时间坐标用二维坐标表示?(50分)
例如:从1月份到8月份中2月份a=12,3月份b=20,7月份c=50如何用二维坐标(柱状图)表示?最好能说的详细一些,自己编个数据举个例子,有代码最好!          
 

解决方案 »

  1.   

    1.dbchart和chart有什么区别?(25分)
       1>TChart支持自定义坐标值功能,如将x轴变为字符,但Tdbchart却不行
       2>TChart操作更灵活,体现在赋值与表现方面
       3>建议不用TDBChart,用TChart
    2.如何用dbchart把检索的数据用饼形图显示?(25分)
       双击TDBChart,在Chart --> Series页面的ADD时选Pie类型即可
    3.如果检索出一段时期的数据,如何把这段时期的数据按照时间坐标用二维坐标表示?(50分)
       如果你的X轴坐标要显示数据外的东西,那么请用Chartuses Series;   //必须在Uses单元中添加该引用在函体中放入一个TChart
    加入一Button看看以下代替执行的效果
    procedure TForm1.Button1Click(Sender: TObject);
    var I: Integer;
        ArrBar: Array[0..1] of TBarSeries;  //指向每个柱形
    begin
      For I:=0 to 1 do
      begin
        ArrBar[I] := TBarSeries.Create(Self);
        ArrBar[I].ParentChart := Chart1;
        ArrBar[I].ShowInLegend := False;
        ArrBar[I].GetVertAxis.Minimum := 0;
        ArrBar[I].Marks.Style := smsValue;
        ArrBar[I].Marks.ArrowLength := I*30+10;
      end;  //添加Bar值  当然在这你也可以从其它地方取值过来填充(如数据库)
      For I := 1 to 10 do
      begin
          ArrBar[0].AddBar(I*10,IntToStr(I)+'月',$00DC987E);   //值,X轴标题,显示用颜色
          ArrBar[1].AddBar(I*10,IntToStr(I)+'月',$00B9F0EC);
      end;
    end;
      

  2.   

    谢谢楼上高手大力相助,我已在Series页面ADD Pie 
    1。不知道代码如何改,例如想显示20占全部100的比例
    2。希望Bes96261和zdyrain再详细说明第一个for循环中每条语句中参数的含义和语句的用途完事马上结贴,再次谢谢!:)
      

  3.   

    For I:=0 to 1 do
      begin
        ArrBar[I] := TBarSeries.Create(Self);//创建饼形TBarSeries对象
        ArrBar[I].ParentChart := Chart1;     //创建的东东丢到chart1中
        ArrBar[I].ShowInLegend := False;     //将右边显示的列表框去掉
        ArrBar[I].GetVertAxis.Minimum := 0;  //设置left和right的Chart Vertical Axis最小值
        ArrBar[I].Marks.Style := smsValue;   //显示内容的格式类型
        ArrBar[I].Marks.ArrowLength := I*30+10;  //显示的标示线长度
      end;