我想做一个道路路口车流量统计的曲线图表。
使用SQL SEVER数据库
表名:qianduanxinxi
字段:riqi(通过该路口的时间),lukou(该路口的名称),sudu(通过的速度)。
我在界面上放置一个DateTimePicker控件选择日期,放置一个ComboBox控件选择路口名称,放置两个
chart控件,一个显示被选择的那一天、那个路口的平均车流量曲线图表,另一个显示的是车辆平均速
度的曲线图表,两个曲线图表的X轴都表示的是时间,分成24段,每段代表一小时,从0点到23点,Y轴
表示的是车流量和速度的平均值。我该如何实现这个功能,请帮助。
使用SQL SEVER数据库
表名:qianduanxinxi
字段:riqi(通过该路口的时间),lukou(该路口的名称),sudu(通过的速度)。
我在界面上放置一个DateTimePicker控件选择日期,放置一个ComboBox控件选择路口名称,放置两个
chart控件,一个显示被选择的那一天、那个路口的平均车流量曲线图表,另一个显示的是车辆平均速
度的曲线图表,两个曲线图表的X轴都表示的是时间,分成24段,每段代表一小时,从0点到23点,Y轴
表示的是车流量和速度的平均值。我该如何实现这个功能,请帮助。
解决方案 »
- 关于调用系统摄像头拍照问题,跪求大神帮忙~
- 请问,同样的代码,同样版本的编译器,编译出来的代码MD5值会是一样的吗?
- 如何实行以表格的形式设置参数,要实行以下图的效果
- 怎么把文本文件的内容导入到dbgrid中
- suipack中的treeview和listview控件可以修改滚动条的风格吗
- 请教:delphi变量类型问题
- 跪地裸奔泣求2本电子图书(最好是PDF格式)外加200分送出,兄弟们支持。
- 关于fctreeview控件的使用方法,100分
- 为什么会出现这样的问题?
- 请教一个问题,窗口上有一个checkbox,当点击时,窗体的下部分为不可显示,再点击可显示全部窗口
- 先安装了DevExpress.ExpressQuantumGrid.Suite.v5.0.Full_Source_Code.for.Delphi.7, 怎样安装DevExpress.SpreadSheet 1.17 for d7
- VC调用delphi编写的dll时传出参数的问题
Series1.AddXY(i,values[i]);
这样才可以解决
var
i:integer;
begin
button2click(sender);
Chart1.Series[0].Clear;
Chart2.Series[0].Clear;
Label7.Caption:='';
Label8.Caption:=''; for i:=0 to 23 do
begin
yuell[i]:=0;
yuesd[i]:=0;
end; for i:=0 to 23 do
begin
adoquery1.First;
while not adoquery1.Eof do
begin
if (form1.ADOQuery1.FieldByName('shijian').AsString = Trim(datetostr(form1.DateTimePicker1.DateTime)))
and (form1.ADOQuery1.FieldByName('lukou').AsString = trim(form1.ComboBox1.Text)) then
begin
// if((Table1->FieldByName("a")->AsString.SubString(1,10)==Trim(ComboBox4->Text)
// +Trim(ComboBox5->Text)+Trim(ComboBox6->Text)+FormatFloat("00",i))
// and (Table1->FieldByName("a")->AsString.SubString(11,4)==lk))
yuell[i]:=yuell[i]+strtofloat(label1.Caption);
yuesd[i]:=yuesd[i]+strtofloat(form1.ADOQuery1.FieldByName('sudu').AsString) * strtoint(label1.Caption);
end;
adoquery1.Next;
end;
end; for i:=0 to 23 do
begin
if yuell[i]>max1 then
max1:=yuell[i];//最大流量
if yuell[i]<>0 then
if yuesd[i]/yuell[i]>max2 then
max2:=yuesd[i]/yuell[i];//最大速度
sum1:=sum1+yuell[i]; //总流量
end; for i:=0 to 23 do
sum2:=sum2+yuesd[i]; if sum1=0 then
sum2:=0
else
sum2:=sum2/sum1; //平均速度 for i:=0 to 23 do
begin
if yuell[i]<min1 then
min1:=yuell[i];//最小流量
if yuell[i]<>0 then
if yuesd[i]/yuell[i]<min2 then
min2:=yuesd[i]/yuell[i];//最小速度
end; Label7.Caption:='车流总量:'+floatToStr(sum1)+'台 单小时最大流量:'
+floatToStr(max1)+'台 单小时最小流量:'+floatToStr(min1)
+'台 小时平均流量:'+floatToStr(sum1/24)+'台'; if min2<>10000 then
Label8.Caption:='单小时最大车速:'+floatToStr(max2)+'km / h 单小时最小车速:'
+floatToStr(min2)+'km / h 小时平均车速:'+floatToStr(sum2)+'km / h'
else
Label8.Caption:='单小时最大车速:'+floatToStr(max2)+'km / h 单小时最小车速:0'
+'km / h 小时平均车速:'+floatToStr(sum2)+'km / h'; for i:=0 to 23 do
begin
Chart1.Series[0].Add(yuell[i],FormatFloat('00',i),clRed);
if yuell[i]<>0 then
Chart2.Series[0].Add(yuesd[i]/yuell[i],FormatFloat('00',i),clBlue)
else
Chart2.Series[0].Add(0,FormatFloat('00',i),clBlue);
end;end;就是在数据库的查询上实现不了的,斜杠处是cbc的源程序,我别处都改过来了,就是精华部分没有弄明白
Trim(ComboBox4.Text)+Trim(ComboBox5.Text)+Trim(ComboBox6.Text)) and
(Copy(Table1.FieldByName('a').AsString,11,4)=lk)
then