如图: 点击“增加”按钮,Tchar的X轴 会增加左侧表格(DBGridEh)里的科室。
  传入Tchar的参数: name:= dbg.DataSource.DataSet.fieldbyname('dept_name').AsString.
   主要是 Tchar 的显示问题!
X轴:显示科室(我增加的)。Y轴:显示的是 sum:=ADOquery1.RecordCount的数值。
柱状图:上面的黄色标记就是   
         该科室 sum:=ADOquery1.RecordCount的数值。点击一次增加===》在X轴上增加一个选中科室及其柱状图。在点击就又增加一个选中科室。点击一次删除===》在X轴上删除上一次增加的。
网上的Tchar资料太少了……实在是搞不懂了。求大神指教

解决方案 »

  1.   

    你用的DBChart,每次增加和删除都重新刷新DBChart对应的DataSet,也就是重新查询DBChart对应的数据。
    按你的逻辑是要显示每个科室的病人数吧?DBChart的SQL应该是select dept_id, dept_name, count(1) from Table a, dept_table b where a.dept_id = b.dept_id group by dept_id, dept_name
      

  2.   


    是显示的病人数量,这个sql语句也有。  现在是不会用Tdbchar……  X坐标轴 Y坐标轴 都不会设置。
      

  3.   

    X轴:选中DBGIRDEH 里面的科室名称 ===> name。series的Y的值:对应的 count(id)数值   ===>select count(id) from XXXXX where ks_name=name。Y轴:ADOQUERY1.RecordCount。这个 怎么处理……  ADOQUERY1.sql的语句怎么写
      

  4.   


    ADOQuery1.Close;
    DBChart1.Legend.Visible:=False;
    with DBChart1.SeriesList.Series[0] do begin
     DataSource := ADOQuery1;
     XLabelsSource := ADOQuery1Company.FieldName;
     XValues.ValueSource := ADOQuery1SumItems.FieldName;
     YValues.ValueSource := '';
     Marks.Style := smsXValue;
     CheckDataSource;
    end; //with
    with DBChart1.SeriesList.Series[1] do begin
     DataSource := ADOQuery1;
     XLabelsSource := '';
     XValues.ValueSource := ADOQuery1NumOrders.FieldName;
     YValues.ValueSource := '';
     CheckDataSource;
    end; //withADOQuery1.Open;参考下这两个链接:
    http://delphi.about.com/od/usedbvcl/l/aa082101b.htm
    http://hi.baidu.com/lovejin1988/item/9dab55f42330975bc9f33792
      

  5.   


    提供的答案很到位,
    但基本的原理是你使用查询做好数据源,然后直接设置关联就可以的。谢谢两位了,DELPHI里面自带了demo ,通过那个demo我基本知道怎么处理我的问题了……现在看看,觉得这个问题问的好弱智……