DBChart代码实现绑定数据库
2015-07-15 14:15
363 查看
来源:http://hi.baidu.com/ma_wei/blog/item/0c8d1a12aa0431175baf53b6.html
一:属性相关:
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;
一:属性相关:
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;
相关文章推荐
- MySQL的varchar长度问题 分类: MySQL
- oracle切割以,隔开的数字字符串
- 如何利用Oracle外部表导入文本文件的数据
- 最新.NET 5.0 C#6 MVC6 WCF5 NoSQL Azure开发120课视频
- Amoeba for MySQL读写分离配置
- MySQL多表查询
- mysql5.6利用xtrabackup全备及增量备份 推荐
- [轉]获取SQL数据库中的数据库名、所有表名、所有字段名、列描述
- mysql 数据导入时的编码设置
- mysql5.6主从配置
- oracle 11g client端 安装
- 【sqlserver】【安装】出现需要重启的选项,重启后依然有的解决办法
- oracle 11g Server端 安装
- 【mongodb系统学习之四】查看mongodb进程
- 【mongodb系统学习之三】进入mongodb shell
- mongoDB常用命令
- DB2 XML FUNCTIONS
- SQLServer:《SQL必知必会》一书的读书笔记(二)
- 用redis实现社交产品中计数器
- mysql int(m)与int(m)的区别