dbchart的问题,就快出来了,大家帮我一把 ( 积分: 70 )

  • 主题发起人 主题发起人 caisunyujia
  • 开始时间 开始时间
C

caisunyujia

Unregistered / Unconfirmed
GUEST, unregistred user!
现想用dbchart来画line
with datamodule2 do
query1.open;
query1.sql.clear;
query1.sql.text:='select table1.username,table2.datatime(日期时间型),table2.temperature from table1 inner join table2 on table1.add=table2.add
where datatime>='''+formatdatetime('yyyy-mm-dd',datetimepicker1.date) and datatime<='''+formatdatetime('yyyy-mm-dd',datetimepicker2.date) and username:='''+DBComboBox1.text+'''';
query1.prepare;
try
query1.open;
except
query1.execsql;
end;
while not query1.eof do
begin
datasource3.dataset:=query1;
dbchart1.series[0].datasource:=datasource3;
dbchart1.series[0].addxy(datasource3.dataset.fileds[1].asdatatime,datasource3.dataset.fileds[2].asfloat,'',clred);
dbchart1.series[0].checkdatasource;
dbchart1.autorefresh;
datasource3.dataset.next;
帮我看看哪错了,怎么编译说query1:field'datamodule2.datasource3.dataset.fields[2]'not found
我在sql里选了select username,datatime,temperature,
dbgrid里也显示出了正确结果,怎么就画不出来呢
 
现想用dbchart来画line
with datamodule2 do
query1.open;
query1.sql.clear;
query1.sql.text:='select table1.username,table2.datatime(日期时间型),table2.temperature from table1 inner join table2 on table1.add=table2.add
where datatime>='''+formatdatetime('yyyy-mm-dd',datetimepicker1.date) and datatime<='''+formatdatetime('yyyy-mm-dd',datetimepicker2.date) and username:='''+DBComboBox1.text+'''';
query1.prepare;
try
query1.open;
except
query1.execsql;
end;
while not query1.eof do
begin
datasource3.dataset:=query1;
dbchart1.series[0].datasource:=datasource3;
dbchart1.series[0].addxy(datasource3.dataset.fileds[1].asdatatime,datasource3.dataset.fileds[2].asfloat,'',clred);
dbchart1.series[0].checkdatasource;
dbchart1.autorefresh;
datasource3.dataset.next;
帮我看看哪错了,怎么编译说query1:field'datamodule2.datasource3.dataset.fields[2]'not found
我在sql里选了select username,datatime,temperature,
dbgrid里也显示出了正确结果,怎么就画不出来呢
 
怎么没人理我呢,用过dbchart的应该能解决呀
 
while not query1.eof do
begin
datasource3.dataset:=query1;
dbchart1.series[0].datasource:=datasource3;
dbchart1.series[0].addxy(query1.fileds[1].asdatatime,query1.fileds[2].asfloat,'',clred);
dbchart1.series[0].checkdatasource;
dbchart1.autorefresh;
datasource3.dataset.next;
 
我真是不明白了,我把datamodule2删了,把datasource和query都放在窗口里了
begin
with query1 do
begin
query1.close;
query1.sql.clear;
query1.sql.text:='select table1.username,table2.datatime(日期时间型),table2.temperature from table1 inner join table2 on table1.add=table2.add
where datatime>='''+formatdatetime('yyyy-mm-dd',datetimepicker1.date) and datatime<='''+formatdatetime('yyyy-mm-dd',datetimepicker2.date) and username:='''+DBComboBox1.text+'''';
query1.prepare;
try
query1.open;
except
query1.execsql;
end;
while not query1.eof do
begin
datasource2.dataset:=query1;
dbchart1.series[0].datasource:=datasource2;
dbchart1.series[0].addxy(query1.fileds[1].asdatatime,query1.fileds[2].asfloat,'',clred);
dbchart1.series[0].checkdatasource;
dbchart1.autorefresh:=true;
datasource3.dataset.next;
我都把datamodule删了,改成上面这样,怎么一编译还是说query1:Field 'datamodule2.datasource3.dataset.field[2]' not found
我都删了怎么还这样呀
 
怎么还是没人理我呢?我真的很着急,求各位高手了,没有碰到过这种情况吗?
 
DBChart是数据感知控件,还用得着你AddXy吗?设置它的datasource和,XLabelSource,YValues.ValueSource就可以了。
提示这个错误就是说query1里没有这个'datamodule2.datasource3.dataset.field[2]字段啊,可能是你的误操作造成的,你看看series的属性。
 
把dbchar1换成chart控件,然后这里:
while not query1.eof do
begin
chart1.series[0].addxy(query1.fileds[1].asdatatime,query1.fileds[2].asfloat,'',clred);
query1.next;
end;
 
我改成chart了
可是我表中datatime为日期时间型,我想在chart的x轴设置坐标为00:00:00 到23:59:59
时间跨度为两个小时,我不知道在char的属性中应设置那些值能有这样的效果
 
还是出不来曲线,编译是没问题了,dbgrid里显示的是正确的查询结果,可是chart这就是没什么反映,我不知道是不是我chart属性中是不是设置的有问题,并且是不是我的
addxy(query1.fields[1].asdatetime,
fields[1]是日期时间型的,可我在x轴只想显示时间
我试了试
addxy(rightstr(datetimetostr(query1.fields[1]),8).asdatetime,
编译不对,不知道怎么办
 
大家帮我看一下吧
我如果把x轴的最大最小值和增量都设成自动,可以出曲线,但是如果中间有一段时间里并没有数据,例如查询结果datatime temperature
2004-1-1 12:00:00 300
2004-1-1 16:00:00 500
那么在12点到16点之间是有曲线的连接在它们两个之间,可是我想这段时间没有值的话就间断,是一段空白,不知该怎么弄?
如果我不设自动,增量为two hours,最大23:59:59,最小00:00:00,那样就出不来曲线了,我该怎么办
 
多人接受答案了。
 
后退
顶部