1、课 程 设 计 报 告课程名称 企业资源计划 课题名称 高校学生成绩管理信息系统 专 业 信息管理与信息系统 班 级 学 号 姓 名 指导教师 2016年 11 月 18 日湖南工程学院课 程 设 计 任 务 书课程名称 企业资源计划 课 题 高校学生成绩管理系统 专业班级 信息管理与信息系统1301班 学生姓名 学 号 指导老师 审 批 任务书下达日期 2016 年 11 月 18 日任务完成日期 2016 年 12 月 31 日一、设计内容与设计要求1设计内容:高校学生成绩管理信息系统信管1301班: 17号:学生表、系部表、专业表、班级表、课程代码表、教师代码表等基础数据的增、删、改。
2、814号:正常成绩录入。 1521号:查询某学生某学期成绩,查询某学生全部学期成绩。 2230号:打印班级花名册、班级成绩综合表。图书馆管理系统信管1302班: 16号:图书编目、借阅证管理:对图书信息、读者信息进行增加、删除、修改、查询等维护操作,可以使用excel表批量导入读者信息。 713号:借还管理:实现图书的流通,包括借还、还书、续借、损失归还、丢失处理等操作,对于异常情况自动弹出罚款窗口,登记图书损坏、丢失等异常情况及罚款金额;借还中输入读者借阅证可查询到读者所在部门、可借阅图书、借阅期限、当前所借图书等信息。 1419号:图书查询:根据isbn、条形码、姓名、读者证号、ic卡号、
3、正题名、馆藏地、状态等查询当前图书馆所有图书的外借、在库、丢失、损坏等信息,如果是外借的图书可现实读者的信息以及借出时间和归还时间。结果可导出excel表。 2026号:读者借阅统计:按部门、条形码、借阅证、ic卡号、姓名、正题名、索书号、借书日期、馆藏地等条件查询读者的历史借阅情况,可导出excel表。 2730号:图书借阅统计:按条形码、分类号、正题名、借书日期、 馆藏地等查询图书的借阅情况,包括每册书的借阅次数、每种书的借阅次数以及每个分类号的借阅次数,可导出excel表。2设计要求: (1)本系统可采用C/S、B/S模式进行开发,采用powerbuilder 、C#、JAVA等语言进行
4、界面及程序设计,后端采用SQL Server 2000数据库系统。(2)论述课题的性质、内容以及本次课程设计的目的和要求。说明系统对计算机软、硬件环境的基本要求,对所采用的语言和SQL Server数据库管理系统和C/S模式简要的说明。(3)总体设计方案的分析、比较和论证。(4)数据库的建立,数据库中表的结构,各表中关键字的设置,表与表之间的关系。(5)应用程序各功能模块和报表的设计。(6)编写代码、上机输入、调试、修改并运行通过。(7)编写课程设计说明书。说明书是总结性的技术文件,应全面叙述整个设计的内容及过程(可参考上述6条),发现的问题及解决方法等。(9)说明书应采用A4纸张,文字说明不
5、少于5000字。二、进度安排第十七周:星期一 下午2:006:00,星期二 下午2:006:00 星期三 下午2:006:00第十八周:星期一 下午2:006:00,星期二 下午2:006:00 星期三 下午2:006:00 附:课程设计报告装订顺序:封面、任务书、目录、正文、评分。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;目 录1、系统总体分析11.1 系统功能分析11.2 系统功能模块设计12、
6、数据库设计22.1 数据库需求分析22.2 数据库概念设计32.3数据库逻辑结构设计42.4 程序设计连接53、系统详细设计23.1 Workspace的创建23.2应用程序的创建33.2.1 新建应用对象43.2.2 应用程序的程序代码43.3 建立应用程序主窗口53.4 菜单的设计63.5 系统模块的设计83.6 数据窗口建立103.6.1 d_sinfo_grid数据窗口的建立103.6.2 d_sinfo数据窗体的建立123.7 学籍管理133.7.1. 添加学籍信息133.7.2 修改学籍信息163.7.3 查询学籍信息184、系统的实现205、心得体会236、评分表241、系统总体
7、分析1.1 系统功能分析 系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成的。该学生成绩管理信息系统需要完成的功能主要有:l 有关学籍等信息的输入,包括学生基本信息、所在班级、所学课程和成绩等。l 学生信息的查询,包括学生基本信息、所在班级、已学课程和成绩等。l 学生信息的修改。l 班级管理信息的输入,包括班级设置、年级信息等。l 班级管理信息的查询。l 班级管理信息的修改。l 学校基本课程信息的输入。l 基本课程信息的修改。l 学生课程的设置和修改。l 学生成绩信息的输入。l 学生成绩信息的修改。l 学生成绩信息的查询。l 学生成绩
8、信息的统计。1.2 系统功能模块设计对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图1-1所示的系统功能模块图。用户管理学生信息管理系统成绩信息管理课程信息管理 密码管理班级信息管理学籍信息管理成绩信息查询课程信息添加课程信息修改年级课程设置成绩信息修改成绩信息添加班级信息修改班级信息添加学籍信息查询学籍信息修改学籍信息添加 系统管理图1-1 系统功能模块图2、数据库设计数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求
9、精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。2.1 数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。针对一般学生管理信息系统的需求,通过对学生学习过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:l 学生基本信息:包括的数据项有:学生学号、学生姓名、性别、出生日期、班号、地址等。l 班级信息:包括的数据项有:班级号、班级名、所属系部等。l 课程基本信息:包括的数据项有:课程号、课程名称、课程类别等。l 课程设置信息:包括的数据项有:年级信息、所学课程等。l 学生成绩信息:包括的数
10、据项有:考试编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。2.2 数据库概念设计 得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。 根据上面的设计规划出的实体有:学生实体、班级实体、年纪实体、课程实体。各个实体具体的描述E-R图如下。学生注册学籍管理基本信息插入成绩管理班级设置班级管理课程设置课程信息成绩信息输入班级课程设置图2-1 学生管理信息系统数据流程图2.3数据库逻辑结构设计将数据库概念结构转化为SQL Server 2000数据库系统所支持
11、的实际数据模型,也就是数据库的逻辑结构。表2-1为学生基本信息表。列 名数据类型可否为空说 明student_noINT(4)NOT NULL学生学号(主键)student_nameCHAR(10)NULL学生姓名student_sexCHAR(10)NULL学生性别born_dateDATETIME(8)NULL出生日期class_noINT(4)NULL班级号pol_affiliationCHAR(10)NULL政治面貌表2-1 student_info 学生基本信息表表2-2为教师信息表。列名数据类型可否为空说明teacher_noINT(4)NOT NULL教师号teacher_nam
12、eCHAR(10)NULL教师姓名teacher_dgreeCHAR(10)NULL学历teacher_positionCHAR(10)NULL职称teacher_unitCHAR(10)NULL单位表2-2 teacher _info 教师基本信息表表2-3为课程信息表。列名数据类型可否为空说明course_noINT(4)NOT NULL课程号course_nameCHAR(10)NULL课程名表2-3 coure_info课程信息表表2-4为课程设置数据表列名数据类型可否为空说明course_noINT(4)NOT NULL课程号course_nameCHAR(10)NULL课程名cou
13、rse_kindCHAR(10)NULL类别learn_timeINT(4)NULL总学时teacher_noINT(4)NULL教师号teacher_nameCHAR(10)NULL教师姓名termCHAR(10)NULL学期class_noINT(4)NULL班级号recordFLOAT(8)NULL学分 表2-4 course_set 课程设置数据表表2-5为班级信息表列名数据类型可否为空说明class_noINT(4)NOT NULL班级号class_nameCHAR(10)NULL班级名academyCHAR(10)NULL所属系部表2-5 class_info班级信息表表2-6为成
14、绩信息表列名数据类型可否为空说明student_noINT(4)NOT NULL学号student_nameCHAR(10)NULL姓名course_noINT(4)NULL课程号course_nameCHAR(10)NULL课程名termCHAR(10)NULL学期resultFLOAT(8)NULL成绩recordFLOAT(8)NULL学分表2-6 result_info成绩信息表 表2-7为用户表列名数据类型可否为空说明User_idCHAR(10)NOT NULL用户名称(主键)User_pwdCHAR(10)NULL用户密码表2-7 系统用户表2.4 程序设计连接 在程序设计中可以
15、使用“Database Profile”对话框完成配置和连接,没有定义数据库配置时,需要创建新的数据库配置,步骤如下:1)单击图标,出现“Database Profile”对话框,如图2-2所示。在其中选择要配置的“MSS Microsoft SQL Sever”。2)单击“New”按钮,打开如图2-3所示的“Database Profile Setup”对话框。在“Profile Name”中输入该Profile的名称Student,在“Login ID”中输入连接到数据库的用户名,在“Password”中输入该用户的连接口令。 23图2-2 “Database Profile”对话框 图2
16、-3“Database Profile Setup”对话框3)单击“OK”按钮,返回到“Database Profile”对话框,这时就增加了刚刚配置的Database Profile,如图2-4所示。选中该配置,单击该对话框中的“Connect”按钮,系统将其连接到数据库上。图2-4 “Database Profile Setup”对话框 3、系统详细设计3.1 Workspace的创建 创建Powerbuilder 9.0的程序,首先就需要新建WorkSpace对象,具体实现的过程如下: 1)单击打开“New”对话框,然后在“WorkSpace”标签页选择workspace,单击OK按钮,
17、如图3-1所示。图3-1 New对话框 2)出现如图3-2 所示的对话框,在其中输入新建的workspace的名字。单击保存按钮,Powerbuilder 9.0的界面左上方就多了一个新建的workspace。图3-2 输入WorkSpace名称 3)Powerbuilder 9.0左边框中列出了新建的WorkSpace对象,如图3-3所示。图3-3 WorkSpace对象3.2应用程序的创建 Powerbuilder是个面向对象的开发环境,用它开发的应用程序以对象和事件驱动为基本特征。作为Powerbuilder的对象之一,应用程序对象也有一组事件,当用户运行程序时,首先触发应用程序对象的O
18、pen事件,在这个事件的事件处理程序中可以设置应用的初始状态,装入其他对象、连接数据库等。当用户终止应用程序时,应用程序对象的Close事件被触发,在这个事件的事件处理程序中完成必要的系统清理工作。当程序运行过程中发生严重错误时,应用程序对象SystemError事件被触发,这时可以报告错误类型和性质,以便及时排除错误。由此可见,应用程序对象对开发完美的 Powerbuilder应用程序至关重要。3.2.1 新建应用对象 单击菜单“File|New”或者工具栏上的按钮弹出“New”对话框,如图3-4所示。选择“Target”标签页中的“Application”应用程序对象图标,单击“OK”按钮
19、,在弹出的如图3-5所示对话框中,输入应用程序对象的名字,以及库文件地址和目标文件地址。单击“Finish”按钮,完成应用程序对象的创建。图3-4 生成应用程序对象框架的“向导”对话框 图3-5 生成应用程序对象对话框3.2.2 应用程序的程序代码 应用程序对象的事件一共6个,分别是Open、Close、Idel、SystemError、ConnectionEnd事件。 其中Open事件必须编写事件处理程序,否则整个应用程序就会什么也不做就结束了。应用程序对象的Open事件在启动应用程序时发生,且只发生一次。对所有应用程序来说,都必须对该事件编程,否则运行应用程序时系统将出现一个警告对话框,提
20、醒必须对应用程序对象的Open事件编程。l 完成初始化工作;l 利用INI文件设置某些属性,或初始化一个事物对象;l 查询环境,保证运行应用程序所需的所有资源都可以使用;l 连接要访问的数据库;l 打开应用程序的第一个窗口;在本应用程序对象的Open事件中输入如下的程序代码:/ Profile studentSQLCA.DBMS = MSS Microsoft SQL ServerSQLCA.Database = studentSQLCA.LogPass = SQLCA.LogId = lxSQLCA.AutoCommit = FalseSQLCA.DBParm = connect using
21、 sqlca; /连接事务对象open(w_main) /打开登录窗口 应用程序运行后第一个出现的窗口是上面语句打开的w_main窗口。在应用程序对象的变量定义窗口中定义学生管理信息系统的4个全局变量,如图3-6所示。图3-6 定义全局变量3.3 建立应用程序主窗口系统应用程序的主要功能都是在主窗口w_main及在其下打开的众多窗口中完成的。主窗口的界面如图3-7所示。图3-7 主窗口3.4 菜单的设计 在菜单画面中设计应用程序主窗口所连接的菜单d_mian。该菜单的结构如图3-8所示。图3-8 菜单的结构各个菜单中的程序代码如下:1) “系统”菜单下“登录”子菜单的Clicked事件程序代码
22、:open(w_login)其功能是打开主窗口w_login。2) “系统”菜单下“退出”子菜单的Clicked事件程序代码:close(w_main)其功能是关闭主窗口w_main。3) “学籍管理”菜单下“添加学籍信息”子菜单的Clicked事件程序代码:open(w_add,w_main)其功能是在主窗口w_main上打开窗口w_add。4) “学籍管理”菜单下“查询学籍信息”子菜单的Clicked事件程序代码:open(w_search,w_main)其功能是在主窗口w_main上打开窗口w_search。5) “学籍管理”菜单下“修改学籍信息”子菜单的Clicked事件程序代码:op
23、en(w_sinfo_grid,w_main)其功能是在主窗口w_main上打开窗口w_sinfo_grid。6) “班级管理”菜单下“添加班级信息”子菜单的Clicked事件程序代码:open(w_class_add,w_main)7) “班级管理”菜单下“查询班级信息”子菜单的Clicked事件程序代码:open(w_class_lookfor,w_main)8) “班级管理”菜单下“修改班级信息”子菜单的Clicked事件程序代码:open(w_class_change,w_main)3.5 系统模块的设计 登录窗口的设计登录窗口如图3-9所示。图3-9 登录窗口 该窗口中放置了 2个静
24、态文本框Static Text 控件,分别显示“帐号”和“密码”。放置2个单行编辑框Single line Edit控件,一个提供用户输入登录的用户(sle_user),另一个供用户输入密码。这4个控件放置在一个GroupBox控件上。另外在窗口的下方放置2个按钮控件,分别是“登录”和“取消”。在w_login窗口的Open事件中输入如下的程序代码:int G_input_time=0environment student_envint student_scrwidth,student_scrheightsetredraw(false)getenvironment(student_env)st
25、udent_scrwidth=pixelstounits(student_env.screenwidth,xpixelstounits!)student_scrheight=pixelstounits(student_env.screenheight,xpixelstounits!)move(student_scrwidth - this.width)/2,(student_scrheight - this.height)/2)setredraw(true)p_1.picturename=2.GIF“登录”按钮控件的Click事件用于比较sle_1和sle_2控件中输入的用户名和密码与数据库中
26、保存的是否一致。如果一致,则打开应用程序主窗口,并关闭登录窗口;如果不一致,在3次以内可重新输入,超过3次程序结束。程序代码如下:int G_INPUT_TIME=0string G_USER,G_PWD,correct_PSWDif sle_1.text= thenmessagebox(PayAttention!,用户名不能为空)sle_1.setfocus()elseif sle_2.text= then messagebox(PayAttention!,密码不能为空)sle_2.setfocus()elseG_INPUT_TIME=G_INPUT_TIME+1G_USER=sle_1.t
27、extG_PWD=sle_2.textSELECT user_pwd INTO: correct_PSWD FROM user_info WHERE user_id=:G_USER;if G_PWD=correct_PSWD thenopen(w_main)close(w_login)elseif G_INPUT_TIME = 3 thenmessagebox(警告,输入用户口令次数太多!)close(w_login)elsemessagebox(警告,输入用户口令有误,请重新输入)end ifend ifend if“退出”按钮控件的Click事件中输入如下的程序代码:close(w_log
28、in)3.6 数据窗口建立3.6.1 d_sinfo_grid数据窗口的建立 单击打开“New”对话框,然后在DataWindow标签页选择数据窗口对象的显示风格,在这里选择Grid(网格显示方式)。如图3-9所示。 单击“OK”按钮启动数据窗口对象向导。选择Quick Select数据源,如图3-10所示。 然后单击“Next”按钮,出现Quick Select窗口。在左上方的表格列表中双击要连接的表格student_info。 图3-9 “New”对话框 图3-10 选择数据源 选中该表格后,在参考右上方的列表框中列出了选中表student_info的各个列。单击要选中的多个列,在该窗口下
29、方显示选中的列,如图3-11所示。单击“OK”按钮,出现“Select Color Border Setting”对话框,如图3-12所示。 在其中选择数据窗口的颜色、文字颜色和边框外观,单击“Next”按钮,出现“Ready to Create Grid Data Window”对话框,如图3-13所示。在其中显示当前数据窗口对象的属性。单击其上的“Finish”按钮显示如图3-14所示的数据窗口对象画笔。图3-11 “Quick Select”对话框 图3-12 设置颜色和背景框在其中设置页眉区和细节区的属性。在数据库表中各个列的列名是用英文表示的,在列标题显示的时候将他们设置为中文,具体
30、的属性设置如表所示。图3-13 Ready to Create Grid Data Window对话框 图3-14d_sinfo_grid数据窗口对象编辑单击“保存”图标,出现如图3-15所示的保存对话框,在其中输入数据窗口对象的名称,进行保存。 图3-15 保存窗口 通过上面的操作步骤,一个完整的Grid风格的数据窗口对象就创建完毕。应用程序中窗口上的数据窗口控件可以连接和使用这个创建好的数据窗口对象。3.6.2 d_sinfo数据窗体的建立 d_sinfo数据窗口对象的创建和上面d_sinfo_grid数据窗口对象的方法类似,只不过在这里需要选择数据窗口对象的风格为Freeform。单击打
31、开“New”对话框,然后在DataWindow标签页选择数据窗口对象的显示风格,在这里选择Freeform(网格显示方式)。如图3-16所示 单击“OK”按钮启动数据窗口对象向导。选择Quick Select数据源,然后单击“N”按扭,出现Quick Select窗口。如图3-17所示 图3-16 “New”对话框 图3-17 设置颜色和背景框在左上方的表格列表中双击要连接的表格student_info。选中该表格后,在参考右上方的列表框中列出了选中表student_info的各个列。如图3-17所示。单击“OK”按钮,出现“Select Color Border Setting”对话框。在其
32、中显示当前数据窗口对象的属性。单击其上的“Finish”按钮显示如图3-18所示的额数据窗口对象画笔。图3-18 d_sinfo数据窗口对象的编辑3.7 学籍管理3.7.1. 添加学籍信息 单击打开“New”对话框,然后在PB Object标签页选择数据窗口对象的显示风格,在这里选择Window,如图3-19所示。单击“OK”按钮创建新的窗口对象。在窗口最上方放置一个静态文本框控件,显示窗口的用途“添加学籍信息”。删除、确认以及窗口的退出功能。窗体外观如图3-20。该窗口可以通过选择“学籍管理|添加学籍信息” 图3-19 “New”对话框 图3-20 添加学籍信息窗体在窗口的Open事件中输入
33、他如下的程序代码:dw_1.settransobject(sqlca)dw_1.retrieve()integer G_RowNumberG_RowNumber=dw_1.InsertRow(0)dw_1.setfocus()dw_1.ScrollToRow(G_RowNumber)dw_1.setColumn(1)“前一条”按钮控件的Click事件用于记录向前移动一条,也就是显示前一条记录,其程序代码如下:integer row_currentrow_current=dw_1.ScrollPriorRow()if row_current=1 then MessageBox(警告,这已经是第一
34、条记录!)end if“后一条”按钮控件的Click事件用于显示记录的后一条记录,程序代码如下:integer row_countinteger row_currentrow_current=dw_1.ScrollNextRow()row_count=dw_1.RowCount()if row_current=dw_1.RowCount() then MessageBox(警告,已经是最后一条记录!)end if“添加”按钮控件的Click事件用于用户输入新的记录,其程序代码如下:integer G_RowNumberG_RowNumber=dw_1.InsertRow(0)dw_1.setf
35、ocus()dw_1.ScrollToRow(G_RowNumber)dw_1.setColumn(1)“删除”按钮控件的Click事件用于删除当前所显示的那条记录。其程序代码如下:integer G_RowNumberG_RowNumber=dw_1.getrow()DeleteRow(dw_1,G_RowNumber)“保存”按钮控件的Click事件用于提交和确认对该数据库表格中记录所做的修改,包括插入和删除,如果提交失败,则取消修改,程序代码如下:if update(dw_1,true,false)=1 then dw_1.resetupdate()messagebox(提示,数据保存成
36、功)commit;elserollback;messagebox(错误!,数据保存失败)end if“退出”按钮的Click事件用于关闭该输入窗口。在关闭窗口之前,首先判断用户是否对根据窗口中的记录作了修改而没有保存到数据库中,如果有这样的记录,则出现对话框询问用户是否保存所作的修改,程序代码如下:int MCountint UpdateOrNotMcount=w_add.dw_1.ModifiedCount()if Mcount=0 thenclose(w_add)elseif Mcount0 then UpdateOrNot=MessageBox(保存修改,您更改了数据窗口中的数据,现在是
37、否保存?,Question!,YesNoCancel!)if UpdateOrNot=1 then if update(w_add.dw_1,true,false)=1 thenw_add.dw_1.resetupdate()commit;elserollback;MessageBox(错误!,数据保存失败)end ifclose(w_add)elseif UpdateOrNot=2 then rollback;close(w_add)end ifend if 3.7.2 修改学籍信息选择“学籍管理|修改学籍信息”菜单,将出现如图3-22所示的窗体。在窗口的上方放置一个数据窗口控件dw_1,该
38、控件连接的数据窗口对象是d_sinfo_grid。在窗口的最下面放置3个按钮控件,在其Click事件中分别用来实现删除一条记录、确定所做的修改以及关闭窗口的功能。图3-21 修改学籍信息的窗体在窗口w_sinfo_grid的Open事件中输入如下的程序代码:dw_1.settransobject(sqlca)dw_1.retrieve()“删除”按钮控件的Click事件用于删除信息表中一条信息,其程序代码如下:integer G_RowNumberG_RowNumber=dw_1.getrow()DeleteRow(dw_1,G_RowNumber)“保存”按钮控件的Click事件用于保存用户
39、对信息窗口所做的修改。其程序代码如下:if update(dw_1,true,false)=1 then dw_1.resetupdate()messagebox(提示,数据保存成功)commit;elserollback;messagebox(错误!,数据保存失败)end if“退出”按钮控件的Click事件用于关闭信息管理窗口,返回到主窗口,其程序代码如下:int MCountint UpdateOrNotMcount=w_sinfo_grid.dw_1.ModifiedCount()if Mcount=0 thenclose(w_sinfo_grid)elseif Mcount0 the
40、n UpdateOrNot=MessageBox(保存修改,您更改了数据窗口中的数据,现在是否保存?,Question!,YesNoCancel!)if UpdateOrNot=1 then if update(w_sinfo_grid.dw_1,true,false)=1 thenw_sinfo_grid.dw_1.resetupdate()commit;elserollback;MessageBox(错误!,数据保存失败)end ifclose(w_sinfo_grid)elseif UpdateOrNot=2 then rollback;close(w_sinfo_grid)end if
41、end if3.7.3 查询学籍信息选择“学籍管理|查询学籍信息”菜单,将出现如图3-23所示的窗体。在这里可以按照各种方式进行查询。图3-22 查询学籍信息窗体窗口的上面有一个数据窗口控件,连接了前面创建的数据窗口对象d_sinfo_grid。在数据窗口控件下方有2个下拉列表框DorpDownlistBox控件。其中ddlb_1提供用户选择要查询的列(学号、姓名、性别等),ddlb_2提供给用户选择要查询的符号(、=等)。另外还放置一个单行编辑框控件,提供给用户在其中输入要查询的内容。ddlb_1的“Items”属性页如图3-23所示。 图3-23 ddlb_1的Items属性页 图3-24
42、 ddlb_2的Items属性页ddlb_2的“Items”属性页如图3-25所示。查询条件的下面放置有3个按扭控件,在其Click事件中分别用来实现学籍信息的查询、打印以及退出的功能。窗口的Open事件中输入如下的程序代码:dw_1.settransobject(sqlca)dw_1.retrieve()“查询”按钮控件的Click事件用于执行条件查询,并将结果显示在数据窗口中,其程序代码如下:string lookforwhat1int current_rowint total_rowint find_rowlookforhow1=ddlb_2.textif ddlb_1.text=学号 then lookforitem1=student_idelseif ddlb_1.text=姓名 then lookforitem1=student