基于一卡通及水晶报表的 高校成绩自助打印系统研究

2014-07-31 19:17许子乾余蜀宜王丽鋆何兴芳
中国教育信息化·高教职教 2014年5期
关键词:教务管理一卡通

许子乾+余蜀宜+王丽鋆+何兴芳

摘 要:高校成绩单打印是高校教务管理日常工作之一,具有重复性、关键性等特点。本案例以Microsoft Visual Studio 2010为开发平台,结合Crystal Reports(水晶报表)工具,集成高校目前已普遍使用的校园一卡通系统,开发基于校园一卡通和水晶报表的无人值守成绩自助打印系统,实现全自动无人工干预的高校成绩单打印服务,减轻了教务管理人员的工作,提高了教务管理的信息化水平和服务质量。

关键词:一卡通;水晶报表;自助打印;教务管理

中图分类号:G473,TP311 文献标志码:A 文章编号:1673-8454(2014)09-0084-04

引言

随着校园一卡通的应用普及,各种基于“一卡通”的自助应用成为近几年发展起来的新型服务模式,据统计国内约有130多家高校开展了这项服务。[1]在发达国家,多和银联卡关联,而在国内,由于校园一卡通应用比较普遍,多与校园一卡通系统进行应用对接,实现全天候无人值守的自助应用。[2]

高校学生成绩管理是高校教务管理的核心部分,随着我国经济发展和国内外高校联系日益增多,学生就业、出国等各项活动对成绩单的需求非常大,而目前大多数教务管理系统还是采取人工查询打印的方式,成绩单打印成为一项烦琐的任务,而学生成绩作为高校教务管理的关键数据,无法作为公共数据分发给学生自行打印,因此通过计算机建立学生成绩自助打印系统,实现无人工干预的成绩单自助打印,可以最大限度地满足学生需求,将管理人员从单一、繁杂的日常工作中解脱出来。

一、数据结构和功能流程

数据结构是程序设计的基础,主要研究数据元素之间抽象化的相互关系和这种关系在计算机中的存储表示,并对这种结构定义相适应的运算,设计出相应的算法。[3]成绩自助打印系统的核心数据结构为成绩表结构,成绩表的设计应尽量考虑系统需要,易于系统地读取和操作,学生成绩作为系统关键数据,同时应特别注重与课程、计划数据的一致性,杜绝成绩单与专业培养方案不一致的错误。

1.学生成绩表数据结构

学生成绩表作为教务系统核心表,承载着大量的数据查询、插入、更新和删除操作,成绩表的设计必须为全信息列格式,即成绩表结构尽可能多地涵盖信息,如学号、姓名、专业、班级、课程、考试性质、修读性质、成绩、绩点等。具体到表的内容形式为链接表形式,即成绩表中只存储相关字段标识,以外键的形式关联字段相关具体信息,保证数据的一致性和可扩展性。针对国内高校教务教学的一般特点,学生成绩由四部分教务数据构成(见图1),体现了教务管理的连续性,同时保证了系统数据的一致性。

2.成绩自助打印功能流程

成绩自助打印系统功能难点在于软硬件的控制与对接,即成绩打印软件与学生信息验证、扣费系统的对接和控制。系统由读卡器、PC、打印机、以太网、数据库服务器和管理软件组成,通过网络实现信息读取、费用支付双向工作流。(见图2)

系统采用单向工作流程,首先由学生提交学生学号信息,采用输入或读卡的交互形式,后台验证后提取成绩信息进入缴费环节,不成功则返回验证环节重新验证,待缴费成功后发出打印指令,完成打印,缴费不成功则返回缴费环节等待缴费。

二、系统设计

1.水晶报表特点

水晶报表(Crystal Reports)是一个功能强大的报表工具,通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。[4]拉模型中,与数据库的连接和为了获取数据而执行的SQL 命令都同时由Crystal Reports本身处理,不需要开发人员编写有关数据的代码。这种情况适合于对数据库中的记录进行简单浏览,不需要进行复杂检索的情况。本系统采取推模型的方式,即由开发人员编写代码以连接到数据库,执行SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象通过固定的数据集架构传递给报表。

2.系统功能设计

系统由三部分组成,信息验证模块,扣费模块和成绩打印模块。以校园一卡通为信息中间件,实现成绩信息与一卡通信息对接。

(1)信息验证模块

信息验证模块实行双向验证形式,即通过读取卡面信息,返回学号和姓名,与教务管理系统验证,双向通过无误后,再进入下一模块。双向验证主要考虑到校园一卡通和教务管理系统分属不同的业务系统,通过双向验证可以保证数据一致,避免错读。如已实现校园信息一体化管理,则只需单向验证即可。

(2)扣费模块

