l 引言 数据报表的设计在大多数信息管理系统中是常见的。数 据报表中显示信息的布局一般是在设计过程中完成的,在程 序运行时是不能改变,一般需要改变布局的可能性一般也不 大。但显示的信息内容许多时候需要根据不同的条件设置改 变,这正如在一般界面上输入不同的查询条件就回查询显示 不同的信息一样,只不过数据报表是可以打印的。这就是动 态数据报表的设计问题。这在有些时候是必须的,否则难以 满足复杂的实际需要。 2过滤数据 可以通过对数据环境设置SQL语句来实现对数据的过滤, 如下面的代码: Private Sub Command3_Cnck() With DataEnvironmcml If rsCommandl.State Then rsCommandl Close ’关闭对象,如果对象已经打开,则不允许执行应用程序 所要求盼操作,必须关闭它 Commands[Commandl.ComnmndText=”select+ from a where chenji>”&Trim(Textl) +设置过滤条件,条件值从窗体上的控件Textl中取得 Commandl ’使过滤条件生效 EndWith 执行以上代码以后,报表从数据环境DataEnvironmentI读 取的数据就是符合要求的过滤出数据了。 3记录集过滤 下面的代码实现为数据环境的数据集合设置过滤条件: Private Sub Cornmand6_Click () Wi出DataEnvironmentl If rsCommandl.State Then rsCommandl.Close ’如果对象已经打开,则不允许执行应用程序所要求的 7操作,必须关闭它 .rsCommandl.Filter=”chenji>80 And thenji<100” ’设置过滤条件 .Commandl '使过滤条件生效 End With 打开报表以前需要先运行以上代码,报表内容就是符合 条件的内容了。 创建数据环境DataEnvironment2,如图t所示.设置 command2的属性如图2,图3所示。 ![]() 图1中下面的编辑框里的SQL语句里的每一个问号对应 于一个参数。 在command2属性参数页中设置参数类型时要注意.数值 型参数可以不设置大小,即长度数(大小),字符型参数必须 设置合理的长度数(大小),如图3,网4所示。 ![]() ![]() 4将数据库的数据写入Excel表格 首先使用“工程”菜单里的“引用”实现对“Excel”类 库的引用:Microsoft Excel 9.0 Object Library。确定以后就可以 在工程中使用“Excel”所提供的对象进行程序设计了。 执行以下代码可以将数据库的记录写入Excel表格并以文 件的形式保存,然后就可以充分利用Excel软件的强大功能对 表格数据进行计算排列等各种处理,这些一般的计算机用都 熟练。 Private Sub Commandl_click 0 Dim ea As Excel.Application Dim ew As Excel Workbook Dim ewt As Excel.Worksheet 7定义对象变量 Set ea=New Excel.Application Set CW=ea.Workbooks.Add’创建新_T作簿 Set ewt=ew.Worksheets.Add 7创建新工作表 ewt.Cells(1,1)=”学号” ’将”学号”写人1行l列单元格内 ewt.cells(1,2)=”数学” ’将”数学”写入1行2列单元格内 ewtCells(1,3)=”语文“ ewt.Cells(1,4)=”总分” ewLCells(2。1)=Datal.Reeordset.xuehao oWLCells(2,2)=Datal Recordset.shuxue ewLCells(2.3)=Datal.Reeordset.yuwcn DimiAsInteger i=2 Do While Not Datal.Reoord魁t.EOF +将Daml数据控件上所挂数据表的所有记录 。写入Excel表里 ewt.Cells (i.1)=Datal.RecordseLxuehao ’将xuehao字段写入i行1列单元格内 ewt.Cells(i,2)=Datal.Recordset.shuxue ’将shuxue字段写入i行2列单元格内 ewt.Cells“3)=Datal RecordseLyuwen Datel.RecotdseLMoveNext i=i+1 Loop ewtSaveAs,c:、abcd.xls”) ’以文件名”c:、abcd.xls”保存所生成的工作表 eW.Clo鸵 ea.Quit ’关闭Microsoft Excel Set ea=Nothing Set ew=Nothing Set cwt=Nothing ’释放所有创建的对象 End Sub 5结语 在许多VB应用系统开发中,以上介绍的动态数据报表的 设计在许多实际情况下非常有意义,但是在应用中要灵活变 |