“多负载识别监控平台(上位机)”技术细节 之Unit2-Form2用户电量查询显示界面
2014-01-12 16:02
459 查看
下面介绍Unit2用户电量查询显示界面的实现。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/15/bbe10146e4af342f4ddaaa47f9a4fa54)
此界面并没有使用什么独特的控件,其中使用了多标签PageControl,数据显示DBGrid,图标Chart控件。
其中DBGird控件直接与Form1中的DataSource相连,由数据库读出的数据直接使用add语句,在Chart控件中进行显示。
其中可以观察到 u_Date,u_Year,u_Month,u_Day : string;即均为字符型数据,传输的SQL数据也为字符串型,因此,直接将 u_Date,u_Year,u_Month,u_Day加入到SQL语句中是符合类型的。因此使用语句('select * from BH0 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year) 可以找出指定年月日的所有数据。
下面展示的是使用最笨的方法将数据读出:
定义一个数组 adayhour来存放24小时的数据,如 adayhour : array [1..24] of real;
使用 ibquery1.FieldByName('?').AsFloat 语句即可以float类型将字段名为“?”的数据取出,之后使用add命令将其加入到series1中。
此界面并没有使用什么独特的控件,其中使用了多标签PageControl,数据显示DBGrid,图标Chart控件。
其中DBGird控件直接与Form1中的DataSource相连,由数据库读出的数据直接使用add语句,在Chart控件中进行显示。
1.数据的查询
操作数据库自然使用SQL语句,输入带变量的SQL语句,可以使用Form1中Timer4的输入方法(见Unit1技术细节4.Timer4),这里举例一种直接使用“+”来产生控制语句字符串的方法。u_Date := datetostr(teDateTimePicker1.DateTime);//获得用户选择的时间 u_Year:=leftStr(u_Date,4);//取年 u_Month:=copy(u_Date,6,2);//取月 u_Day:=copy(u_Date,9,2);//取日 // tememo2.Text := u_Date; // tememo1.Text := u_Year+u_Month+u_Day; form1.IBdatabase1.Connected:=true; form1.IBquery1.Close; form1.ibquery1.SQL.Clear; case f2dlCombo.ItemIndex of 0:form1.ibquery1.SQL.Add('select * from BH0 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year);//查询当年月日的数据 1:form1.ibquery1.SQL.Add('select * from BH1 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); 2:form1.ibquery1.SQL.Add('select * from BH2 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); 3:form1.ibquery1.SQL.Add('select * from BH3 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); 4:form1.ibquery1.SQL.Add('select * from BH4 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); 5:form1.ibquery1.SQL.Add('select * from BH5 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); 6:form1.ibquery1.SQL.Add('select * from BH6 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); 7:form1.ibquery1.SQL.Add('select * from BH7 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); 8:form1.ibquery1.SQL.Add('select * from BH8 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); 9:form1.ibquery1.SQL.Add('select * from BH9 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year); end; form1.ibquery1.Open; //这时值已经放到IBQuery中了
其中可以观察到 u_Date,u_Year,u_Month,u_Day : string;即均为字符型数据,传输的SQL数据也为字符串型,因此,直接将 u_Date,u_Year,u_Month,u_Day加入到SQL语句中是符合类型的。因此使用语句('select * from BH0 where u_day='+ u_Day + 'and u_month=' + u_Month + 'and u_year=' + u_Year) 可以找出指定年月日的所有数据。
2.数据的显示
对于数据的显示,使用series1的add命令,将得到的数据add到表中,之后进行显示即可。下面展示的是使用最笨的方法将数据读出:
定义一个数组 adayhour来存放24小时的数据,如 adayhour : array [1..24] of real;
adayhour[1] := form1.ibquery1.FieldByName('H1').AsFloat ;//按字段名取出数据,分别放到数组中 adayhour[2] := form1.ibquery1.FieldByName('H2').AsFloat ;//因为数据类型不一样,所以要加.asfloat adayhour[3] := form1.ibquery1.FieldByName('H3').AsFloat ; adayhour[4] := form1.ibquery1.FieldByName('H4').AsFloat ; adayhour[5] := form1.ibquery1.FieldByName('H5').AsFloat ; adayhour[6] := form1.ibquery1.FieldByName('H6').AsFloat ; adayhour[7] := form1.ibquery1.FieldByName('H7').AsFloat ; adayhour[8] := form1.ibquery1.FieldByName('H8').AsFloat ; adayhour[9] := form1.ibquery1.FieldByName('H9').AsFloat ; adayhour[10] := form1.ibquery1.FieldByName('H10').AsFloat ; adayhour[11] := form1.ibquery1.FieldByName('H11').AsFloat ; adayhour[12] := form1.ibquery1.FieldByName('H12').AsFloat ; adayhour[13] := form1.ibquery1.FieldByName('H13').AsFloat ; adayhour[14] := form1.ibquery1.FieldByName('H14').AsFloat ; adayhour[15] := form1.ibquery1.FieldByName('H15').AsFloat ; adayhour[16] := form1.ibquery1.FieldByName('H16').AsFloat ; adayhour[17] := form1.ibquery1.FieldByName('H17').AsFloat ; adayhour[18] := form1.ibquery1.FieldByName('H18').AsFloat ; adayhour[19] := form1.ibquery1.FieldByName('H19').AsFloat ; adayhour[20] := form1.ibquery1.FieldByName('H20').AsFloat ; adayhour[21] := form1.ibquery1.FieldByName('H21').AsFloat ; adayhour[22] := form1.ibquery1.FieldByName('H22').AsFloat ; adayhour[23] := form1.ibquery1.FieldByName('H23').AsFloat ; adayhour[24] := form1.ibquery1.FieldByName('H24').AsFloat ;
使用 ibquery1.FieldByName('?').AsFloat 语句即可以float类型将字段名为“?”的数据取出,之后使用add命令将其加入到series1中。
series1.Clear;//要先清空series,要不他会总add with series1 do begin add(0);//占了x=0,让显示看起来好看 for i := 1 to 24 do add(adayhour[i]); end;
相关文章推荐
- “多负载识别监控平台(上位机)”技术细节 之Unit3-Form3用户负载类型查询界面
- “多负载识别监控平台(上位机)”技术细节 之Unit4-Form4系统设置界面
- “多负载识别监控平台(上位机)”技术细节 之 总述
- “多负载识别监控平台(上位机)”技术细节 之Unit1-Form1主界面
- 总结2015搭建日志,监控,ci,前端路由,数据平台,画的图与界面 - hugo - ITeye技术网站
- 医药采购系统 用户查询列表实现Datagrid显示界面
- 一个显示欢迎界面的WebPart,提供用户的生日查询显示
- 总结2015搭建日志,监控,ci,前端路由,数据平台,画的图与界面 - hugo - ITeye技术网站
- 编写一个单文档界面应用程序,该程序可以测试在鼠标左键按下时鼠标光标的位置是否处在某规定的矩形框内,如果不在该矩形内则计算机的扬声器会发出“叮”的声音,反之则会在用户区显示光标的位置。
- javascript模板技术 界面显示可以用另外的方法来写了
- android好看表单界面设计(TableLayout)及查询数据列表显示2
- 手机界面设计-2——电量显示界面
- 用户从手机的浏览器访问www.baidu.com,看到的可能跟桌面PC电脑,是不太一样的网页效果,会更适合移动设备使用。请简要分析一下,实现这种网页区分显示的原因及技术原理。
- 中国风电生产监控平台界面
- Windows服务(Windows Service,system权限)程序显示界面与用户交互(xp,win7通用)
- Duanxx的技术问题:word界面显示模糊
- loner_li 机试题 一个文本文件含有如下内容,分别表示姓名和成绩:张三 90 ..提供用户一个控制台界面,允许用户输入要查询的姓名,输入姓名并且按回车以后,打印出此人的成绩...
- 天兔(Lepus)监控系统慢查询分析平台安装配置
- php查询技术之-关键词高亮显示
- 查询所有SQL用户的连接信息(可显示IP)