Delphi中DBChart的數據庫應用


一:屬性相關:
Series選項:

(1)Format頁(數據柱的風格)

在Color Each中打勾,就可使用多種顏色顯示,
color按鈕用於設置顏色,
Style用於設置圖表的風格(Rectangle長方體,Pyramid三角體,Invert.PyramId倒三角體,Cylinder圓柱體,Ellipse圓形,Arrow箭頭,

(2)Marks頁(標記,數據內容顯示設置)

數據內容顯示設置:在Style中選相關的選項,標記的類型:Value值、Percent百分率、Label字段內容、Label and Percet字段內容+百分率、Label and Value
     字段內容+值、Legend與右上角的數據說明一樣、Percent Total百分率+值、Label&Percent Total字段內容+百分率+值。

二:數據庫綁定
1、綁定數據

ADOQuery1.Active := True;

DBChart1.Series[0].DataSource := ADOQuery1;

DBChart1.Series[0].XLabelSource := ‘FieldName’;

DBChart1.Series[0].YValues.ValueSource := ‘FieldName’;

2、切換圖表類型

tmpChart := DBChart1.Series[0];

ChangeSeriesType(tmp, TLineSeries);

tmpChart.Active := true;

tmpChart.RefreshSeries;

3、設置分頁

DBChart1.ScaleLastPage := true;

DBChart1.MaxPointsPerPage := 10;

DBChart1.Page := 1;

DBChart1.PreviousPage;

DBChart1.NextPage;

DBChart1.Page := NumPages;

4.導出圖表
SaveToBitmapFile(FileName);

5.打印圖表
uses TeePrevi;
ChartPreview(Parent,DBChart1);
TeePreview(Parent,DBChart1);

6.數據源
ADODataSet1.CreateDataSet;
AdoDataSet1.Insert;
AdoDataSet1.FieldByName('Value').AsFloat:=200000;
AdoDataSet1.FieldByName('Info').AsString:='05-02';
AdoDataSet1.Post;


三:實例

①:我用的是FASTLINE,里面需要動態的綁定x,y軸,在DBCHART中可以直接設置,那么在程序中如何設置呢?

          sSql := 'select scan_start_time,sum'+'('+trim(adoQtarget.FieldByName('name').Value)+')'+' as c1';
          sSql := sSql + ' from pm_radio ';
          sSql := sSql + ' where scan_start_time >='+#39+ FormatDateTime('YYYY-MM-DD HH:00:00',wwDBDateTimePicker1.DateTime)+#39;
          sSql := sSql + ' and scan_start_time <='+#39+ FormatDateTime('YYYY-MM-DD 23:00:00',wwDBDateTimePicker1.DateTime)+#39;
          sSql := sSql + ' group by scan_start_time';
          adoQChart.Close;
          adoQChart.SQL.Clear;
          adoQChart.SQL.Text :=sSql;
          adoQChart.Open;
          
          Series1.XValues.ValueSource := 'scan_start_time';//adoQchart.FieldByName('scan_start_time').AsString;
          series1.YValues.ValueSource := 'c1';//adoQchart.FieldValues['c1'];//.fieldbyname('c1').AsString;

 

 ②:

uses Series,TeeEdiGene;

private
    Series1: TPieSeries; 

procedure TnPOP_check_model.insertcurrve_model_tot;
var
    curve_today_tot:array [0..30] of string;
begin
    Series1:=TPieSeries.Create(dbchart1);
    Series1.ParentChart:= dbChart1;
    Series1.Clear;
    Series1.Marks.Visible:=true;
    Series1.Marks.Style:=smsValue;
    Series1.SeriesColor:=cxcolorcombobox1.ColorValue;
    Series1.Title:='SUM_'+'-'+'Q';

    qry_temp1.Close;
    qry_temp1.SQL.Text:='select type,bad_count from press_check2';
    qry_temp1.Open;
      if qry_temp1.RecordCount>0 then
       begin
             if length(trim(qry_temp1.fieldbyname('bad_count').AsString))=0 then
                    curve_today_tot[i-1]:='0'
              else
                  Series1.DataSource:= qry_temp1;
                  Series1.xlabelsSource:='type';
                  Series1.YValues.valuesource:='bad_count';
                  Series1.Active:=True;
        end;

    cxcombobox1.Properties.Items.Add(trim(series1.Title));
end;

轉自:  http://blog.csdn.net/chelen_jak/article/details/7363877


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM