组态王报表功能实现方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一种简单的组态王报表功能实现方法2010年04月24日星期六15:18前段时间用组态王6.53做了一个小的画面组态,其中用到了KVADODBGrid控件来做报表,现总结如下。一、准备工作第一步:在组态王工程管理器中新建一个项目,项目路径为D:\实验项目。第二步:新建一个ACCESS数据库1、在“D:\实验项目”路径下新建一个MicrosoftOfficeAccess应用程序并命名为mydatabase.mdb;2、打开“控制面板\管理工具\ODBC数据源管理器”选择“系统DSN”选项;3、点击“添加”按钮创建新数据源,选择“MicrosoftAccessDriver(*.mdb)”;4、在数据源名处填下“mydata”,并选择数据库路径为“D:\实验项目\mydatabase.mdb”。第三步:创建表格模板点击工程浏览器左侧的“SQL访问管理器”下的“表格模板”,新建一个表格并命名为Table。在Table中添加所需记录的变量及日期参数,其中“日期”为定长字符串型,字符长度为10;其它诸如年、月、日、时、分则为浮点型,字符长度为1。第四步:创建记录体点击工程浏览器左侧的“SQL访问管理器”下的“记录体”,新建一个表格并命名为Record,在Record中添加所需记录的变量及日期参数。记录体用来定义Access数据表格字段与组态王变量之间的对应关系。二、连接数据库第一步:在工程浏览器左侧的“数据库”下的“数据字典”中定义一个内存整型变量,并命名为ConnectID。第二步:创立组态王与mydata数据源的连接,并以“表格模板”Table的格式在数据库中建立名为“TheDate”的表格,命令如下:SQLConnect(ConnectID,dsn=mydata;uid=;pwd=);SQLCreateTable(ConnectID,TheDate,Table);将上面两条命令填入“工程浏览器\命令语言\应用程序命令语言”下的“启动时”选项中。第三步:在工程浏览器左侧的“命令语言\事件命令语言”下新建一事件命令,在“事由描述”项内填下“\\本站点\$分==01”(每小时事件发生一次即分变量每次为一,计算了60分钟),在“发生时”框内填写SQLInsert(connectionid,TheDate,Record);//每小时向数据库保存一条记录。三:建立报表查询画面新建一个画面,并在画面上添加一个日期控件作日期查询用;添加一个KVADODBGrid控件作报表显示用;添加三个按钮分别作查询、打印、退出用。第一步:添加KVADODBGrid控制1.菜单栏\编辑\插入通用控件\KVADODBGridClass,双击添加的控件,并命名“控件名”为dayreport2.在控件属性里的“数据源”选择前面定义的mydata、“表名称”选择TheDate,此时下面的“有郊字段”将出现你在记录体里面加入的数据,根据需要添加到右侧,并编辑好“标题”、“格式”等内容3.根据需要可修改控件属性里面的“字体”、“打印设置”等第二步:添加时间控件1.菜单栏\编辑\插入通用控件\MicrosoftDateandTimePickerControl6.0(SP4)2.双击添加的控件,并命名“控件名”为DayreportSelect3.根据需要可修改控件属性第三步:添加查询按钮1.定义按钮的“命令语言连接”“按下时”为:dayreport.RemoveAllData();(RemoveAllRemoveAll方法描述RemoveAll方法从Dictionary对象中删除所有关键字和条目对。语法object.RemoveAllobject始终是一个Dictionary对象的名字。说明下面的代码举例说明了RemoveAll方法的用法:Dima,d,i'创建一些变量Setd=CreateObject(Scripting.Dictionary)d.Adda,Athens'添加一些关键字和条目d.Addb,Belgraded.Addc,Cairo...a=d.RemoveAll'清除字典VC:CARRAY类下的操作函数,功能:删除该数组中的所有指针。从该数组中删除所有指针,但并不真正的删除CObject对象。RemoveAll函数将释放所有用于指针存储所占用的内存。)2.定义按钮的“命令语言连接”“弹起时”为:(下列语言中“条件句”为内存字符串格式,在“数据词典”里面定义)longa;longb;stringstr1;stringstr2;a=DayreportSelect.Month;(指针命令,控件DayrepotSelect中的Month变量)b=DayreportSelect.Day;if(a10)str1=-0+StrFromInt(DayreportSelect.Month,10);elsestr1=-+StrFromInt(DayreportSelect.Month,10);if(b10)str2=-0+StrFromInt(DayreportSelect.Day,10);elsestr2=-+StrFromInt(DayreportSelect.Day,10);\\本站点\条件句=StrFromInt(DayreportSelect.Year,10)+str1+str2;dayreport.Where=日期='+\\本站点\条件句+'orderby时;dayreport.FetchData();dayreport.FetchEnd();注意:在控制面板\区域和语言\自定义下,需定义短日期格式为“yyyy-MM-dd”样式,若不同,则上面命令代码的判断段需作相应修改。第四步:添加打印按钮定义按钮的“命令语言连接”“弹起时”为:dayreport.Print();第五步:添加退出按钮总体效果图如下图所示:总结:这个报表用了组态王自带的控件KVADODBGrid,数据库用的是ACCESS,并用到了控件自带的SQL命令语言,总体实现起来

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功