我的快乐小窝 > 财经科技 >按需提供:教学管理系统中的报表生成技术

按需提供:教学管理系统中的报表生成技术

按需提供:教学管理系统中的报表生成技术

基于VB和Excel技术

王 毅 许学敏

(华东理工大学,上海 200237)

在高校教学管理系统中,如何将数据库中的数据打印出各教学管理部门需求的报表?本文通过VB程序设计和EXCEL软件相结合的技术,详细分析生成各种数据报表的技术方法。

在高校信息化管理系统中,教学管理部门根据教学要求,生成形式多样的数据报表。数据报表是管理人员进行决策的基础,是高效工作的保障。任何管理系统无论界面多么友好,操作多么方便,最终都要以各种报表的形式输出。所以报表输出功能的强弱往往直接影响系统开发的效果。VB作为专业的数据库开发语言之一,虽然提供了报表功能的支持,可以提供简单的数据报表输出。但用户要求的报表形式多样,特别对表格格式或者样式,例如框线样式,斜线添加,字体设置,某些单元格的合并等等。而在制表方面,微软公司的EXCEL是一款优秀的表格设计软件,支持多种复杂表格格式,如果能在VB中引入EXCEL的优势,使得二者完美结合,就可以完成复杂报表的制作过程。

一、设计思路和步骤

在华东理工大学继续教育学院的信息化管理系统中,前台开发工具使用VB,和数据库管理系统(SQL SERVER 2000)配合,采集系统中有价值的数据,再通过和EXCEL模板文件配合使用,通过编写VB代码,调用EXCEL模板文件,有效解决了各种数据报表的生成。下面以教学管理中课程表的设计和输出为例说明设计思路和步骤。

(一)用EXCEL对象设计报表模板

学院教学管理系统工作人员根据本部门教学安排要求,提出了课程表输出模板样式(EXCEL格式):见表1,希望我们能批量打印出该教学点所有课程安排,便于下发和张贴。

表1 EXCEL模板样式

与上面模板有关的EXCEL对象:Application 对象、Workbook 对象、Worksheet 对象、Range 对象和Cells对象。其中Application 对象: Excel 对象模型的顶层,表示整个Excel 应用程序;Workbook 对象: 代表Excel 应用程序中当前打开的一个工作簿;Worksheet 对象:表示Excel 的一个工作表; Range 对象: 表示工作表的某一个单元格或多个单元格; Cells 对象: 表示工作表的一个单元格。

技巧:如何获得以上表格中个参数和命令呢?打开Excel,选择“工具\宏(M)\录制新宏(R)”,按常规方法制作上面表格,再选择“停止录制”,然后对所录制的内容进行分析,就可以获得绘制各种Excel表格的方法和命令,为VB开发提供代码参考。或者参考VBA代码说明也可。

(二) 在VB中引用Excel制作报表

(1)在运行代码前,从下拉菜单“工程”中选择“引用”,进一步选择“Microsoft Excel 9.0 Object Library”,再选择“确定”,表示在工程中要引用Excel类型库。

(2)在过程中定义Excel对象:

Dim Excel_App As Excel.Application

(3)创建Excel对象

Set Excel_App = CreateObject("Excel.Application")

(4)复制事先制作的Excel模板文件(存放在应用程序中的Samples目录下)

FileCopy App.Path & "Samples外协_课程表所有.xls", mFileName

Excel_App.Workbooks.Open (mFileName)

(5)设置Excel对象可见(或不可见)

Excel_App.Visible = True

(6)格式化Excel工作表

‘定义需要格式化的表格范围

Excel_App.Workbooks(1).Worksheets(1).Range("A" & 23 * i + 1 & ":I" & 23 * i + 1).merge

‘设置表格水平位置

Excel_App.Workbooks(1).Worksheets(1).Range("A" & 23 * i + 1 & ":I" & 23 * i + 1).HorizontalAlignment = -4108

‘是指表格字体为粗体

Excel_App.Workbooks(1).Worksheets(1).Range("A" & 23 * i + 1 & ":I" & 23 * i + 1).Font.Bold = True

‘设置表格字号

Excel_App.Workbooks(1).Worksheets(1).Range("A" & 23 * i + 1 & ":I" & 23 * i + 1).Font.Size = 24

‘设置表格字体

Excel_App.Workbooks(1).Worksheets(1).Range("A" & 23 * i + 1 & ":I" & 23 * i + 1).Font.name = "华文新魏"

‘设置表格行高

Excel_App.Workbooks(1).Worksheets(1).Range("A" & 23 * i + 1 & ":I" & 23 * i + 1).RowHeight = 29.25

‘定义表格单元格内容

Excel_App.Workbooks(1).Worksheets(1).Cells(23 * i + 2, 1) = "开学日期:"

……

(7)生成工作表的内容

Excel_App.Workbooks(1).Worksheets(1).Cells(23 * (i - 1) + 6 + m, 1) = ctGrid1.CellText(k, 2)

Excel_App.Workbooks(1).Worksheets(1).Cells(23 * (i - 1) + 6 + m, 2) = ctGrid1.CellText(k, 3)

Excel_App.Workbooks(1).Worksheets(1).Cells(23 * (i - 1) + 6 + m, 3) = ctGrid1.CellText(k, 4)

Excel_App.Workbooks(1).Worksheets(1).Cells(23 * (i - 1) + 6 + m, 4) = ctGrid1.CellText(k, 5)

……

说明ctGrid1是VB中引用的ActiveX表格控件,用来显示系统中采集的数据,CellText是表格控件的单元格内容引用。i变量是循环体变量,通过对i的运算,用来定位输出表格中单元格的位置。

最终,用户可以看到生成的一张张报表,如同操作EXCEL程序一样简单,可以打印预览,再决定是否输出打印。或者直接调用打印程序,输出打印信息,在打印结束后,要退出EXCEL,并交还控制权给EXCEL。

‘退出Excel

Excel_App.Quit

‘交还控制权给Excel

set Excel_App=nothing

二、结束语

在VB 中结合Excel 进行复杂报表的设计,可以减轻报表设计的工作量,提高报表的灵活性。还可以直接调用printer对象完成打印功能,本文只针对客户提出样式模板,阐述了报表制作过程,为教学管理部门提供形式多样的报表。

参考文献

1 李斌华,刁明军,文俊,方旭东 VB结合Excel进行数据处理和绘图的工程应用[J]2007

2 (美)Christopher J.Bockmann著,程志锐等译,Visual Basic 程序员实用例子库。

本文来自网络,不代表本站立场,转载请注明出处:https://www.51din.com/a/5498.html

教学,设计,Excel,对象,技术,模板,表格,输出,Range,报表

我的快乐小窝后续将为您提供丰富、全面的关于教学,设计,Excel,对象,技术,模板,表格,输出,Range,报表内容,让您第一时间了解到关于教学,设计,Excel,对象,技术,模板,表格,输出,Range,报表的热门信息。小编将持续从百度新闻、搜狗百科、微博热搜、知乎热门问答以及部分合作站点渠道收集和补充完善信息。