26.数据库报表序号 描述 页码26.1 功能描述 26-0126.2 目标数据库 26-0126.3 启动报表设计器 26-0126.4 新建报表格式 26-0226.5 编辑报表格式 26-0426.6 保存报表格式 26-0726.7 组态报表打印按钮 26-0826.8 脚本控制报表打印按钮 26-1026.9 执行报表打印 26-1126.1功能描述通过数据库连接把实时数据经前期处理后,有效的存储到自定义数据库中;用户可以通过系统绑定开发的水晶星(Crystal)报表格式及控件,提供了完善的报表输出功能;水晶星(Crystal)报表的功能非常强大,基于数据库能制作出各种工业报表,本章也很难详细的描述其功能,只能以例子的方式讲述如何实现简单数据报表,起到抛砖引玉的作用;复杂的报表设计可与杰控公司的技术支持联系;26.2目标数据库本例使用的数据库内容如下表:数据库类型:Microsoft Access数据源名称:FameView UserData Source数据表名称:T1字段名称:产量1 产量2 存储时间字段类型:数字[单精度] 数字[单精度] 日期/时间26.3启动报表设计器选择<数据库连接>功能,执行<数据库报表格式文件>任务,来启动或管理报表文件;如下图:26.4新建报表格式报表设计器启动后,出现注册窗口,执行取消按钮,即执行<Cancel>;然后执行<File->New>菜单,出现下面的对话框:选择<Standard>标准报表,出现下面的对话框,选择数据库的来源:必须选择ODBC数据源,即执行<SQL/ODBC>按钮,出现下面对话框:选择数据源,如FameView UserData Source,然后执行<OK>按钮,出现下面对话框选择数据表:从SQL Table列表中选择数据表,如T1,然后执行<Add>按钮和<Done>按钮,然后出现下面的界面:执行“Next>>”按钮,出现下面的界面,选择报表中要使用的字段:从Database Fields列表中选择报表中要使用的字段,并通过<Add>按钮加入到<Report Fields>列表中,或通过<All>按钮加入所有字段;如下图所示:此时便可以用<Preview Report>按钮浏览并结束新建报表的制作,报表浏览把数据表中的全部内容给显示出来,如下图:26.5编辑报表格式此时的报表格式还很简单,需要加以编辑:点击<Design>进入设计模式,此时只显示一行数据,如果报表内容有10000行,也只用设计一行;报表格式中的每部分内容,通过某个对象来体现,通过修改对象的属性来改变报表格式;改变字体:选中某个对象,点击右键,从弹出菜单中选择<Change Font>修改字体;改变标题文本内容:选中某个标题对象,点击右键,从弹出菜单中选择<Edit Text Field>,可以修改文本的内容;给记录加上序号:执行菜单<Insert->Special Field->Record Number Field>命令,允许为记录行添加序号;加入公式字段:如果希望在报表中体现<产量1+产量2>的数值,但数据库中又不存在,您可以选用公式字段,执行菜单<Insert->Formula Field>命令,出现下面对话框:输入中间字段的名称,如“产量12”,执行<OK>按钮,出现下面对话框:在<Formula text>中输入计算脚本内容后,先用<Check>按钮检查脚本是否正确,再用<Accept>按钮把中间字段放入适当的位置;添加表格线:执行菜单<Insert->Line>命令可以为表格添加表格线;增加累加值:如果希望把产量1的所有查询数值进行累加,请选中产量1字段,点击右键,从出现的菜单中选择并执行<Insert Grand Total>命令,出现下面对话框,选择要计算的类型,如累加值、平均值、最大值、最小值..等:增加图片:为了给报表增添效果,通过下面方法为报表增加图片,执行菜单<Insert->Picture>命令,从弹出的对话框中选择需要的图片;增加新字段:在新建报表格式后,有时希望再往报表中添加新的数据库字段,执行菜单<Insert->Database Field>命令,从弹出的字段列表对话框中选择需要增添的字段;刷新数据库:在报表建立后,数据库的结构进行了修改,例如添加了新的字段,要想在报表中体现新的字段,执行菜单<database->Verify Database>命令;刷新报表内容:在制作报表时,数据库的记录内容发生变化,要想在浏览报表时进行刷新,执行菜单<Report->Refresh Report Data>命令;报表排序:如果报表记录希望根据某个字段进行排序,执行菜单<Report->Sort Report>命令,从弹出的字段列表选择字段进行排序;隐藏报表内容:整个报表由Title、Page Header、Details、Grand Total、Page Footer几部分组成,如果希望隐藏某部分内容,只需用鼠标右键点击某部分的前部的灰色部位,从弹出的菜单中,执行菜单命令<Hide Section>即可,如果想还原,再执行一次;设置时间格式:有时日期/时间字段内只显示日期,而不显示时间,请按以下步骤操作:执行菜单<File->Report Options>任务,出现下面的菜单,确信不要选中“ Convert Date-Time to Date”;设置浏览页的格式:为了在系统运行过程中,浏览报表时,浏览页的尺寸与窗口的尺寸匹配,请执行菜单<File->Report Options>任务,出现下面的菜单,选中“ Fit Page”;经编辑后报表的预览结果如下:26.6保存报表格式把编辑好的报表格式,建议存储到系统目录下的ReportFile目录下,例如:d:\组态系统\ReportFile\test.rpt在保存报表格式前,请打开菜单File,确信没有选择“Save Data with Report”,否则在打印/浏览报表时,报表的内容不会更新;26.7组态报表打印按钮打开画面制作程序,建立新画面,从组件箱中选择“报表打印”组件,如下图:组件的属性对话框如下:设置标题:通过<按钮标题>为按钮组件定义按钮显示文本;选择文件:执行<格式文件>按钮,弹出对话框,从中选择制作好的报表文件,如: Test.rpt提供班报表、日报表、周报表、月报表、季度报表、年度报表、自由报表、选择报表等8种类型; 如果选择了班报表,则可以从数据库中查询出某天的某个时间段内的数据进行报表输出,在表格中填写班次名称,并定义每班的时间范围(即开始时间-结束时间),每天最多可以分为24个班;一般情况下,开始时间均早于结束时间;但如果第1班的开始时间晚于结束时间,则默认为此班是从前一天的某时间到今天的某时间,例如:从今天的20:00至明天的6:00为一班,则开始时间为20:00,结束时间为6:00;另外,如果最后一班的结束时间早于开始时间,则默认为此班是从今天的某时间到明天的某时间;班报表的选择对话框界面如下:如果选择了日报表,从数据库中查询某一天的数据进行报表输出,日报表的选择对话框界面如下:如果选择了周报表,从数据库中查询某一周的数据进行报表输出,周报表的选择对话框界面如下:如果选择了月报表,从数据库中查询某一月的数据进行报表输出,月报表的选择对话框界面如下:如果选择了季度报表,则可以从数据库中查询出某一季度的数据进行报表输出,季度报表的选择对话框界面如下:如果选择了年度报表,则可以从数据库中查询出某一年内的数据进行报表输出,年度报表的选择对话框界面如下:如果选择了自由报表,则可以从数据库中查询出任意某一段时间内的数据进行报表输出,自由报表的选择对话框界面如下:如果选择了选择报表,则可以随意选择班报表、日报表、周报表、月报表、季度报表、年度报表、自由报表7种报表格式中的一种,进行报表输出,选择报表对话框界面如下:选择时间字段:一个数据库中必须存在一个日期/时间字段,否则报表控件不能正常工作;如果报表数据库类型为Microsoft Access,则此字段的类型为“日期/时间”;如果报表数据库类型为 SQL Server,则此字段的类型为“datetime”;为避免错误,通过<时间查询字段>按钮,弹出的数据源、数据表、字段表对话框,来选择时间字段;选择报表数据库的类型:为了保障报表的正确查询,必须正确选择报表数据库的类型,Microsoft Access或SQL Server,否则报表将不工作;预设查询条件:在报表浏览/打印时,如果只输出满足某些条件的内容,则可以通过设置查询条件来实现;查询条件可以在浏览/打印时设定,也可以在组态时预设好,在浏览/打印时再进行选择;允许最多预设100个查询条件;用鼠标双击查询表格中的某一行,出现下面的界面,在其中按照SQL语言格式输入查询语句:如果在报表数据库中使用确省了字段:DefaultText、DefaultValue,则在预设查询条件中不用输入字段名, DefaultText为文本字段,DefaultValue为数值字段;例如要想查询DefaultText等于“AAA”的记录,则只用输入“%AAA”即可;例如要想查询DefaultValue等于1000的记录,则只用输入“@=1000”即可;1幅画面中只能有1个报表打印按钮;26.8 脚本控制报表打印按钮可能不希望通过执行此按钮,而希望通过编写脚本来控制执行报表打印,按照下列步骤来实现: 为组态好的报表打印按钮控件命名:选中报表打印按钮控件,点击右键,弹出菜单,选择执行“对象属性->脚本名称”,弹出对话框给对象命名,例如“PRNBTN”;隐藏报表打印按钮:选中报表打印按钮控件,点击右键,弹出菜单,选择执行“对象属性->隐藏”,弹出对话框使组件在运行画面显示时不可见:数据库应用 26.数据库报表 .26-11. 35号画面脚本实现了报表打印按钮的控制:可以改变报表格式文件中的Formula 字段: UserReport.SetFormulaValue "AAAA","AA",11,900如果只是简单的显示报表打印按钮所提供的报表界面,编写的脚本如下: ReportBtnObj.ShowWindow “PRNBTN”如果想把报表打印按钮作为中间控件,利用它实现各种报表,例如要打印日报表,编写的脚本如下:ReportBtnObj .ActiveReport "PRNBTN","test.rpt",1,0,1,"存储时间"26.9执行报表打印以日报表来说明执行过程:在画面中执行报表打印任务后,首先出现下面的对话框:选择日期:通过日期选择器来选择要进行报表输出的日期,缺省为当前日期;过滤条件:希望以一定的条件输出报表,请选择“ 过滤条件”,弹出对话框,在其中输入或选择预设的过滤条件;浏览输出:选择<浏览>并执行<确定>按钮后,会出现下面的窗口,在内显示报表内容:打印输出:如果选择< 打印>并执行<确定>按钮后,会在打印机上直接输出报表内容;。