信息验证完成后进入扣费模块,该模块通过调用学校设置的收费条件,结合学生打印要求进行扣费处理,建立“一卡通—财务—教务”完整的握手机制。

(3)成绩打印模块

系统拟采用一体化柜机设计,由触摸屏PC机与打印机以组合柜的形式实现人机交互,管理员只需要定时填充已盖章的打印纸,即可实现无人值守的自助打印。

三、实际案例

通过对已有教务系统数据结构的解析和整理,以VS2010 C#+Crystal Reports 13.0为开发工具开发南京林业大学成绩自助打印系统,共分数据库操作、成绩单报表设计、成绩表映射和一卡通扣费打印四个核心模块。

1.数据库操作模块设计

此模块用来管理所有数据库操作,包括数据的提取、更新、删除等操作。关键代码如下:

///操作数据库的构造函数

///

///连接数据库的字符串

///

public mySqlDB(string connectStr)

{

m_sqlConnection = new SqlConnection(connectStr);

m_sqlCommand = new SqlCommand();

m_sqlCommand.Connection = m_sqlConnection;

m_sqlAdapt = new SqlDataAdapter();

}

///执行更新、删除等非查询语句的sql

///

///执行的语句

/// 受影响的记录条数

public int excuteNoQueryCommand(string strSql)

{

m_sqlCommand.CommandText = strSql;

m_sqlConnection.Open();

int effectInt = m_sqlCommand.ExecuteNonQuery();

m_sqlConnection.Close();

return effectInt;

}

2.成绩单报表模块设计

成绩单报表采用Crystal Reports设计器进行结构设计,考虑到高校成绩单的特点,采用双联显示的方式进行报表设计,根据水晶报表的特点,本系统采用子报表的形式,通过构建2个相同的成绩表结构,映射到不同的子报表a、b。(见图3)

endprint

3.成绩表映射模块

本模块实现动态的成绩表映射功能,将数据库提取的成绩信息映射到已经设计好的水晶报表中,呈现至交互界面。核心代码示例如下:

/// 获取数据表

///

///查询数据表语句

///

Private datatable getscoretable(string sql)

{

DataTable dt = mysql.get_table_FilledValues(sql);

Return dt;

}

///映射数据表至报表数据源

///

///查询数据表语句

///

Private void setscoretable(datatable resultdt)

{

DataSet1.DataTable1DataTable dtx1 = new DataSet1.DataTable1DataTable();

for (int i = 0; i < resultdt.rows.count; i++)

{

dtx1.Rows.Add(dtx1.NewRow());

for (int j = 0; j < resultdt.Columns.Count; j++)

{

dtx1.Rows[i][j] = resultdt.Rows[i][j].ToString();

}

}

myReport.Subreports[0].SetDataSource(dtx1 as DataTable);

//绑定数据集,一个报表用一个数据集

crystalReportViewer1.ReportSource = myReport;

crystalReportViewer1.RefreshReport();

}

4.一卡通扣费及打印模块

本模块通过“读取打印任务——扣费——打印”的流程实现最终的打印任务。因实现无人值守的自助打印,需要做到最大化容错处理。因此在代码实现时采用“读取打印任务——预扣费——打印——成功最终扣费”的流程,避免因打印纸张缺失或者打印机失灵而产生扣费未打印的错误。核心模块代码示例如下:

/// 卡片消费(可以脱机)采用一卡通第三方提供的接口

///

///第三方操作的整体数据包,要求必须填入卡号

/// pCardCons->RetCode是后台交易的返回值

///是否验证累计消费额,如果超过累计消费额,则需要输入消费密码。

///输入参数,超时时间(秒),缺省值为10秒。

///见返回值列表

[DllImport("AIO_API.dll")]//获取第三方动态链接库

public static extern int TA_Consume(ref CardConsume pCardCons, bool IsVerfy, short TimeOut);

需要指出的是,目前大多数高校采用的校园一卡通和教务管理系统是相互独立的业务系统,自助打印系统需通过调用双方的程序接口,实现数据交互。

5.系统界面

整个系统部署在触屏PC打印一体机上,系统兼容windows系列,实现的软硬件界面如图4、5所示:

系统采用的是内嵌式控制端,通过硬件厂商定制的PC打印触屏一体机,实现软硬件一体化控制,用户通过触摸屏与系统进行人机交互,全部信息均在触摸屏上显示,操作流程更加简洁、直观、易用,优化了用户使用时的体验效果。

四、结论

1.提高工作效率,节约工作成本

无人值守的自助成绩单系统改变了传统业务的管理和服务模式,可以在宿舍区、图书馆等公共场所分布式部署,用户可以就近快捷地自我服务,从而有效地解决了设备闲置和纸张浪费的现象。同时采用触摸式终端,很好地解决了安全性和便捷性的问题,方便学生操作。

