DBChart1.Series[0].DataSource:=DataSource1;
DBChart1.Series[0].XLabelsSource:='name';
DBChart1.Series[0].YValues.ValueSource:='value';这样写后图表中只显示了一条记录.也就是DATASOURCE1中的当前记录.是不是还要用循环一条条记录添加?请各位大侠们指教~

解决方案 »

  1.   

    数据集中不是一条记录,我故意用DBGRID看,都能显示的,并且在DBGRID上选,DBCHART上的记录还会变.
      

  2.   

    如果不用动态设置的办法,手工设置DATASOURSE,还是可以显示的.太奇怪了.有人可以指点么?
      

  3.   

    DBChart1.Series[0].DataSource:=DataSource1; 
      你这个0 不就是 写着第一条数据源的值.  下面没其他的啊..怎么可能会有多条?
      

  4.   

    先谢谢4楼的回复,但冒昧地问一句,您真的用过DBChart么?我理解的是一个DBCHART有多个图表,Series[0]是第一个图表.如果是我理解错了我先道歉.
      

  5.   

    这是偶查到的一些信息。。我也不懂这个控件 一起学习
    http://blog.csdn.net/genispan/archive/2008/10/23/3132749.aspx
      

  6.   

    我想是不是因为你连的是datasource,然后你datasource指定的一条,对应的dbchart也显示这一条,如果你DBChart1.Series[0].DataSource在Data Source页的下拉框中选择'DataSet',再在dataset中选对应的查询组件(ADOQuery1),指定语句就会显示全部了?
      

  7.   

    WangYuanfei12345,使用控件设置我是会的,我要求的效果是在程序中动态更换DATASOURSE.
      

  8.   

    7楼 WangYuanfei12345, 回答的完全正确.
    你写成:DBChart1.Series[0].DataSource:= Query1(clientdataset1).这样就行了。
      

  9.   

    动态创建DBChart1.Series 来显示数据
      

  10.   


    楼主,这个是因为数据源的问题
    DBChart1.Series[0].DataSource:=DataSource1;改为
    DBChart1.Series[0].DataSource:=ADOQuery1;
    这样就搞定了,数据源不能直接指定DataSource,得用ADOQuery,如果不是就转换成ADOQuery即可。
      

  11.   


          with Form_Count.DBChart1 do
          begin
            SeriesList.Clear;
            AddSeries(Series1);
            Series[0].DataSource := ADOQuery1;
            Series[0].XLabelsSource := '工作单位';
            Series[0].YValues.ValueSource := '金额合计';
            Series[0].Active := True;
          end;
      

  12.   

    DBChart1.Series[0].DataSource:=ADOQuery1;
    正解. 如果指定一个DataSource控件的话,DataSource指向的是当前DataSet记录. 所以只会显示一条数据噢.