毕业设计-图书管理系统_第1页
毕业设计-图书管理系统_第2页
毕业设计-图书管理系统_第3页
毕业设计-图书管理系统_第4页
毕业设计-图书管理系统_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计阐明书图书管理系统学生姓名:平晋昇学号:H0491B11学院:中北大学成人教育学院专业:计算机科学技术指导教师:马巧梅10月图书管理系统摘要本文首先介绍了数据库管理系统(DBMS)的基本概念及关系模型等。然后对问题的来源进行进一步分析,指出图书借阅者、图书馆工作人员和图书馆管理人员是问题重要来源,并指出本数据管理系统的实用性功效就是管理好图书馆信息,提高工作效率,避免数据解决手工操作,工作量大,出错率高的弊端。接着对需求分析进行细致的分析,特别对图书借阅者、图书馆工作人员和图书馆管理人员三者权限进行分派。接着对系统功效模块进行分析,指出本系统功效模块重要分为“图书资料管理”模块、“学生资料管理”模块、“借还书操作”模块。总的来说,本图书管理系统,介绍了该系统构成构造、功效特点、使用原理和办法,本系统实现了系统登陆、图书管理、学生管理图书的借阅与偿还、图书借阅排行榜和查看逾期未还图书以及多种信息的打印等功效。有了这个系统就使图书馆的工作变得简朴了许多,使图书馆的图书管理形成了一种整体自动化管理模式。核心词:VisualForPro6.0,数据库管理,SQL语言,图书管理目录1绪论‌‌‍……………11.1系统开发背景和意义………11.2开发环境……………………12总体设计………………………12.1应用需求分析………………12.2模块分析……………………22.2.1功效模块图……………2.2.2模块分析………………3具体设计………………………33.1设计创立数据库……………33.1.1设计数据库………………3.1.2创立数据库………………3.2创立系统主程序……………63.3创立系统惯用类……………73.3.1创立“移动统计工具栏”类…………3.3.2创立“命令按钮工具栏”类…………3.4创立系统主表单…………93.4.1系统主表单的功效……………………3.4.2创立系统主表单界面……………………3.4.3添加表单代码………3.4.4创立系统主表单辅助表单……………3.5创立“读者借书统计”模块…………………323.5.1主表单的功效…………3.5.2创立主表单界面………3.5.3添加主表单代码………3.5.4创立辅助表单…………3.6创立系统打印功效………444结论……………………45参考文献……………………47致谢……………481绪论1.1系统开发背景和意义图书管理是高校内每一种系部或院部都必须切实面对的工作,传统的人工方式存在着许多缺点,如效率低、保密性差且较为繁琐。另外,随着图书资料数量的增加,其工作量也将大大增加,这必将增加图书资料管理者的工作量和劳动强度,这将给图书资料信息的查找、更新和维护都带来了诸多困难。随着科学技术的不停提高,这种传统的手工管理办法必然被以计算机为基础的信息管理办法所取代。图书管理作为计算机应用的一种分支,有着手工管理无法比拟的优点,如检索快速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率。因此,开发一套能够为顾客提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。1.2开发环境开发环境的选择会影响到数据库的设计,因此在这里给出图书管理系统开发与运行环境的选择以下:开发环境:WindowsXP开发工具:VisualForPro6.02总体设计2.1应用需求分析图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅状况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书规定进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功效最为复杂,涉及对工作人员、图书借阅者、图书进行管理和维护及系统状态的查看、维护并生成催还图书报表。图书借阅者可直接查看图书馆图书状况,如果图书借阅者根据本人借书证号和密码登录系统,还能够进行本人借书状况的查询和维护部分个人信息。普通状况下,图书借阅者只应当查询和维护本人的借书状况和个人信息,若查询和维护其它借阅者的借书状况和个人信息,就要懂得其它图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,因此不仅满足了图书借阅者的规定,还保护了图书借阅者的个人隐私。图书馆工作人员有修改图书借阅者借书和还书统计的权限,因此需对工作人员登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可觉得图书借阅者加入借书统计或是还书统计,并打印生成对应的报表给顾客查看和确认。图书馆管理人员功效的信息量大,数据安全性和保密性规定最高。本功效实现对图书信息、借阅者信息、总体借阅状况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员能够浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息。2.2模块分析2.2.1功效模块图还书操作借书操作借还书操作图书资料管理图书管理系统学生资料管理资料打印资料查询资料删除资料修改逾期图书书籍排行还书操作借书操作借还书操作图书资料管理图书管理系统学生资料管理资料打印资料查询资料删除资料修改逾期图书书籍排行资料添加资料添加2.2.2模块分析2.2.2.1“图书资料管理”模块“图书资料管理”模块重要实现图书资料的分条浏览、添加、修改、删除、查询和打印功效。在表单的“书籍资料”页框中能够通过“移动统计工具栏”分条查看系统内全部的图书的具体资料,涉及图书的名称、类别、作者、出版社、购置日期等。单击“命令按钮工具栏”中的按钮能够对“书籍资料”页框中的统计进行对应的操作。2.2.2.2“学生资料管理”模块“学生资料管理”模块重要实现学生资料的分条浏览、添加、修改、删除、查询和打印功效。在表单的“学生资料”页框中能够通过“移动统计工具栏”分条查看系统内全部的学生具体资料,涉及学生姓名、性别、系别、班级等资料。单击“命令按钮工具栏”中的按钮能够对“学生资料”页框中的统计进行对应的操作。2.2.2.3“借还书操作”模块“借还书操作”模块重要实现读者借书统计的查看、借还书操作、图书借阅排行榜、查看逾期未偿还图书和统计打印等功效。读者借书统计查看功效能够查看全部的借书统计,也能够只查看现在尚未偿还的借书统计。在“读者借书统计”表单中单击“借书”按钮,在打开的“输入”表单中,输入要借出的图书编号,如果该图书在馆中并且该读者还能借书,则借书成功。“读者借书统计”表单中单击“还书”按钮,在打开的“输入”表单中输入要偿还的图书的图书编号,如果该图书是被现在读者借出,则还书成功。当表单中显示的是读者未偿还的图书列表时,在列出借书统计的表格中双击要偿还的图书的“图书编号”栏即可将此图书还入。在“读者借书统计”表单中,单击“过期”按钮,能够查看系统内到了偿还日期而未偿还的图书的借阅统计。在“读者借书统计”表单中,单击“排行”按钮,能够查看系统内借阅次数在全部图书内排行前10名的图书的列表。3具体设计3.1设计创立数据库3.1.1本系统实现了系统登录功效,而系统登录需要账号和密码,这就需要创立一种“系统帐号”(Accounts)数据表,用来存储系统登录用的账号和密码。本系统要实现图书资料和学生资料的管理,因此需要创立“学生信息”(Student)数据表和“图书信息”(Book)数据表。“学生信息”(Student)数据表中包含了学生的“系别”信息,在本系统中为了简化系别的管理,另外创立了一种“系别”(Xibie)数据表用来存储系别的信息,在“学生信息”(Student)数据表中只存储系别的编号。由于系统要实现读者借还书功效、还要实现读者借还书统计的查看,因此还需创立一种“读者借书统计”(JyRec)数据表来保存读者的借阅统计。3.1.2“图书借阅管理系统”作为一种完整的数据库管理系统,在创立阶段运用项目管理器能够更加好组织管理多种格式的文献,因此首先需要创立一种项目,然后在项目管理器创立其它格式的文献。在VFP主窗口中选择“文献”菜单下“新建”子菜单,在打开的“新建”对话框的“文献类型“区域中选中”项目”,然后单击右侧的”新建文献”按钮,打开”创立“对话框中的”项目文献“文本框中输入项目名称,在此输入"Tushu”,单击“保存”按钮即创立了一种项目。在项目管理器的“数据”选项卡中选中“数据库”单击右侧的“新建”按钮,在弹出的“新建数据库”对话框中单击“新建数据库”,在弹出的“创立”对话框的“数据库名”文本框中输入数据库的名称,在此输入“Tushu”作为数据库名,单击“保存“按钮即创立了一种空的数据库。在项目管理器的“数据”选项卡中打开刚刚创立的“Tushu”数据库的目录树,选中“数据表”,单击右侧的“新建”按钮即可开始数据表的创立。本系统中要用到的数据表的字段的属性设立分别设立以下。“系统账号”(Accounts)数据表的宇段属性设立如表3.1所示。表3.1“系统帐号”(Accounts)数据表字段属性设立字段名数据类型阐明帐号字符型字段宽度20,主索引字段,不能为空密码字符型字段宽度20姓名字符型字段宽度20创立“系统账号”(Accounts)数据表后向数据库中添加一条统计作为系统的默认帐号,该统计的各字段的值以下:“pjs”,“pjs”,“平晋昇”。“学生信息”(Student)数据表各字段的属性设立如表3.2所示。表3.2“学生信息”(Student)数据表字段属性设立字段名数据类型阐明学号字符型字段宽度6,主索引字段,输入掩码为“999999”姓名字符型字段宽度20性别字符型字段宽度2系别字符型字段宽度4,为普通索引班级字符型字段宽度10电话字符型字段宽度12,输入掩码为“999##9999999”邮件字符型字段宽度30地址字符型字段宽度30“系别信息”(Xibie)数据表各字段的属性设立如表3.3所示表3.3“系别信息”(Xibie)数据表字段属性设立字段名数据类型阐明系别号字符型字段宽度4,主索引字段,输入掩码为“9999”名称字符型字段宽度20“图书信息”(Book)数据表各字段的属性设立如表3.4所示表3.4“图书信息”(Tushu)数据表字段属性设立字段名数据类型阐明图书编号字符型字段宽度6,主索引字段,输入掩码为“AA9999”图书类别字符型字段宽度10图书名称字符型字段宽度40图书作者字符型字段宽度20出版社字符型字段宽度40购置日期日期型字段宽度8购置价格货币型字段宽度8借阅次数数值型字段宽度4,默认值0与否借出逻辑型字段宽度1,默认值“.F.”对“图书信息”(Book)数据表的字段属性设立需要阐明的是“借阅次数”和“与否借出”字段的默认值一定要设立,由于对于新添加的图书,其一定是没有被借出的,并且其借阅次数一定是0,因此在表单中向数据表添加统计时,这两个字段应当是不需要添加的,能够由默认值生成。“读者借书统计”(JyRec)数据表的字段属性如表3.5所示。表3.5“读者借书统计”(JyRec)数据表字段属性设立字段名数据类型阐明学号字符型字段宽度6,普通索引字段,输入掩码为“999999”图书编号字符型字段宽度6,普通索引字段,输入掩码为“AA9999”借阅日期日期型字段宽度8偿还日期日期型字段宽度8数据表之间的关系,将在具体表单的数据环境中设立。3.2创立系统主程序VFP应用程序系统需要创立一种主程序来驱动各个表单,在项目管理器的“代码”选项卡中选中“程序”,单击“新建”按钮,即可打开程序编辑窗口本系统中需要创立一种程序main.prg,用来设立系统的工作环境,并驱动其它的程序和表单。将一种文献设为项目主文献的办法是在项目管理器中选中该文献,然后在右键快捷菜单中选择“设为主文献”子菜单或者选择“项目”菜单下“设为主文献”子菜单即可。一种文献设为项目的主文献后,该文献的将以粗体显示main.prg程序的代码为:SETTALKOFFSETSAFETYOFF&&覆盖时不要确认SETSTATBAROFF&&将状态栏关闭SETSYSMENUOFF&&可关掉VFP系统菜单之区域SETSYSMENUTO&&关闭系统菜单SETCENTURYON&&显示四位年代_Screen.VISIBLE=.F.DOFORMLogon3.3创立系统惯用类系统主表单中“学生资料”和“书籍资料”页框控件中都需要用到“移动统计工具栏”和“命令按钮工具栏”,这两个命令按钮工具栏如果在表单中分别创立会使工作变得繁琐,能够采用创立工具栏类,然后在表单中用实例化的方式来简化工作。3.3.1创立“移动统计工具栏”类“移动统计工具栏”类基于“CommandGroup”基类,存储于“AdminButton”可视类库中,命名为“MoveRecord”。“移动统计工具栏”类涉及“首统计”、“上一种”、“下一种”和“末统计”4个按钮,在表单中能够运用这4个按钮定位数据表中的统计指针。创立好的"移动统计工具栏"类效果以下图所示。需要指出的是,在本系统中当鼠标移动到按钮上时,鼠标指针变为一种特定指针,这就需要一种鼠标指定文献,在本系统中使用“H_point.cur”文献,将该鼠标指针文献放在系统的根目录下,添加按钮“MouseMove”事件以下:LPARAMETERSnButton,nShift,nXCoord,nYCoordThis.MousePointer=99This.MouseIcon=SYS(5)+"h_point.cur"3.3.2创立“命令按钮工具栏“命令按钮工具栏”类基于“CommandGroup”基类,存储于“AadminButton”可视类库中,命名为“AdmButGrp”。“命令按钮工具栏”类中包含“增加”(CmdAdd)、“修改”(Cmdmod)、“删除”(Cmddel)、“查询”(CmdSer)、“打印”(Cmdpri)、“保存”(CmdSave)、“取消”(CmdCancel)和“退出”(CmdExit)8个按钮。由于“命令按钮工具栏”类中的按钮在不同的表单中的作用不同,因此不必在类中添加控钮的代码,能够采用在表单中将类实例化后再添加代码的方式。设立“命令按钮工具栏”类及其控件的属性如表3.6所示。表3.6“命令按钮工具栏”类及其控件属性控件属性属性取值ambutgrpButtonCount8Height330Width60按钮控件FontBold.T.FontSize15FontName楷体GB_2312Height35Width60cmdaddCaption新增ToolTipText新增统计cdmodCapion修改ToolTipText修改现在统计cmddelCapion删除ToolTipText删除现在统计mdserCapion查询ToolTipText查询现在统计cdsaveCapion保存ToolTipText保存修改cdcancelCapion取消ToolTipText取消修改cmdpriCapion打印ToolTipText打印现在统计CmdexitCapion退出ToolTipText退出现在表单创立好的表单效果如右图所示与“移动统计工具栏”类相似,为了变化鼠标停留在按钮时的指针,还需添加按钮的“MouseMove”事件,代码与“移动统计工具栏”类中的相似。3.4创立系统主表单系统主表单由两个选项卡构成,下面分别介绍这两个选项卡的创立。3.4.1系统主表单的功效系统主表单在提供系统界面的同时还包含一种含有两个页框的页框控件,系统运用这两个页框控件来管理“学生信息”(Student)数据表和“图书信息”(Book)数据表中的数据,运用这两个页框能够对这两张数据表中的数据进行查看、添加、修改、删除、查询和打印等操作。同时,系统主表单还将用来调用系统的借还书模块。3.4.2创立系统主表单界面在“表单设计器”中创立一种表单作为系统主表单,命名为“MainForm”。创立好的表单效果中有两个页框,其中“学生资料”页面效果如右图所示。创立好的“书籍资料”页框效果如右图所示。将“学生信息”(Student)数据表、“系别信息”(Xibie)数据表、“图书信息”(Book)数据表、“读者借书统计”(JyRec)数据表添加到表单的数据环境中,用“系别信息”(Xibie)数据表的“系别号”字段和“学生信息”(Student)数据表的“系别”索引建立关联。在表单的数据环境中,“学生信息”(Student)数据表和“图书信息”(Book)数据表的BufferModeOverRide属性设立为“3-开放式缓冲”,Exclusive属性设立为“.T.”。设立系统主表单属性如表3.7所示。表3.7系统主表单(MainForm)属性设立表单属性取值AutoCenter.T.BorderStyle2-固定对话框BufferMode0ControlBox.T.Caption图书借阅管理系统Closable.F.DeskTop.F.Hight385Width612NameMainFormMdiForm.T.MaxButton.T.Picturebg.bmpMinButton.T.ShowWindow2-作为顶层表单ShowTips.T.TitleBar1-打开WindowState0-普通WindowType1-模式设立好系统主表单属性后向表单中添加两个页框控件,将页框控件的第一种页面作为“学生资料”(StuPage)页面,使页框控件处在编辑状态,然后从数据环境中将要在“学生资料”页面中显示的字段拖放到表单中,并将“性别”字段生成的文本框控件删除,再添加一种选项按钮组控件来显示该字段的数据,将“系别”字段生成的文本框控件删除,再添加一种组合框控件来显示该字段的数据,另外将“系别信息”(Xibie)数据表中的“名称”字段添加到“学生资料”页面中。将“移动统计工具栏”(MoveRecord)和“命令按钮工具栏”(CmdButGrp)类在“学生资料”(StuPage)页面中实例化,并命名为“StuAbg”和“StuMr”。在向页面中添加控件时一定要注意使页框处在可编辑状态,即页框外一种蓝色的虚框,如果只是选择了页框控件,则此时向表单中添加控件只是向表单中添加控件,其在表单构造中的位置是与页框控件平行的。设立“学生资料”(StuPage)页面及其控件的属性如表3.8所示。表3.8系统主表单“学生资料”(StuPage)页面及控件属性设立控件属性属性取值StuPageCaption学生资料FontBlod.T.FontSize14FontName隶书PictureBgl.bmp标签控件AutoSize.T.BackStyle0-透明FontBlod.T.ForeColor0,0,0FontSize16FontName楷体GB_2312WordWrap.F.文本框控件FontSize12Height25StuMrHeight35Width320StuAbgHeight132Width168续表3.8控件属性属性取值Txt学号ControlSourceStudent.学号IMEMode2-关闭IMEReadOnly.T.StuogpControlSourceStudent.性别Txt姓名ControlSourceStudent.姓名IMEMode1-打开IMEReadOnly.F.Txt班级ControlSourceStudent.班级IMEMode1-打开IMEReadOnly.F.Cmb系别ControlSourcestudent.系别RowSourcexibie.系编号RowSourceType6-字段Style2-下拉列表框Txt名称ControlSourceXibie.名称IMEMode1-打开IMEReadOnly.T.Txt地址ControlSourcestudent.地址IMEMode1-打开IMEReadOnly.F.Txt电话ControlSourcestudent.电话IMEMode1-打开IMEReadOnly.F.Txt邮件ControlSourcestudent.邮件IMEMode1-打开IMEReadOnly.F.CmdjhCaption借还书页框的两个页面中的另一种页框用来作为“书籍资料”(BookPage)页面,从表单的数据环境中将需要在“书籍资料”(BookPage)页面中显示宇段拖放到页面中,并添加到页面中的控件进行某些调节,涉及将“与否借出”字段生成的控件删除,添加一种标签控件,再根据该字段的值显示图书的状态。将“移动统计工具栏”类和“命令按钮工具栏”类在“书籍资料”(BookPage)页面中实例化,并重新命名为“BookMr”和“BookAbg”。向表单中添加一种按钮,再添加一种名为“MicroSoftMonthViewContro1,Verdion6.0”的ActiveX控件,并命名为“SjOleRq”。设立“书籍资料”(BookPage)页面及页面中控件的属性如表3.9所示。表3.9系统主表单“书籍资料”(BookPage)页面及控件属性设立控件属性属性取值BookPageCaption书籍资料FontBold.T.FontSize14ForeName隶书PictureBgl.bmp标签控件AutoSize.T.BackStyle0-透明FontBold.T.ForeColor0,0,0FontSize16ForeName楷体GB_2312WordWrap.F.文本框控件FontSize12Height25BookMrHeight35Width320BookAbgHeight132Width168LblStausAutoSize.T.BackStyle1-不透明Caption在馆中续表3.9控件属性属性取值FontBold.T.FontSize16ForeName楷体GB_2312Txt图书编号ControlSourceBook.图书编号IMEMode1-打开IMEReadOnly.F.Txt图书名称ControlSourceBook.图书名称IMEMode1-打开IMEReadOnly.F.Txt图书类别ControlSourceBook.图书类别IMEMode1-打开IMEReadOnly.F.Txt图书作者ControlSourceBook.图书作者IMEMode1-打开IMEReadOnly.T.Txt购置日期ControlSourceBook.购置日期IMEMode2-关闭IMEReadOnly.F.Txt出版社ControlSourceBook.出版社IMEMode1-打开IMEReadOnly.F.Txt购置价格ControlSourceBook.购置价格IMEMode2-关闭IMEReadOnly.F.Txt购置价格ControlSourceBook.借阅次数IMEMode2-关闭IMEReadOnly.T.CmdrqCaption…SjOleRqVisible.F.3.4.3添加表单代码为了方便描述,系统主表单中的代码将分为三部分来介绍,其中主表单中整个表单的代码和两个页面的代码将分开介绍。3.4.3.1添加表单中的代码需要在系统主表单中添加4个属性“StuFM”、“StuOR”、“BookFM”和“BookOR”,分别用来识别表单中“学生信息”(StuPage)页面的状态,页面中的数据统计的指针的位置,“书籍信息”(BookPage)页面的状态和页面中数据统计指针的位置。在表单中添加完这4个属性后,将这4个属性初始值设为“cbrowse”、0、“cbrowse”和0。添加4个表单的办法属性“StuModeBrse”、“StuModeMody”、“BookModeBrse”和“BookModeMody”,分别用来使“学生信息”(StuPage)和“书籍信息”(BookPage)页面进入浏览和非浏览状态。“StuModeBrse”办法属性用来使“学生信息”(StuPage)页面进入浏览状态。“学生信息”(StuPage)页面的浏览状态是指页面中与数据绑定的控件中的数据处在不可编辑状态,“移动统计工具栏”处在可用状态,“命令按钮工具栏”中除了“保存”和“取消”按钮外都处在可用状态,“借还书”按钮处在可用状态。“StuModeBrse”办法属性的代码以下:*下列代码使“移动统计工具栏”可用THISFORM.PF.StuPage.Stumr.ENABLED=.T.*下列代码控制“命令按钮工具栏”中按钮的可用状态THISFORM.PF.StuPage.StuAbg.Cmdadd.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdmod.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmddel.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdser.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdpri.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdsave.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdcancel.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdexit.ENABLED=.T.*下列代码用来控制“学生信息”页面与数据绑定的控件状态THISFORM.PF.StuPage.Stuogp.ENABLED=.F.THISFORM.PF.StuPage.txt姓名.READONLY=.T.THISFORM.PF.StuPage.cmb系别.ENABLED=.F.THISFORM.PF.StuPage.txt班级.READONLY=.T.THISFORM.PF.StuPage.txt地址.READONLY=.T.THISFORM.PF.StuPage.txt电话.READONLY=.T.THISFORM.PF.StuPage.txt邮件.READONLY=.T.*下列代码用来控制“借还书”按按钮的可用状态THISFORM.PF.StuPage.CmdJh.ENABLED=.T.*下列代码用来控制表单中页面的可用状态THISFORM.PF.BookPage.ENABLED=.T.THIS.ENABLED=.T.“StuModeMody”办法属性用来使表单的“学生信息”(StuPage)页面进入非浏览状态,该页面的非浏览状态是指页面中与数据绑定的控件中的数据处在可修改状态,“移动统计工具栏”处在不可用状态,“命令按钮工具栏”中除了“保存”和“取消”按钮外其它按钮都处在不可用状态,“借还书”按钮处在可用状态,“书籍信息”页面处在不可用状态。“StuModeMody”办法属性的代码以下:*下列代码使“移动统计工具栏”不可用THISFORM.PF.StuPage.Stumr.ENABLED=.F.*下列代码控制“命令按钮工具栏”中按钮的可用状态THISFORM.PF.StuPage.StuAbg.Cmdadd.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdmod.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmddel.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdser.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdpri.ENABLED=.F.THISFORM.PF.StuPage.StuAbg.Cmdsave.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdcancel.ENABLED=.T.THISFORM.PF.StuPage.StuAbg.Cmdexit.ENABLED=.F.*下列代码用来控制“学生信息”页面与数据绑定的控件状态THISFORM.PF.StuPage.Stuogp.ENABLED=.T.THISFORM.PF.StuPage.txt姓名.READONLY=.F.THISFORM.PF.StuPage.cmb系别.ENABLED=.T.THISFORM.PF.StuPage.txt班级.READONLY=.F.THISFORM.PF.StuPage.txt地址.READONLY=.F.THISFORM.PF.StuPage.txt电话.READONLY=.F.THISFORM.PF.StuPage.txt邮件.READONLY=.F.*下列代码用来控制“借还书”按按钮的可用状态THISFORM.PF.StuPage.CmdJh.ENABLED=.F.*下列代码用来控制表单中页面的可用状态THISFORM.PF.BookPage.ENABLED=.F.THIS.ENABLED=.T.“BookModeBrse”办法属性用来使“书籍信息”(BookPage)页面进入浏览状态。“书籍信息”(BookPage)页面的浏览状态是指页面中与数据绑定的控件中的数据处在不可编辑状态,“移动统计工具栏”处在可用状态,“命令按钮工具栏”中除了“保存”和“取消”按钮外都处在可用状态,“借还书”按钮处在可用状态,“学生信息”(StuPage)页面处在可用状态。“BookModeBrse”办法属性的代码:*下列代码使“移动统计工具栏”可用THISFORM.PF.BookPage.Sjmr.ENABLED=.T.*下列代码使“...”按钮不可用THISFORM.PF.BookPage.CmdRq.ENABLED=.F.*下列代码控制“命令按钮工具栏”中按钮的状态THISFORM.PF.BookPage.SjAbg.Cmdadd.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdmod.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmddel.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdser.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdpri.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdsave.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdcancel.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdexit.ENABLED=.T.*下列代码控制页面中与数绑定的控件中数据的可编辑状态THISFORM.PF.BookPage.txt图书编号.READONLY=.T.THISFORM.PF.BookPage.txt图书名称.READONLY=.T.THISFORM.PF.BookPage.txt图书类别.READONLY=.T.THISFORM.PF.BookPage.txt图书作者.READONLY=.T.THISFORM.PF.BookPage.txt购置日期.READONLY=.T.THISFORM.PF.BookPage.txt出版社.READONLY=.T.THISFORM.PF.BookPage.txt购置价格.READONLY=.T.*下列代码用来控制表单中页面的可用状态THISFORM.PF.StuPage.ENABLED=.T.THIS.ENABLED=.T.“BookModeMody”办法属性用来使“书籍信息”(BookPage)页面进入非浏览状态,“书籍信息”(BookPage)页的非浏览状态是指页面中与数据绑定的控件中的数据处在可修改状态,“移动统计工具栏”处在不可用状态,“命令按钮工具栏”中除了“保存”和“取消”按钮外其它按钮都处在不可用状态,“购置日期”栏后的“...”按钮处在可用状态,“学生信息”页面处在不可用状态。“BookModeMody”办法属性的代码:*下列代码使“移动统计工具栏”不可用THISFORM.PF.BookPage.Sjmr.ENABLED=.F.*下列代码使“...”按钮可用THISFORM.PF.BookPage.CmdRq.ENABLED=.T.*下列代码控制“命令按钮工具栏”中按钮的状态THISFORM.PF.BookPage.SjAbg.Cmdadd.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdmod.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmddel.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdser.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdpri.ENABLED=.F.THISFORM.PF.BookPage.SjAbg.Cmdsave.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdcancel.ENABLED=.T.THISFORM.PF.BookPage.SjAbg.Cmdexit.ENABLED=.F.*下列代码控制页面中与数绑定的控件中数据的可编辑状态THISFORM.PF.BookPage.txt图书编号.READONLY=.T.THISFORM.PF.BookPage.txt图书名称.READONLY=.F.THISFORM.PF.BookPage.txt图书类别.READONLY=.F.THISFORM.PF.BookPage.txt图书作者.READONLY=.F.THISFORM.PF.BookPage.txt购置日期.READONLY=.F.THISFORM.PF.BookPage.txt出版社.READONLY=.F.THISFORM.PF.BookPage.txt购置价格.READONLY=.F.*下列代码用来控制表单中页面的可用状态THISFORM.PF.StuPage.ENABLED=.F.THIS.ENABLED=.T.添加完表单的属性后,由于系统中需要运用几个全局变量在表单中传递数据,因此需要在主表单中声明这几个全局变量。添加表单的Init事件代码以下:PUBLICStudentNO,StuTj,BookTj,DbName这几个全局变量的作用分别以下:“StudentNO”是当系统主表单调用“读者借书统计”表单时,向该表单传递系统主表单的“学生信息”页面中统计的学号值,方便让“读者借书统计”表单显示该学号的资料。“StuTj”和“BookTj”用在“学生信息”和“书籍信息”两个页面的“输入查询条件”表单和“查询成果”表单之间传递查询条件的值。“DbName”用在“学生信息”和“书籍信息”两个页面共用一种“选择打印类型”表单时,用于辨别该全局变量是应当打印那一张报表。4.4.3.2添加“学生信息”页面代码在“学生信息”(StuPage)被激活时,应当将“学生信息”(Student)数据表所在工作区作为表单的现在工作区,取消由其它表单设立的过虑条件,并且使页面进入浏览状态。添加“学生信息”页面的Activate事件代码以下:“学生信息”页面中的“系别”组合框中选择某一种系编号后,要在“名称”栏显示系统编号所代码的系别名称,由于在数据环境中将两者做了关连,因此在选择了某个系编号后只需要刷新表单即可。添加“cmb系别”组合框的Valid事件代码以下:THISFORM.PF.StuPgge.txt系别.REFRESH()“移动统计工具栏”中按钮的代码已经在类中创立,并且这些代码在各个表单中完全相似,不需要再另行添加。“命令按钮工具栏”中“增加”(Cmdadd)按钮的作用是先保存页中现在的统计号,标记表单的状态为新增状态,然后在表单的数据缓冲区新建一条统计,并且使现在页面进入非浏览状态。“增加”(Cmdadd)按钮的Click事件代码以下:SELECTStudentTHISFORM.StuOR=RECNO()GOBOTTOMAPPENDBLANKTHISFORM.StuModeMody()THISFORM.StuFM="cadd"THISFORM.PF.StuPage.txt学号.READONLY=.F.THISFORM.REFRESH()“命令按钮工具栏”中“修改”(Cmdmod)按钮的作用是保存页面在现在统计的统计号,标记表单的状态为修改状态,然后使表单中的现在页面进入非浏览状态。“修改”(Cmdmod)按钮的Click事件代码以下:THISFORM.StuFM="cmod"THISFORM.StuOR=RECNO()THISFORM.StuModeMody()THISFORM.REFRESH()“命令按钮工具栏”中“删除”(Cmddel)按钮的作用首先弹出确认对话框,如果确认则进行删除操作。由于本系统中学生的信息也会在别的数据表中出现,如果在该数据表中删除了学生的数据,而在其它数据表中保存会造成信息的多出与不便,因此本系统采用的方式是如果在“学生信息”数据表中删除了某一种学生的数据,则在其它的数据表(重要是指“读者借书统计”数据表)删除与该学生有关的一切统计,但是如果该学生在删除时仍有未偿还的图书,系统将不允许删除。“删除”(Cmddel)按钮的Click事件代码以下:YN=MESSAGEBOX("拟定删除",4+32,"图书管理系统")&&确认对话框IFYN=6&&如果确认THISFORM.StuOR=RECNO()&&保存统计指针位置SETEXACTON&&严格比较SELECTJyRecLOCATEFOR学号=ALLTRIM(THISFORM.PF.StuPage.txt学号.VALUE)ANDEMPTY(偿还日期)&&查找与否有未还图书IFFOUND()&&如果有MESSAGEBOX("该学生有未还书,不能删除",48,"图书管理系统")&&弹出对话框SELECTStudent&&回到原统计SETFILTERTOGOTHISFORM.StuORELSE&&如果没有未还书SELECTJyRec&&选择“读者借阅统计”所在的工作区GOTOP&&到数据表顶部DOWHILENOTEOF()&&删除与要删除的学生有关的借阅统计IF学号=ALLTRIM(THISFORM.PF.StuPage.txt学号.VALUE)DELETEPACKENDIFSKIPENDDOSELECTStudent&&在“学生信息”数据表中删除统计DELETEPACKMESSAGEBOX("删除成功",64,"图书管理系统")&&“删除成功”对话框SELECTStudentGOTOPENDIFTHISFORM.REFRESH()SETEXACTOFFENDIF“命令按钮工具栏”中“查询”(CmdSer)按钮的作用是调用“输入查询条件”表单,其Click事件代码以下:DOFORMStuSer“命令按钮工具栏”中“保存”(CmdSave)按钮的作用是检查表单中各数据栏中数据的输入完整状况,如果无误,则保存统计。“保存”(CmdSave)按钮的Click事件代码以下:LOCALOK&&声明一种本地变量OK=.T.&&假设各数据栏中数据无误DOCASECASEEMPTY(ALLTRIM(THISFORM.PF.StuPage.txt学号.VALUE))&&如果学号为空MESSAGEBOX("学号不能为空",48,"图书管理系统")THISFORM.PF.StuPage.txt学号.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.StuPage.txt姓名.VALUE)&&如果姓名为空MESSAGEBOX("姓名不能为空",48,"图书管理系统")THISFORM.PF.StuPage.txt姓名.SETFOCUS()OK=.F.CASEEMPTY(THISFORM.PF.StuPage.Cmb系别.VALUE)&&如果系别为空MESSAGEBOX("系别不能为空",48,"图书管理系统")THISFORM.PF.StuPage.Cmb系别.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.StuPage.txt地址.VALUE))&&如果地址为空MESSAGEBOX("地址不能为空",48,"图书管理系统")THISFORM.PF.StuPage.txt地址.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.StuPage.txt电话.VALUE))&&如果电话为空MESSAGEBOX("电话不能为空",48,"图书管理系统")THISFORM.PF.StuPage.txt姓名.SETFOCUS()OK=.F.ENDCASEIFOK=.T.&&如果各数据栏无误为空YN=MESSAGEBOX("拟定保存",4+32,"图书管理系统")&&弹出确认对话框IFYN=6&&如果确认CanSave=TABLEUPDATE(.F.)&&试图保存IFCanSave=.F.&&如果保存失败MESSAGEBOX("学号错误",48,"图书管理系统")THISFORM.PF.StuPage.txt学号.SETFOCUS()ELSE&&如果保存成功MESSAGEBOX("保存成功",64,"图书管理系统")THISFORM.StuModeBrse()IFTHISFORM.StuFM="cmod"GOTHISFORM.StuORELSETHISFORM.PF.StuPage.txt学号.READONLY=.T.ENDIFENDIFTHISFORM.REFRESH()ENDIFENDIF“命令按钮工具栏”中“取消”(CmdCancel)按钮的作用是删除表单的数据缓冲区的数据,并使现在页面回到浏览状态。“取消”(CmdCancel)按钮的Click事件代码以下:YN=MESSAGEBOX("拟定取消",4+32,"系统消息")IFYN=6TABLEREVERT(.F.)IFTHISFORM.StuFM="cadd"GOTHISFORM.StuORENDIFTHISFORM.StuModeBrse()THISFORM.PF.StuPage.txt学号.READONLY=.T.THISFORM.REFRESH()ENDIF“命令按钮工具栏”中“打印”(Cmdpri)按钮的作用是将“DbfName”全局变量赋值,表明要进行打印的是“学生信息”数据表,并调用“选择打印类型”表单。“打印”(CmdPri)按钮的Click事件代码以下:DbfName=”StuDbf”DOFORMPrintLX“命令按钮工具栏”中“退出”(Cmdexit)按钮的作用是弹出确认对话框,如果确认则是退出现在表单,去除事件循环并退出系统。“退出”(Cmdexti)按钮的Click事件代码以下YN=MESSAGEBOX("拟定退出",4+32,"图书管理系统")IFYN=6THISFORM.RELEASE()CLEAREVENTSQUITENDIF“学生信息”页面中“借还书”(Cmdjh)按钮的作用是将页面中现在统计的“学号”值赋给全局变量“StudentNO”,并调用“读者借书统计”表单。“借还书”(Cmdjh)按钮的Click事件代码以下:StudentNO=ALLTRIM(THISFORM.PF.StuPage.txt学号.VALUE)DOFORMJyRec4.4.3.3添加“书籍信息”页面代码在“书籍信息”(BookPage)页面被激活时,表单中的现在数据工作期应当变为“图书信息”数据表所在的工作期,将可能由其它表单对该数据表设立的过虑条件去掉,同时要使该页面进入浏览状态。添加该页面的“Activate”事件代码由于该页面要在刷新表单时,显示表单中现在统计的书籍与否借出,故添加该页面的Refresh事件代码在“书籍信息”(BookPage)页面在通过添加的MonthView控件(SjOleRq)来输入图书的购置日期,在该页面处在非浏览状态时单击“...”按钮即可调用该控件。添加“...”(Cmdrq)按钮的Click事件代码以下:THISFORM.PF.BookPage.Sjolerq.VISIBLE=.T.“命令按钮工具栏”中“增加”(Cmdadd)按钮的作用是保存页面中数据统计的指针位置,将页面的状态标记为新增状态,再在表单事件缓冲区内新建一条统计,并使页面进入非浏览状态。“添加”(Cmdadd)按钮的Click事件代码以下:SELECTBookTHISFORM.SjOR=RECNO()GOBOTTOMAPPENDBLANKTHISFORM.SjFM="cadd"THISFORM.SjModeMody()THISFORM.PF.BookPage.txt图书编号.READONLY=.F.THISFORM.REFRESH()“命令按钮工具栏”中“删除”(Cmdadd)按钮的作用是弹出确认对话框,如果确认,则检查要删除的图书与否在库中,如查不在则弹出出错对话框,如果在库中则首先删除“读者借书统计”(Jyrec)数据表中的与要删除的图书有关的全部统计,再删除该图书统计,删除成功后弹出“删除成功”对话框。“删除”(Cmddel)按钮的Click事件代码以下:YN=MESSAGEBOX("拟定删除",4+32,"图书管理系统")&&确认对话框IFYN=6&&如果确认THISFORM.SjOR=RECNO()&&保存统计号IFTHISFORM.PF.BookPage.LblStatus.CAPTION="借出中"&&如果该图书不在库中MESSAGEBOX("该图书尚未偿还",48,"图书管理系统")&&不能删除ELSE&&如果在库中SELECTJyRec&&对图书借阅统计表进行修改SETEXACTON&&精确比较GOTOP&&到数据表的顶部DOWHILENOTEOF()&&删除全部与要删除的图书有关的统计IF图书编号=ALLTRIM(THISFORM.PF.BookPage.txt图书编号.VALUE)DELETEPACKENDIFSKIPENDDOSELECTBook&&删除图书统计GOTHISFORM.SjORDELETEPACKMESSAGEBOX("删除成功",64,"图书管理系统")&&“删除成功”对话框SETEXACTOFFTHISFORM.REFRESH()ENDIFENDIF“命令按钮工具栏”中“查询”(CmdSer)按钮的作用是调用“输入查询条件”表单,该按钮的Click事件代码以下:DOFORMBookSer“命令按钮工具栏”中“保存”(CmdSave)按钮的作用是在单击按钮时,检查页面中数据的输入状况,如果无误则保存数据,并弹出“保存成功”对话框,否则指出错误,并将光标定位在错误处,等待顾客修改。“保存”(CmdSave)按钮的Click事件代码以下:LOCALOKOK=.T.DOCASECASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt图书编号.VALUE))&&如果图书编号为空MESSAGEBOX("图书编号不能为空",48,"图书管理系统")THISFORM.PF.BookPage.txt图书编号.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt图书名称.VALUE))&&如果图书名称为空MESSAGEBOX("图书名称不能为空",48,"图书管理系统")THISFORM.PF.BookPage.txt图书名称.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt图书类别.VALUE))&&如果图书类别为空MESSAGEBOX("图书类别不能为空",48,"图书管理系统")THISFORM.PF.BookPage.txt图书类别.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt图书作者.VALUE))&&如果图书作者为空MESSAGEBOX("图书作者不能为空",48,"图书管理系统")THISFORM.PF.BookPage.txt图书作者.SETFOCUS()OK=.F.CASEEMPTY(THISFORM.PF.BookPage.txt购置日期.VALUE)&&如果购置日期为空MESSAGEBOX("购置日期不能为空",48,"图书管理系统")THISFORM.PF.BookPage.txt购置日期.SETFOCUS()OK=.F.CASEEMPTY(ALLTRIM(THISFORM.PF.BookPage.txt出版社.VALUE))&&如果出版社为空MESSAGEBOX("出版社不能为空",48,"图书管理系统")THISFORM.PF.BookPage.txt出版社.SETFOCUS()OK=.F.CASETHISFORM.PF.BookPage.txt购置价格.VALUE<=0&&如果购置价格不大于或者为0MESSAGEBOX("购置价格错误",48,"图书管理系统")THISFORM.PF.BookPage.txt购置价格.SETFOCUS()OK=.F.ENDCASEIFOK=.T.&&如果各数据项无误YN=MESSAGEBOX("拟定保存",4+32,"图书管理系统")&&确认对话框IFYN=6&&如果确认SaveOk=TABLEUPDATE(.F.)&&试图保存IFSaveOk=.T.&&如果保存成功MESSAGEBOX("保存成功",64,"图书管理系统")THISFORM.SjModeBrse()THISFORM.PF.BookPage.txt图书编号.READONLY=.T.ELSE&&如果保存失败MESSAGEBOX("图书编号错误",48,"图书管理系统")THISFORM.PF.BookPage.txt图书编号.SETFOCUS()ENDIFENDIFENDIF“命令按钮工具栏”中“取消”(CmdCancel)按钮的作用是将表单的数据缓冲区的数据删除并使表单回到浏览状态。“取消”(CmdCancel)按钮的Click事件代码以下:YN=MESSAGEBOX("拟定取消",4+32,"系统消息")IFYN=6TABLEREVERT(.F.)IFTHISFORM.SjFM="cadd"GOTHISFORM.SjORENDIFTHISFORM.SjFM="cbrowse"THISFORM.SjModeBrse()THISFORM.PF.BookPage.txt图书编号.READONLY=.T.THISFORM.REFRESH()ENDIF“命令按钮工具栏”中“打印”(Cmdpri)按钮的作用是将全局变量“DbfName”赋值,并调用“选择打印类型”表单。“打印”(Cmdpri)按钮的Click事件代码以下:DbfName=”BookDbf”DOFORMPrintLX“命令按钮工具栏”中“退出”(Cmdexit)按钮的作用是弹出确认对话框,如果确认则退出现在表单,去除事件循环并退出系统。“退出”(Cmdexit)按钮的Click事件代码以下:YN=MESSAGEBOX("拟定退出",4+32,"图书管理系统")IFYN=6THISFORM.RELEASE()CLEARQUITENDIF3.4.4系统主表单的辅助表单重要涉及“学生信息”页面和“图书信息”页面的查询功效和一种“选择打印类型”表单。3.4.4.1创立“学生信息”“学生信息”(StuPage)页面的查询功效由“输入查询条件”和“学生信息查询成果”表单构成。下面介绍这两个表单的创立过程。(1)创立“输入查询条件”表单“输入查询条件”表单用来向顾客收集要查询的条件,查询的条件能够是根据某一种字段进行查询,也能够指定多个查询条件,这些条件将以“AND”连接,然后根据条件查询。在“表单设计器”中创立一种表单作为“输入查询条件”表单,命名为“StuSer”。创立好的“输入查询条件”表单效果如右图所示。在表单中添加4个标签控件、4个文本框控件和2个按钮控件,设立表单及其控件的属性如表3.10所示。表3.10“输入查询条件”(StuSer)表单控件属性设立控件属性属性取值StuSerAutoCenter.T.BorderStyle2-固定对话框ControlBox.F.Caption输入查询条件Closable.F.Hight200Width300NameStuSerMdiForm.T.MaxButton.F.MinButton.F.ShowWindow1-在顶层表单中ShowTips.T.windowType1-模式标签控件AutoSize.T.BackStyle0-透明FontBold.T.FontSize16ForeColor255,0,0FontName楷体GB_2312WordWarp.F.文本框控件FontSize12Hight25Width240按钮控件FontBold.T.FontSize16FontName楷体GB_2312Hight30续表3.10控件属性属性取值Width50Txt姓名IMEMode1-打开IMETxt邮件IMEMode2-关闭IMETxt地址IMEMode1-打开IMECmdSerCaption查询Default.T.ToolTipText执行查询CmdextCaption退出Cancel.T.ToolTipText取消查询该表单中的作用是向顾客收集查询条件,而这个作用也重要由“查询”(CmdSer)按钮来完毕,当顾客单击该按钮时检查表单的文本框中数据的输入状况,如果文本框中有数据则将该文本框中的数据作一种查询条件,如果有多个查询条件则用“AND”将这些条件连接起来,然后调用“学生信息查询成果”表单。“查询”(CmdSer)按钮的Click事件代码以下:StuTJ=".T."IFNOTEMPTY(ALLTRIM(THISFORM.txt学号.VALUE))&&如果学号栏非空StuTJ="'"+ALLTRIM(Thisform.txt学号.Value)+"'$学号"ENDIFIFNOTEMPTY(ALLTRIM(THISFORM.txt姓名.VALUE))&&如果姓名栏非空StuTJ=StuTJ+"AND"+"'"+ALLTRIM(THISFORM.txt姓名.VALUE)+"'$姓名"ENDIFIFNOTEMPTY(ALLTRIM(THISFORM.txt邮件.VALUE))&&如果邮件栏非空StuTJ=StuTJ+"AND"+"'"+ALLTRIM(THISFORM.txt邮件.VALUE)+"'$邮件"ENDIFIFNOTEMPTY(ALLTRIM(THISFORM.txt地址.VALUE))&&如果地址栏非空StuTJ=StuTJ+"AND"+"'"+ALLTRIM(THISFORM.txt地址.VALUE)+"'$地址"ENDIFTHISFORM.RELEASE()DOFORMStuSerout“退出”(Cmdext)按钮的作用是退出现在表单,其Click事件代码以下:THISFORM.RELEASE()(2)创立“学生信息查询成果”表单“学生信息查询成果”表单用来显示“学生信息”数据表中符合查询条件的统计。在“表单设计器”中创立一种表单作为“学生信息查询成果”表单,命名为StuSerout。创立好的表单效果如右图所示。将“学生信息”(Student)数据表和“系别信息”(Xibie)数据表添加到表单的数据环境中,并用“系别信息”(Xibie)数据表的“系编号”字段与“学生信息”(Student)数据表的“系别”索引建立关系。在表单中添加1个标签控件、1个表格控件和2个按钮控件。其中表格控件能够用“表格生成器”来创立,运用表格生成器创立完毕后将“系别”列的数据源更改为“Xibie.名称”。表格的属性与“输入查询添加”的表单属性大致相似,这里不再重复列举。要使表单中只显示符合查询条件的统计,需要在对表单的数据环境设立过虑条件,另外如果没有符合查询条件的统计,则“打印”按钮不可用,添加表单的Init事件代码以下:SELECTStudentSETFILTERTO&StuTJCOUNTFOR&StuTJTOnNumberIFnNumber=0THISFORM.Cmdpri.ENABLED=.F.ENDIF表单中的“打印”(Cmdpri)按钮的作用是将查询成果以报表的形式输出,并以浏览的方式查看打印成果。添加“打印”(Cmdpri)按钮的Click事件代码以下:REPORTFORMStuInfoFOR&StuTJPREVIEW表单中的“退出”(CmdExt)按钮的作用是弹出确认对话框,如果确认则退出表单,并取消数据环境设立的过虑条件。“退出”(CmdExt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论