2.整合教务资源,促进高校信息一体化

成绩自助打印系统具有很好的扩展性,目前除了成绩打印外,在校生证明、等级考试成绩单等需求量大的教务证明也已经或即将实现自助打印。该系统本身也承载了校园一卡通系统和教务管理系统数据的对接和交互,为校园信息一体化、解决目前高校信息化过程中出现的“信息孤岛”现象提供了参考。

参考文献:

[1]杭州联创信息技术公司.联创校园自助打印复印系统[EB/OL].http://www.unifound.net/product/664.htm.

[2]陈光锋,唐步明,罗天龙,徐强. 一种改进的校园自助打印复印系统研究[J].浙江科技学院学报,2012 (1):39-43.

[3]杨克领.高校学生成绩管理系统数据结构设计[J].江西科学,2012(4):536-537,558.

[4]董淑娟,张瑞青.基于C#的水晶报表的数据集架构研究及应用[J].电脑知识与技术,2012(17): 4115-4118.

(编辑:王天鹏)

endprint

3.成绩表映射模块

本模块实现动态的成绩表映射功能,将数据库提取的成绩信息映射到已经设计好的水晶报表中,呈现至交互界面。核心代码示例如下:

/// 获取数据表

///

///查询数据表语句

///

Private datatable getscoretable(string sql)

{

DataTable dt = mysql.get_table_FilledValues(sql);

Return dt;

}

///映射数据表至报表数据源

///

///查询数据表语句

///

Private void setscoretable(datatable resultdt)

{

DataSet1.DataTable1DataTable dtx1 = new DataSet1.DataTable1DataTable();

for (int i = 0; i < resultdt.rows.count; i++)

{

dtx1.Rows.Add(dtx1.NewRow());

for (int j = 0; j < resultdt.Columns.Count; j++)

{

dtx1.Rows[i][j] = resultdt.Rows[i][j].ToString();

}

}

myReport.Subreports[0].SetDataSource(dtx1 as DataTable);

//绑定数据集,一个报表用一个数据集

crystalReportViewer1.ReportSource = myReport;

crystalReportViewer1.RefreshReport();

}

4.一卡通扣费及打印模块

本模块通过“读取打印任务——扣费——打印”的流程实现最终的打印任务。因实现无人值守的自助打印,需要做到最大化容错处理。因此在代码实现时采用“读取打印任务——预扣费——打印——成功最终扣费”的流程,避免因打印纸张缺失或者打印机失灵而产生扣费未打印的错误。核心模块代码示例如下:

/// 卡片消费(可以脱机)采用一卡通第三方提供的接口

///

///第三方操作的整体数据包,要求必须填入卡号

/// pCardCons->RetCode是后台交易的返回值

///是否验证累计消费额,如果超过累计消费额,则需要输入消费密码。

///输入参数,超时时间(秒),缺省值为10秒。

///见返回值列表

[DllImport("AIO_API.dll")]//获取第三方动态链接库

public static extern int TA_Consume(ref CardConsume pCardCons, bool IsVerfy, short TimeOut);

需要指出的是,目前大多数高校采用的校园一卡通和教务管理系统是相互独立的业务系统,自助打印系统需通过调用双方的程序接口,实现数据交互。

5.系统界面

整个系统部署在触屏PC打印一体机上,系统兼容windows系列,实现的软硬件界面如图4、5所示:

系统采用的是内嵌式控制端,通过硬件厂商定制的PC打印触屏一体机,实现软硬件一体化控制,用户通过触摸屏与系统进行人机交互,全部信息均在触摸屏上显示,操作流程更加简洁、直观、易用,优化了用户使用时的体验效果。

四、结论

1.提高工作效率,节约工作成本

无人值守的自助成绩单系统改变了传统业务的管理和服务模式,可以在宿舍区、图书馆等公共场所分布式部署,用户可以就近快捷地自我服务,从而有效地解决了设备闲置和纸张浪费的现象。同时采用触摸式终端,很好地解决了安全性和便捷性的问题,方便学生操作。

2.整合教务资源,促进高校信息一体化

成绩自助打印系统具有很好的扩展性,目前除了成绩打印外,在校生证明、等级考试成绩单等需求量大的教务证明也已经或即将实现自助打印。该系统本身也承载了校园一卡通系统和教务管理系统数据的对接和交互,为校园信息一体化、解决目前高校信息化过程中出现的“信息孤岛”现象提供了参考。

参考文献:

[1]杭州联创信息技术公司.联创校园自助打印复印系统[EB/OL].http://www.unifound.net/product/664.htm.

[2]陈光锋,唐步明,罗天龙,徐强. 一种改进的校园自助打印复印系统研究[J].浙江科技学院学报,2012 (1):39-43.

