+ -
当前位置:首页 → 问答吧 → 两个DBChart使用TbarSeries,一样的代码效果却不同

两个DBChart使用TbarSeries,一样的代码效果却不同

时间:2011-10-28

来源:互联网


Delphi(Pascal) code


procedure TForm_Main.ToolButton9Click(Sender: TObject);
var
  Series1, Series2: TBarSeries;
begin
  if ComboBox_Count.Text = '' then Exit;

  Series1 := TBarSeries.Create(nil);
  Series2 := TBarSeries.Create(nil);
  Form_Count := TForm_Count.Create(nil);
  try
    with ADOQuery_Count1 do
    begin
      try
        Close;
        SQL.Clear;
        SQL.Text := 'DROP TABLE SJ3';
        ExecSQL;
      except
      end;

      Close;
      SQL.Clear;
      SQL.Text := 'SELECT TOP '+ ComboBox_Count.Text +' COUNT([姓名]) AS [总户数], '+
        '[收款人(中间人、介绍人)], SUM([集资(租车押金)金额(逐笔登记、单位:万元)]) AS [金额合计] '+
        'INTO SJ3 FROM SJ GROUP BY [收款人(中间人、介绍人)] ORDER BY SUM([集资(租车押金)金额(逐笔登记、单位:万元)]) DESC';
      //ShowMessage(SQL.Text);
      if ExecSQL = 0 then
      begin
        Application.MessageBox('查询失败, 请重试!', '提示', MB_ICONWARNING);
        Exit;
      end;
      //集集金额
      with Form_Count.DBChart_Count1 do
      begin
        SeriesList.Clear;
        AddSeries(Series1);
        View3D := True;
        Title.Caption := '中间人分布图(右侧列表内数量单位:万元)';
        Series[0].Marks.Style := smsValue;
        Series[0].DataSource := ADOQuery_Count1;
        Series[0].XLabelsSource := '收款人(中间人、介绍人)';
        Series[0].YValues.ValueSource := '金额合计';
        Series[0].Active := True;
      end;
    end;


    with ADOQuery_Count2 do
    begin
      try
        Close;
        SQL.Clear;
        SQL.Text := 'DROP TABLE SJ4';
        ExecSQL;
      except
      end;

      Close;
      SQL.Clear;
      SQL.Text := 'SELECT TOP '+ ComboBox_Count.Text +' COUNT([姓名]) AS [总户数],'+
        '[收款人(中间人、介绍人)], SUM([集资(租车押金)金额(逐笔登记、单位:万元)]) AS [金额合计] '+
        'INTO SJ4 FROM SJ GROUP BY [收款人(中间人、介绍人)] ORDER BY COUNT([姓名]) DESC';
      //ShowMessage(SQL.Text);
      if ExecSQL = 0 then
      begin
        Application.MessageBox('查询失败, 请重试!', '提示', MB_ICONWARNING);
        Exit;
      end;
      //户数
      with Form_Count.DBChart_Count2 do
      begin
        SeriesList.Clear;
        AddSeries(Series2);
        View3D := True;
        Title.Caption := '中间人分布图(右侧列表内数量单位:人次)';
        Series[0].Marks.Style := smsValue;
        Series[0].DataSource := ADOQuery_Count2;
        Series[0].XLabelsSource := '收款人(中间人、介绍人)';
        Series[0].YValues.ValueSource := '总户数';
        Series[0].Active := True;
      end;
    end;

    Form_Count.Caption := TToolButton(Sender).Caption + '统计';
    Form_Count.ShowModal;
  finally
    Series1.Free;
    Series2.Free;
    Form_Count.Free;
  end;



DBChart关联数据库 ADOQuery1显示图表1 ADOQuery2显示图片2 两个明明一样的代码 但是第二个(见图)
却是那种效果 没有柱形了 不知道怎么回事 特此求救 谢谢

作者: ADSLAN   发布时间: 2011-10-28

结贴送分了 我把DBCHART删了重放一个就正常了..

作者: ADSLAN   发布时间: 2011-10-28