[3]杨克领.高校学生成绩管理系统数据结构设计[J].江西科学,2012(4):536-537,558.

[4]董淑娟,张瑞青.基于C#的水晶报表的数据集架构研究及应用[J].电脑知识与技术,2012(17): 4115-4118.

(编辑:王天鹏)

endprint

3.成绩表映射模块

本模块实现动态的成绩表映射功能,将数据库提取的成绩信息映射到已经设计好的水晶报表中,呈现至交互界面。核心代码示例如下:

/// 获取数据表

///

///查询数据表语句

///

Private datatable getscoretable(string sql)

{

DataTable dt = mysql.get_table_FilledValues(sql);

Return dt;

}

///映射数据表至报表数据源

///

///查询数据表语句

///

Private void setscoretable(datatable resultdt)

{

DataSet1.DataTable1DataTable dtx1 = new DataSet1.DataTable1DataTable();

for (int i = 0; i < resultdt.rows.count; i++)

{

dtx1.Rows.Add(dtx1.NewRow());

for (int j = 0; j < resultdt.Columns.Count; j++)

{

dtx1.Rows[i][j] = resultdt.Rows[i][j].ToString();

}

}

myReport.Subreports[0].SetDataSource(dtx1 as DataTable);

//绑定数据集,一个报表用一个数据集

crystalReportViewer1.ReportSource = myReport;

crystalReportViewer1.RefreshReport();

}

4.一卡通扣费及打印模块

本模块通过“读取打印任务——扣费——打印”的流程实现最终的打印任务。因实现无人值守的自助打印,需要做到最大化容错处理。因此在代码实现时采用“读取打印任务——预扣费——打印——成功最终扣费”的流程,避免因打印纸张缺失或者打印机失灵而产生扣费未打印的错误。核心模块代码示例如下:

/// 卡片消费(可以脱机)采用一卡通第三方提供的接口

///

///第三方操作的整体数据包,要求必须填入卡号

/// pCardCons->RetCode是后台交易的返回值

///是否验证累计消费额,如果超过累计消费额,则需要输入消费密码。

///输入参数,超时时间(秒),缺省值为10秒。

///见返回值列表

[DllImport("AIO_API.dll")]//获取第三方动态链接库

public static extern int TA_Consume(ref CardConsume pCardCons, bool IsVerfy, short TimeOut);

需要指出的是,目前大多数高校采用的校园一卡通和教务管理系统是相互独立的业务系统,自助打印系统需通过调用双方的程序接口,实现数据交互。

5.系统界面

整个系统部署在触屏PC打印一体机上,系统兼容windows系列,实现的软硬件界面如图4、5所示:

系统采用的是内嵌式控制端,通过硬件厂商定制的PC打印触屏一体机,实现软硬件一体化控制,用户通过触摸屏与系统进行人机交互,全部信息均在触摸屏上显示,操作流程更加简洁、直观、易用,优化了用户使用时的体验效果。

四、结论

1.提高工作效率,节约工作成本

无人值守的自助成绩单系统改变了传统业务的管理和服务模式,可以在宿舍区、图书馆等公共场所分布式部署,用户可以就近快捷地自我服务,从而有效地解决了设备闲置和纸张浪费的现象。同时采用触摸式终端,很好地解决了安全性和便捷性的问题,方便学生操作。

2.整合教务资源,促进高校信息一体化

成绩自助打印系统具有很好的扩展性,目前除了成绩打印外,在校生证明、等级考试成绩单等需求量大的教务证明也已经或即将实现自助打印。该系统本身也承载了校园一卡通系统和教务管理系统数据的对接和交互,为校园信息一体化、解决目前高校信息化过程中出现的“信息孤岛”现象提供了参考。

参考文献:

[1]杭州联创信息技术公司.联创校园自助打印复印系统[EB/OL].http://www.unifound.net/product/664.htm.

[2]陈光锋,唐步明,罗天龙,徐强. 一种改进的校园自助打印复印系统研究[J].浙江科技学院学报,2012 (1):39-43.

[3]杨克领.高校学生成绩管理系统数据结构设计[J].江西科学,2012(4):536-537,558.

[4]董淑娟,张瑞青.基于C#的水晶报表的数据集架构研究及应用[J].电脑知识与技术,2012(17): 4115-4118.

(编辑:王天鹏)

endprint

猜你喜欢
教务管理一卡通
新形势下高校二级学院教务管理优化路径探析
基于“一卡通”开发的员工信息识别系统
公共交通一卡通TSM平台研究
有关开设跨文化课程优化教务管理的讨论
“银医一卡通”在提高医院优质服务中的作用
住建部、交通运输部:“一卡通”互联互通应统—标准