MIS系统图像采集的VFP实现浅析
- 格式:pdf
- 大小:185.79 KB
- 文档页数:2
VFP平台在测绘仪器检定管理中的应用分析vfp是microsoft公司推出的最新的可视化数据库管理系统平台,属于32位数据库管理系统,是目前最快捷和实用的数据库管理系统软件之一。
vfp因为拥有非常强大专业的数据库操作系统,因此数据库的操作也是非常的方便和快捷。
它为用户提供强大的控件,当然也可以作为sql server或者oracle的前端开发工具,由于可以是它们有较强的联系所以就有不用专门编制程序的好处。
它提供了强大全面的工具,数据存储方式也很简单,用户主界面也很友好,跨平台技术也是独一无二的,并且兼容性良好,以及安全的真正的可编译性。
种种实践证明,将vfp作为用来测绘单位设备管理,可以提供准确可靠的数据系统,有利于提高设备管理的水平和办公的效率。
1 检定测绘仪器的必要性企业质量管理体系中测绘仪器性能的好坏会直接影响到测绘生产产品的质量。
测绘设备如果出现了问题,其导致的结果就是产品质量的降低,进而测绘产品就会不合格,这样不仅会耽误了生产预期以致无法准时交货,同时也会增加产品的生产成本,给生产单位带来严重的经济损失。
为了测绘仪器的一致和准确,国家技术监督局颁法了许多测绘仪器检定规程的国家标准,有利于健全完善的符合国家检定规程的测绘仪器鉴定体系,通过对测绘仪器的检定,已达到测绘仪器经营、测绘生产以及科学研究等多项经济活动正常进行的目的,有利于维护生产者和消费者的利益。
反之,若是有相关部门没有按国家颁发的标准要求来进行检定测绘仪器,测绘仪器技术没有达到国家的要求,由此引发的一系列问题会造成测绘生产无法进行以及直接的经济损失。
因此,为保证测绘仪器的性能和技术指标的准确就要按照国家的要求进行,这也是测绘仪器使用者需要履行的一项义务。
为了保证测绘生产任务能够顺利的开展和进行,测绘仪器只有检测合格才可用于生产,因此必须检定测绘仪器的准确状态。
2 检定测绘仪器信息表单的创建在vfp数据库系统中想要创建检定仪器信息表单,首先需要有一个项目并且在项目中创建相关的数据源如数据库、库表以及视图,用来保证对数据的支撑,使得运行过程中能得到预期的结果。
VFP教程什么是VFP?VFP,全称为Visual FoxPro,是一种用于开发数据库管理系统的编程语言和集成开发环境。
它由微软公司开发,用于创建强大的数据库应用程序。
VFP结合了面向对象的编程技术和关系型数据库的功能,使开发人员能够建立灵活和可靠的数据库应用。
VFP的特点VFP有许多值得注意的特点,使其成为首选的数据库管理系统开发工具:1.简单易用:VFP以直观和简单的方式提供数据库管理功能。
它提供了一个易于理解和使用的用户界面,使开发人员能够轻松创建和管理数据库应用程序。
2.面向对象的编程:VFP采用面向对象的编程风格,开发人员可以通过创建类和对象来实现灵活和可扩展的应用程序。
这种编程风格使代码更易于维护和重用。
3.强大的数据处理能力:VFP提供了强大的数据处理和查询功能。
它支持基本的SQL语句,开发人员可以使用这些语句进行高级数据处理和查询操作。
4.可扩展性:VFP支持与其他编程语言和数据库系统的集成。
开发人员可以使用VFP与其他系统进行数据交换和集成,从而扩展其应用程序的功能。
开始使用VFP要开始使用VFP,您可以按照以下步骤进行:1.安装VFP:首先,您需要安装VFP开发环境。
可以从微软官方网站下载VFP的安装程序,并按照安装向导进行安装。
2.了解VFP界面:安装完成后,打开VFP开发环境。
您将看到主要的集成开发环境界面,包括代码编辑器、项目管理器和输出窗口等。
3.创建数据库:在VFP中,您可以通过使用SQL语句或图形界面创建数据库。
首先,您需要为您的应用程序创建一个数据库,并定义所需的表和字段。
4.编写代码:在VFP中,您可以使用类和对象的概念来编写代码。
您可以创建类并添加方法和属性,以实现特定的功能。
使用VFP的代码编辑器,您可以编写逻辑和数据处理代码,并与数据库进行交互。
5.测试和调试:完成代码编写后,您可以运行和测试您的应用程序。
VFP提供了调试工具,可以帮助您定位和修复代码中的错误。
基于VFP的多媒体资料管理系统
基于VFP的多媒体资料管理系统是一款非常实用的软件,它
可以用来管理各种多媒体格式的资料,如声音、图片、视频等。
这款软件可以实现多种功能,如添加、删除、编辑、搜索等,能够帮助用户高效、准确的管理自己的多媒体资料。
该多媒体资料管理系统基于VFP开发,因为VFP拥有强大的
数据库管理能力,支持多种数据类型,可以方便的对多媒体资料进行分类、标签、描述等操作,从而实现对资料的快速管理。
在该系统中,用户可以通过多种方式添加自己的多媒体资料,如将音频、视频文件直接拖入系统,或者从网络上下载,也可以通过输入文字来添加相关信息。
同时,这款软件支持多种文件格式,如MP3、WAV、JPEG、PNG等等,可以方便地管
理各种多媒体资源。
该系统的一个重要功能是搜索。
当用户需要查找某个资料时,可以通过关键词、文件名、文件类型、文件大小等多个选项进行搜索,从而快速地找到所需要的文件,大大提高了工作效率和准确性。
此外,该系统还支持多用户和权限管理功能,可以通过管理员账号对用户进行授权,从而保证不同用户对资料的操作不会相互干扰。
此功能适用于大型公司、学校、机构等组织,可以有效地维护数据的安全性和隐私。
总之,基于VFP的多媒体资料管理系统是一款功能强大而实
用的软件,可以帮助用户高效地管理自己的多媒体资源。
随着数字化时代的到来,这款软件的价值将会越来越显著。
新编VFP6.0应用程序案例解析VFP应用程序设计实例--学生学籍管理系统(1)电脑笔记2007-10-29 16:43:36 阅读3036 评论5字号:大中小订阅图1MIS是英文Management Information System的英文缩写,意思是信息管理系统,该系统可用于中小型企事业单位业务处理和信息交流,从而大大提高了企业运作的效率。
微软公司的Visual FoxPro可视化面向对象的编程软件是一个设计MIS系统即简单又快捷的好软件。
下面,就以VFP 6.0为开发环境,讲述设计学生学籍管理系统的详细设计过程,也为在看过了前面非表单设计的学生学籍管理系统的朋友们继续了解并学习采用表单(Form)的方式设计MIS系统的方法。
一、设计思路:学生学籍管理系统的运行以封面表单开始,如图1所示,要求用户输入登录密码,并设置三次检查功能,若三次输入的密码均有错,则自动退出系统;否则出现系统菜单,接收用户的操作,操作完毕后用户可以从系统菜单中退出系统。
二、系统功能:系统的功能主要分成十个功能模块,它们是:录入数据、修改数据、删除数据、查询数据、统计数据、显示数据、打印数据、导出数据、导入数据和清空数据。
录入数据可以实现学生信息的录入;修改数据可以实现学生信息的修改;删除数据可以实现学生数据的删除;查询数据可以实现学生信息的查询;统计数据可以实现学生人数、党员人数、学生总平均成绩、高数平均成绩、英语平均成绩和VFP平均成绩的统计;显示数据可以实现以字段分布和二维表两种方式显示学生信息;打印数据可以实现用报表的形式打印学生的信息;导出数据可以实现学生数据的备份,防止数据丢失;导入数据可以实现学生数据的还原,保证数据的正确性;清空数据可以实现学生数据的清空操作。
三、菜单结构框架图四、数据库结构:(可定义表名为xj.dbf)字段名类型宽度小数位数学号字符型2姓名字符型6性别字符型2出生年月字符型10邮编字符型6高数数值型51英语数值型51VFP数值型51是否党员字符型2电话字符型8五、具体设计:(给出源代码,表单属性可参照图示在VFP属性框中设置,所有程序文件和表单文件均通过VFP项目管理器建立)1、学生学籍管理系统主程序源代码(可定义程序名为main.prg)_SCREEN.WINDOWSTATE=2 &&设置窗口规格为第2种系统窗口_SCREEN.CAPTION="学生学籍管理系统" &&设置窗口标题为“学生学籍管理系统”_SCREEN.CLOSABLE=.T. &&去掉关闭按钮_SCREEN.CONTROLBOX=.F. &&去掉控制按钮_SCREEN.MAXBUTTON=.F. &&去掉最大化按钮_SCREEN.MINBUTTON=.F. &&去掉最小化按钮_SCREEN.BACKCOLOR=RGB(50,100,128) &&设置窗口的背景色CLOSE ALLCLEAR ALLCLEARSET SYSMENU OFFSET SYSMENU TOSET TALK OFFSET SAFETY OFFSET STATUS BAR OFF &&关闭Visual Foxpro的状态栏DO FORM A:\封面.SCX &&调用系统登录“封面”表单READ EVENT &&响应用户输入DO A:\菜单.MPX &&运行系统菜单READ EVENTSET SYSMENU TO DEFAULT &&恢复Visual Foxpro的系统菜单的默认值SET SYSMENU ON &&显示Visual Foxpro的系统菜单SET STATUS BAR ON &&显示Visual Foxpro的状态栏CLOSE ALL &&关闭所有文件CLEAR ALLRETURN &&返回2、封面表单源代码(A:\封面.sct)PROCEDURE Click &&确定按钮的单击事件过程SET EXACT ON &&设置精确比较命令IF THISFORM.text1.VALUE="8888" &&如果文本框的值是8888THISFORM.RELEASE &&那么释放封面表单DO A:\菜单.MPX &&运行菜单程序ELSE &&否则THISFORM.NO=THISFORM.NO+1 &&将自定义属性NO的值由0加1IF THISFORM.NO>=3 &&如果自定义属性NO的值为3=MESSAGEBOX("密码三次输错,您不能使用本系统!",0+16+0,"学生学籍管理系统") &&那么弹出内容为“密码三次输错,您不能使用本系统!”的对话框QUIT &&结束程序的运行ELSE &&否则=MESSAGEBOX("密码错误!",48+0+0,"警告") &&弹出内容为“密码错误!”的对话框 THISFORM.text1.VALUE="" &&设置文本框的内容为空THISFORM.text1.SETFOCUS &&并将光标定位到文本框中THISFORM.REFRESH &&刷新封面表单ENDIFENDIFSET EXACT OFF &&设置关闭精确比较命令ENDPROCPROCEDURE Click &&取消按钮的单击事件过程THISFORM.RELEASE &&释放封面表单CLOSE ALL &&关闭所有文件CLEAR EVENTquitVFP应用程序设计实例--学生学籍管理系统(2)电脑笔记2007-10-29 16:54:06 阅读3687 评论0字号:大中小订阅图23、录入数据表单源代码(A:\录入.sct,如图2所示)PROCEDURE Init &&录入数据表单的初始化事件过程SET TALK OFFmand4.ENABLED=.f. &&设置第四个按钮为不可用状态mand5.ENABLED=.f. &&设置第五个按钮为不可用状态THISFORM.txt学号.ENABLED=.f. &&设置学号文本框为不可用状态THISFORM.txt姓名.ENABLED=.f. &&设置姓名文本框为不可用状态bo1.ENABLED=.f. &&设置组合框1为不可用状态bo2.ENABLED=.f. &&设置组合框2为不可用状态bo3.ENABLED=.f. &&设置组合框3为不可用状态bo4.ENABLED=.f. &&设置组合框4为不可用状态THISFORM.txt邮编.ENABLED=.f. &&设置邮编文本框为不可用状态THISFORM.txt高数.ENABLED=.f. &&设置高数文本框为不可用状态THISFORM.txt英语.ENABLED=.f. &&设置英语文本框为不可用状态THISFORM.txtVfp.ENABLED=.f. &&设置VFP文本框为不可用状态bo5.ENABLED=.f. &&设置组合框5为不可用状态THISFORM.txt电话.ENABLED=.f. &&设置电话文本框为不可用状态THISFORM.txt通信地址.ENABLED=.f. &&设置通信地址文本框为不可用状态THISFORM.edt备注.ENABLED=.f. &&设置备注编辑框为不可用状态ENDPROCPROCEDURE Load &&录入数据表单的加载事件过程CLOSE DATA &&关闭所有数据库USE A:\XJ存 &&打开A盘中的XJ.DBF表文件SET MULTILOCKS ON &&设置锁定一组记录=CURSORSETPROP('buffering',5,'XJ') &&打开开放式表缓冲ENDPROCPROCEDURE InteractiveChange &&录入数据表单的交互改变事件过程REPL 出生年月 WITHbo2.displayvalue+"."+bo3.displayvalue+"."+ bo4.displayvalue &&用组合框的值替换出生年月字段THISFORM.REFRESH &&刷新录入数据表单ENDPROCPROCEDURE Command1.Click &&单击命令按钮1的事件过程APPEND BLANK &&添加一空白记录THISFORM.REFRESH &&刷新录入数据表单mand1.ENABLED=.f. &&设置命令按钮1为不可用状态mand2.ENABLED=.f. &&设置命令按钮2为不可用状态mand3.ENABLED=.f. &&设置命令按钮3为不可用状态mand4.ENABLED=.t. &&设置命令按钮4为可用状态mand5.ENABLED=.t. &&设置命令按钮5为可用状态mand6.ENABLED=.f. &&设置命令按钮6为不可用状态THISFORM.txt学号.ENABLED=.t.THISFORM.txt姓名.ENABLED=.t.bo1.ENABLED=.t.bo2.ENABLED=.t.bo3.ENABLED=.t.bo4.ENABLED=.t.THISFORM.txt邮编.ENABLED=.t.THISFORM.txt高数.ENABLED=.t.THISFORM.txt英语.ENABLED=.t.THISFORM.txtVfp.ENABLED=.t.bo5.ENABLED=.t.THISFORM.txt电话.ENABLED=.t.THISFORM.txt通信地址.ENABLED=.t.THISFORM.edt备注.ENABLED=.t.THISFORM.txt学号.SETFOCUSENDPROCPROCEDURE Command2.Click &&单击命令按钮2的事件过程SET DELETE ON &&设置打开删除命令DELETE &&删除当前记录YN=MESSAGEBOX('确实要删除这条记录?',4+32+256,'删除确认') &&弹出内容为“确实要删除这条记录?”的对话框DO CASE &&运行条件判断语句CASE YN=6 &&当单击“是”按钮时=TABLEUPDATE(.T.) &&执行更新表函数,删除当前记录CASE YN=7 &&当单击“否”按钮时RECALL &&恢复已作了删除标记的当前记录ENDCASETHISFORM.REFRESHENDPROCPROCEDURE Command3.Click &&单击命令按钮3的事件过程mand1.ENABLED=.f.mand2.ENABLED=.f.mand3.ENABLED=.f.mand4.ENABLED=.t.mand5.ENABLED=.t.mand6.ENABLED=.f. ENDPROCPROCEDURE Command4.Click &&单击命令按钮4的事件过程=TABLEUPDATE(.T.)mand1.ENABLED=.t. mand2.ENABLED=.t. mand3.ENABLED=.t. mand4.ENABLED=.f. mand5.ENABLED=.f. mand6.ENABLED=.t. ENDPROCPROCEDURE Command5.Click &&单击命令按钮5的事件过程=TABLEREVERT(.T.)mand1.ENABLED=.t. mand2.ENABLED=.t. mand3.ENABLED=.t. mand4.ENABLED=.f. mand5.ENABLED=.f. mand6.ENABLED=.t. ENDPROCPROCEDURE Command6.Click &&单击命令按钮6的事件过程SELE 1 &&选择1号工作区USE A:\XJ EXCLUSIVE 打开A盘中的XJ.DBF数据表PACK &&彻底删除已作了删除标记的记录THISFORM.RELEASE &&释放录入数据表单ENDPROCPROCEDURE InteractiveChangeREPL 是否党员 WITH bo5.DISPLAYVALUE &&用组合框的值替换是否党员字段THISFORM.REFRESHENDPROC4、修改数据表单源代码(A:\修改.sct)图3PROCEDURE Command1.ClickIF NOT BOF() &&如果记录指针没有到记录的开头SKIP –1 &&向上跳转一个记录THISFORM.REFRESHmand2.ENABLED=.t.ELSEWAIT WINDOW '已经是第一条记录了!' &&系统给出内容为“已经是第一条记录了!”提示窗口ENDIFENDPROCPROCEDURE Command2.ClickIF NOT EOF() &&如果记录指针没有到记录的结尾SKIP &&向下跳转一个记录THISFORM.REFRESHmand1.ENABLED=.t.ELSEWAIT WINDOW '已经是最后一条记录了!'ENDIFENDPROCPROCEDURE Command3.ClickGO TOP &&将记录指针移到记录的开头THISFORM.REFRESHmand1.ENABLED=.f.mand2.ENABLED=.t.ENDPROCPROCEDURE Command4.ClickGO BOTTOM &&将记录指针移到记录的结尾THISFORM.REFRESHmand1.ENABLED=.t.mand2.ENABLED=.f.ENDPROCPROCEDURE Command5.Click=TABLEUPDATE(.T.)mand1.ENABLED=.t.mand2.ENABLED=.t.mand3.ENABLED=.t.mand4.ENABLED=.t.mand5.ENABLED=.f.mand6.ENABLED=.f.mand7.ENABLED=.t.ENDPROCPROCEDURE Command6.Click=TABLEREVERT(.T.) &&启用表缓冲,放弃表中对所有记录所做的修改函数mand1.ENABLED=.t.mand2.ENABLED=.t.mand3.ENABLED=.t.mand4.ENABLED=.t.mand5.ENABLED=.f.mand6.ENABLED=.f.mand7.ENABLED=.t.ENDPROCPROCEDURE Command7.ClickUSE A:\XJ EXCLUSIVEPACKTHISFORM.RELEASEENDPROCPROCEDURE ClickIF EMPTY(bo1.VALUE) &&如果组合框1的值为空=MESSAGEBOX("请选择学号!",48+0+0,"学生学籍管理系统") &&系统给出内容为“请选择学号!”的对话框ENDIFAA=RECNO() &&用显示记录号的函数将记录号赋给变量AAGO AA &&将记录指针移到当前记录号THISFORM.txt学号.REFRESH &&刷新学号文本框的内容THISFORM.txt姓名.REFRESH &&刷新姓名文本框的内容THISFORM.txt性别.REFRESH &&刷新性别文本框的内容THISFORM.txt出生年月.REFRESH &&刷新出生年月文本框的内容THISFORM.txt邮编.REFRESH &&刷新邮编文本框的内容THISFORM.txt高数.REFRESH &&刷新高数文本框的内容THISFORM.txt英语.REFRESH &&刷新英语文本框的内容THISFORM.txtVfp.REFRESH &&刷新VFP文本框的内容THISFORM.txt是否党员.REFRESH &&刷新是否党员文本框的内容THISFORM.txt电话.REFRESH &&刷新电话文本框的内容THISFORM.txt通信地址.REFRESH &&刷新通信地址文本框的内容THISFORM.edt备注.REFRESH &&刷新备注编辑框的内容mand5.ENABLED=.t. mand6.ENABLED=.t.VFP应用程序设计实例--学生学籍管理系统(3)电脑笔记2007-10-29 16:56:30 阅读3134 评论2字号:大中小订阅5、查询数据表单源代码(A:\查询.sct)图4PROCEDURE ClickIF EMPTY(bo1.VALUE)=MESSAGEBOX("请选择学号!",48+0+0,"学生学籍管理系统")ENDIFAA=RECNO()GO AATHISFORM.txt学号.REFRESHTHISFORM.txt姓名.REFRESHTHISFORM.txt性别.REFRESHTHISFORM.txt出生年月.REFRESHTHISFORM.txt邮编.REFRESHTHISFORM.txt高数.REFRESHTHISFORM.txt英语.REFRESHTHISFORM.txtVfp.REFRESHTHISFORM.txt是否党员.REFRESHTHISFORM.txt电话.REFRESHTHISFORM.txt通信地址.REFRESHTHISFORM.edt备注.REFRESHENDPROC6、统计数据表单源代码(A:\统计.sct)图5PROCEDURE Click &&单击“统计记录总数”按钮时的事件过程COUNT TO AA FOR 是否党员="是" &&对党员计数,并将计数结果赋给变量AA THISFORM.text5.value=AA &&将变量AA的值赋给文本框5THISFORM.text5.REFRESHENDPROCPROCEDURE Click &&单击“统计英语平均成绩”按钮时的事件过程AVERAGE 英语 TO AA &&对所有记录的英语成绩求平均,并将平均值赋给变量AA THISFORM.text3.value=AA &&将变量AA的值赋给文本框3THISFORM.text3.REFRESHENDPROCPROCEDURE Click &&单击“统计VFP平均成绩”按钮时的事件过程AVERAGE vfp TO AA &&对所有记录的VFP成绩求平均,并将平均值赋给变量AA THISFORM.text4.value=AA &&将变量AA的值赋给文本框4THISFORM.text4.REFRESHENDPROCPROCEDURE Click &&单击“统计总平均成绩”按钮时的事件过程AVERAGE 高数 TO AA &&对所有记录的高数成绩求平均,并将平均值赋给变量AA AVERAGE 英语 TO BB &&对所有记录的英语成绩求平均,并将平均值赋给变量BB AVERAGE vfp TO CC &&对所有记录的VFP成绩求平均,并将平均值赋给变量CC STORE (AA+BB+CC)/3 TO DD &&将三门成绩的平均成绩和除3的总平均成绩赋给DD THISFORM.text6.value=DD &&将变量DD的值赋给文本框6THISFORM.text6.REFRESHENDPROC7、显示数据表单源代码(A:\显示.sct)图6 PROCEDURE Command1.Click &&单击“上条”按钮的事件过程IF NOT BOF()SKIP -1THISFORM.REFRESHmand2.ENABLED=.t.ELSEWAIT WINDOW '已经是第一条记录了!'ENDIFENDPROCIF NOT EOF()SKIPTHISFORM.REFRESHmand1.ENABLED=.t.ELSEWAIT WINDOW '已经是最后一条记录了!'ENDIFENDPROCPROCEDURE Command3.Click &&单击“首条”按钮的事件过程GO TOPTHISFORM.REFRESHmand1.ENABLED=.f. mand2.ENABLED=.t. ENDPROCPROCEDURE Command4.Click &&单击“末条”按钮的事件过程GO BOTTOMTHISFORM.REFRESHmand1.ENABLED=.t. mand2.ENABLED=.f. ENDPROCTHISFORM.RELEASEENDPROC8、删除数据表单源代码(A:\删除.sct)图7 PROCEDURE Click &&单击“显示”按钮的事件过程IF EMPTY(bo1.VALUE)=MESSAGEBOX("请选择学号!",48+0+0,"学生学籍管理系统") mand2.ENABLED=.f.ELSEmand2.ENABLED=.t.ENDIFAA=RECNO()GO AATHISFORM.txt学号.REFRESHTHISFORM.txt姓名.REFRESHTHISFORM.txt性别.REFRESHTHISFORM.txt出生年月.REFRESHTHISFORM.txt邮编.REFRESHTHISFORM.txt高数.REFRESHTHISFORM.txt英语.REFRESHTHISFORM.txtVfp.REFRESHTHISFORM.txt是否党员.REFRESHTHISFORM.txt电话.REFRESHTHISFORM.txt通信地址.REFRESHTHISFORM.edt备注.REFRESHENDPROCPROCEDURE Click &&单击“删除”按钮的事件过程SET DELETE ONDELETEYN=MESSAGEBOX('确实要删除这条记录?',4+32+256,'删除确认') DO CASECASE YN=6=TABLEUPDATE(.T.)=MESSAGEBOX("记录已成功删除!",0+64+0,'学生学籍管理系统')mand2.ENABLED=.f. bo1.DISPLAYVALUE="请选择"GO TOPCASE YN=7RECALLENDCASETHISFORM.REFRESHENDPROCPROCEDURE Init &&删除数据表单的初始化过程SET TALK OFFmand2.ENABLED=.f.ENDPROCPROCEDURE ClickUSE A:\XJ EXCLUSIVEPACKTHISFORM.RELEASEVFP应用程序设计实例--学生学籍管理系统(4)电脑笔记2007-10-29 16:58:43 阅读3983 评论5字号:大中小订阅9、导出数据表单源代码(A:\导出.sct)图8PROCEDURE Click &&单击“确定”按钮的事件过程SET SAFETY OFF &&覆盖文件时不提示确认USE A:\XJGO TOPIF EMPTY(bo1.VALUE)=MESSAGEBOX("请选择盘符!",48+0+0,"学生学籍管理系统")ELSEIF EMPTY(THISFORM.text1.VALUE)=MESSAGEBOX("请输入文件名!",48+0+0,"学生学籍管理系统")ELSEIF RECC()>0 &&如果表记录大于0DRIVER=BO1.DISPLAYVALUE &&将组合框1的值赋给变量DRIVERFILENAME=ALLTRIM(THISFORM.TEXT1.TEXT) &&将去掉空格的文件名赋给变量FILENAME COPY TO &DRIVER\&FILENAME &&将系统表文件复制到选定的盘符和文件名中=MESSAGEBOX("本系统所有数据已转出完毕!",48,"信息提示")USETHISFORM.RELEASEELSE=MESSAGEBOX("没有任何数据,不能转出",48,"信息提示")USETHISFORM.RELEASEENDIFENDIFENDIFENDPROCPROCEDURE Click &&单击“取消”按钮的事件过程RELEASE THISFORMENDPROC10、导入数据表单源代码(A:\导入.sct)图9PROCEDURE Click &&单击“确定”按钮的事件过程SET SAFETY OFFIF EMPTY(bo1.VALUE)=MESSAGEBOX("请选择要导入的数据表所在的盘符!",48+0+0,"学生学籍管理系统") THISFORM.text1.SETFOCUSELSEIF EMPTY(THISFORM.text1.VALUE)=MESSAGEBOX("请输入要导入的数据表名!",48+0+0,"学生学籍管理系统")ELSEDRIVER=bo1.VALUEFILENAME=ALLTRIM(THISFORM.TEXT1.VALUE)USE A:\XJ&&打印一空行ON ERROR ? MESSAGE() &&发生找不到文件的错误时,打印错误信息APPEND FROM &DRIVER\&FILENAME &&将选定的文件追加到系统表文件中 =MESSAGEBOX('数据表已成功导入原表!',0+64+0,'学生学籍管理系统') USETHISFORM.RELEASEENDIFENDIFENDPROC11、打印数据表单源代码(A:\打印.sct)图10PROCEDURE Command1.ClickCHR(7)REPORT FORM A:\学生学籍管理表.frx NOEJECT NOCONSOLE TO PRINTER ENDPROCPROCEDURE Command2.ClickREPORT FORM A:\学生学籍管理表.frx PREVIEWENDPROCPROCEDURE Command3.ClickTHISFORM.RELEASEENDPROC学生学籍管理系统的开发和应用,可以提高学校的管理水平。
服务。
其次,对于“排除提问过的同学”这一需求可以这样满足:将点名表增加一个特殊的字段,把提问过的同学对应的字段做标记,用判断语句判断如果特殊字段已经做了标记则下次不在提问。
对于“从提问次数少的同学中选一个”需求可以这样满足:在点名表中增加一个次数字段,每次点名到时,将次数字段增加1次,点名时先中表中找到次数字段最少的同学提问,在使用随机函数随机选出一名同学。
最后,在程序中增加报表功能,报表中包括次次数、总分等满足需求,对于“次数不少于15次”的需求,可以将表增加序列次数字段,每次提问都将获得的分数存放到相应的次数中。
3、设计方案论证3.1系统结构3.2核心算法3.2.1随机数算法在本程序中多次用到了随机函数,在VF中的rand()函数只能返回(0,1)之间的随机数,并不能返回我们需要的“学号”,因此我们必须对rand()函数做适当的操作,使图1:随机查找算法流程图3.2.3中介表思想在需求中教师不只是教一个班级,还有很多个班级,很多课要教,对点名模块的设计绝对不能只对一个表操作,一定要有很多张表,且可以随意切换,用户选择哪张表,就点哪张表内的同学。
首先,将用户选择的表所对应的表名存进一张“中介表”中;点名时在从“中介表”中“拿”出对应的表名,再在点名模块中打开这张表进行操作,思想体现如下:biao=thisform.text1.valueuse mediatablereplace c with biao其中,biao中存放的是用户想点名的表的名字;mediatable为“中介表”;将biao中的内容存放在mediatable的C字段中,每次在使用点名模块点名的时候,都必须打开所有对应的表。
use mediatable3.3.2 Login表2:login表的结构字段名类型长度备注name password 字符字符1010用于存放用于的登录名用于存放登录的密码3.3.2mediatable表3:mediatable的结构字段名类型长度备注A B C D 字符字符字符字符10101010用于存放中介变量的临时字段用于存放中介变量的临时字段用于存放中介变量的临时字段用于存放中介变量的临时字段3.4表单设计3.4.1登录框图2:登录框的表单设计其中的控件信息如下表所示:表4:登录框模块中的控件控件名属性名属性值备注Label1 Label2 Text1 captionCaption用户名密码提示输入用户名提示输入密码Value 接收用户名图5:普通点名的表单设计单击“下一个”按钮,可以显示随机函数返回的随机数。
vfp实验报告心得体会《vfp 实验报告心得体会》在学习编程语言的道路上,我接触到了 VFP(Visual FoxPro),并通过一系列的实验对其有了更深入的理解和体会。
VFP 作为一种数据库管理系统,具有其独特的特点和优势。
在进行实验的过程中,我首先感受到的是它相对直观和简洁的操作界面。
这使得初学者能够较为轻松地上手,快速进入到编程和数据处理的实际操作中。
在实验的初始阶段,对于数据库的创建和表的设计,我遇到了一些挑战。
比如,在确定字段的数据类型和长度时,需要充分考虑实际的数据存储需求和使用场景。
如果一开始没有规划好,后续的数据录入和处理可能会出现各种问题。
经过多次尝试和错误,我逐渐掌握了如何合理地设计数据库结构,以满足不同的应用需求。
数据的录入和编辑是实验中的一个重要环节。
VFP 提供了多种方式来进行数据的输入和修改,如通过表单直接录入、使用命令行操作等。
在这个过程中,我学会了如何保证数据的准确性和完整性。
同时,对于一些错误的数据,如何进行有效的查找和更正,也成为了我需要解决的问题。
通过不断地实践,我逐渐熟悉了各种数据操作的技巧,能够高效地处理大量的数据。
查询操作在 VFP 中具有重要的地位。
通过编写查询语句,可以从庞大的数据中筛选出所需的信息。
刚开始,我对于查询语句的语法和逻辑理解不够深入,导致查询结果不符合预期。
但随着不断地学习和练习,我逐渐掌握了各种查询条件的运用,能够准确地获取到想要的数据。
例如,使用 WHERE 子句来设置筛选条件,使用 ORDER BY 子句对结果进行排序等。
报表的生成也是实验中的一个关键部分。
通过 VFP 的报表设计功能,可以将数据以清晰、美观的形式呈现出来。
在设计报表的过程中,需要考虑布局、字体、颜色等多个方面,以使得报表既易于阅读又具有良好的视觉效果。
这不仅考验了我对 VFP 报表功能的掌握,也锻炼了我的审美和设计能力。
在实验过程中,程序的编写和调试也是必不可少的环节。
vfp小结VFP(Visual FoxPro)是一种基于关系型数据库的编程语言,广泛应用于数据管理和应用程序开发。
它具有强大的数据库操作能力和良好的用户界面设计能力,被广泛用于企业信息管理系统、数据库开发和互联网应用等领域。
以下是关于VFP的小结。
首先,VFP具有简单易学的特点。
与其他编程语言相比,VFP的语法简明直观,易于理解和上手。
无论是新手还是有经验的程序员,都能很快掌握VFP的基本操作和编程思想。
其次,VFP拥有强大的数据库操作能力。
VFP支持各种主流数据库,包括SQL Server、Oracle和MySQL等。
通过VFP,我们可以轻松地连接和操作数据库,进行数据的增删改查操作。
同时,VFP提供了丰富的数据处理函数和查询语句,方便开发者对数据库进行复杂的数据分析和统计。
另外,VFP具有良好的用户界面设计能力。
VFP拥有丰富的界面控件和界面设计工具,开发者可以利用这些工具快速开发出美观易用的用户界面。
同时,VFP还支持Rapid Application Development(RAD)模式,使开发者能够快速构建和修改应用程序,提高开发效率。
此外,VFP还支持面向对象编程(OOP),使程序的开发和维护更加方便。
通过封装、继承和多态等OOP的特性,我们可以更好地组织和管理代码,降低程序的耦合度,提高代码的重用性和可维护性。
最后,VFP是一个具有活跃社区和广泛资源的开发平台。
在VFP的社区中,有许多热心的开发者和专家,会分享自己的经验和技巧。
同时,网络上也有大量的VFP相关的学习资料和教程,供开发者学习和参考。
总的来说,VFP是一种功能强大、易学易用的编程语言,适用于各种规模的应用开发。
它能够帮助开发者快速构建高质量的数据库应用程序,提高开发效率和用户体验。
对于那些需要进行数据管理和应用程序开发的企业和开发者来说,VFP是一个不可忽视的选择。
VFP应用程序设计实例--学生学籍管理系统(1)电脑笔记2007-10-29 16:43:36 阅读2795 评论5 字号:大中小图1MIS是英文Management Information System的英文缩写,意思是信息管理系统,该系统可用于中小型企事业单位业务处理和信息交流,从而大大提高了企业运作的效率。
微软公司的VisualFoxPro可视化面向对象的编程软件是一个设计MIS系统即简单又快捷的好软件。
下面,就以VFP 6.0为开发环境,讲述设计学生学籍管理系统的详细设计过程,也为在看过了前面非表单设计的学生学籍管理系统的朋友们继续了解并学习采用表单(Form)的方式设计MIS系统的方法。
一、设计思路:学生学籍管理系统的运行以封面表单开始,如图1所示,要求用户输入登录密码,并设置三次检查功能,若三次输入的密码均有错,则自动退出系统;否则出现系统菜单,接收用户的操作,操作完毕后用户可以从系统菜单中退出系统。
二、系统功能:系统的功能主要分成十个功能模块,它们是:录入数据、修改数据、删除数据、查询数据、统计数据、显示数据、打印数据、导出数据、导入数据和清空数据。
录入数据可以实现学生信息的录入;修改数据可以实现学生信息的修改;删除数据可以实现学生数据的删除;查询数据可以实现学生信息的查询;统计数据可以实现学生人数、党员人数、学生总平均成绩、高数平均成绩、英语平均成绩和VFP平均成绩的统计;显示数据可以实现以字段分布和二维表两种方式显示学生信息;打印数据可以实现用报表的形式打印学生的信息;导出数据可以实现学生数据的备份,防止数据丢失;导入数据可以实现学生数据的还原,保证数据的正确性;清空数据可以实现学生数据的清空操作。
三、菜单结构框架图四、数据库结构:(可定义表名为xj.dbf)字段名类型宽度小数位数学号字符型 2姓名字符型 6五、具体设计:(给出源代码,表单属性可参照图示在VFP属性框中设置,所有程序文件和表单文件均通过VFP项目管理器建立)1、学生学籍管理系统主程序源代码(可定义程序名为main.prg)_SCREEN.WINDOWSTATE=2 &&设置窗口规格为第2种系统窗口_SCREEN.CAPTION="学生学籍管理系统" &&设置窗口标题为“学生学籍管理系统”_SCREEN.CLOSABLE=.T. &&去掉关闭按钮_SCREEN.CONTROLBOX=.F. &&去掉控制按钮_SCREEN.MAXBUTTON=.F. &&去掉最大化按钮_SCREEN.MINBUTTON=.F. &&去掉最小化按钮_SCREEN.BACKCOLOR=RGB(50,100,128) &&设置窗口的背景色CLOSE ALLCLEAR ALLCLEARSET SYSMENU OFFSET SYSMENU TOSET TALK OFFSET SAFETY OFFSET STATUS BAR OFF &&关闭Visual Foxpro的状态栏DO FORM A:\封面.SCX &&调用系统登录“封面”表单READ EVENT &&响应用户输入DO A:\菜单.MPX &&运行系统菜单READ EVENTSET SYSMENU TO DEFAULT &&恢复Visual Foxpro的系统菜单的默认值SET SYSMENU ON &&显示Visual Foxpro的系统菜单SET STATUS BAR ON &&显示Visual Foxpro的状态栏CLOSE ALL &&关闭所有文件CLEAR ALLRETURN &&返回2、封面表单源代码(A:\封面.sct)PROCEDURE Click &&确定按钮的单击事件过程SET EXACT ON &&设置精确比较命令IF THISFORM.text1.VALUE="8888" &&如果文本框的值是8888THISFORM.RELEASE &&那么释放封面表单DO A:\菜单.MPX &&运行菜单程序ELSE &&否则THISFORM.NO=THISFORM.NO+1 &&将自定义属性NO的值由0加1IF THISFORM.NO>=3 &&如果自定义属性NO的值为3=MESSAGEBOX("密码三次输错,您不能使用本系统!",0+16+0,"学生学籍管理系统") &&那么弹出内容为“密码三次输错,您不能使用本系统!”的对话框QUIT &&结束程序的运行ELSE &&否则=MESSAGEBOX("密码错误!",48+0+0,"警告") &&弹出内容为“密码错误!”的对话框THISFORM.text1.VALUE="" &&设置文本框的内容为空THISFORM.text1.SETFOCUS &&并将光标定位到文本框中THISFORM.REFRESH &&刷新封面表单ENDIFENDIFSET EXACT OFF &&设置关闭精确比较命令ENDPROCPROCEDURE Click &&取消按钮的单击事件过程THISFORM.RELEASE &&释放封面表单CLOSE ALL &&关闭所有文件CLEAR EVENTquitENDPROC (未完)VFP应用程序设计实例--学生学籍管理系统(2)电脑笔记2007-10-29 16:54:06 阅读3360 评论0 字号:大中小图23、录入数据表单源代码(A:\录入.sct,如图2所示)PROCEDURE Init &&录入数据表单的初始化事件过程SET TALK OFFmand4.ENABLED=.f. &&设置第四个按钮为不可用状态mand5.ENABLED=.f. &&设置第五个按钮为不可用状态THISFORM.txt学号.ENABLED=.f. &&设置学号文本框为不可用状态THISFORM.txt姓名.ENABLED=.f. &&设置姓名文本框为不可用状态bo1.ENABLED=.f. &&设置组合框1为不可用状态bo2.ENABLED=.f. &&设置组合框2为不可用状态bo3.ENABLED=.f. &&设置组合框3为不可用状态bo4.ENABLED=.f. &&设置组合框4为不可用状态THISFORM.txt邮编.ENABLED=.f. &&设置邮编文本框为不可用状态THISFORM.txt高数.ENABLED=.f. &&设置高数文本框为不可用状态THISFORM.txt英语.ENABLED=.f. &&设置英语文本框为不可用状态THISFORM.txtVfp.ENABLED=.f. &&设置VFP文本框为不可用状态bo5.ENABLED=.f. &&设置组合框5为不可用状态THISFORM.txt电话.ENABLED=.f. &&设置电话文本框为不可用状态THISFORM.txt通信地址.ENABLED=.f. &&设置通信地址文本框为不可用状态THISFORM.edt备注.ENABLED=.f. &&设置备注编辑框为不可用状态ENDPROCPROCEDURE Load &&录入数据表单的加载事件过程CLOSE DATA &&关闭所有数据库USE A:\XJ存 &&打开A盘中的XJ.DBF表文件SET MULTILOCKS ON &&设置锁定一组记录=CURSORSETPROP('buffering',5,'XJ') &&打开开放式表缓冲ENDPROCPROCEDURE InteractiveChange &&录入数据表单的交互改变事件过程REPL 出生年月 WITHbo2.displayvalue+"."+bo3.displayvalue+"."+ bo4.displayvalue &&用组合框的值替换出生年月字段THISFORM.REFRESH &&刷新录入数据表单ENDPROCPROCEDURE Command1.Click &&单击命令按钮1的事件过程APPEND BLANK &&添加一空白记录THISFORM.REFRESH &&刷新录入数据表单mand1.ENABLED=.f. &&设置命令按钮1为不可用状态mand2.ENABLED=.f. &&设置命令按钮2为不可用状态mand3.ENABLED=.f. &&设置命令按钮3为不可用状态mand4.ENABLED=.t. &&设置命令按钮4为可用状态mand5.ENABLED=.t. &&设置命令按钮5为可用状态mand6.ENABLED=.f. &&设置命令按钮6为不可用状态THISFORM.txt学号.ENABLED=.t.THISFORM.txt姓名.ENABLED=.t.bo1.ENABLED=.t.bo2.ENABLED=.t.bo3.ENABLED=.t.bo4.ENABLED=.t.THISFORM.txt邮编.ENABLED=.t.THISFORM.txt高数.ENABLED=.t.THISFORM.txt英语.ENABLED=.t.THISFORM.txtVfp.ENABLED=.t.bo5.ENABLED=.t.THISFORM.txt电话.ENABLED=.t.THISFORM.txt通信地址.ENABLED=.t.THISFORM.edt备注.ENABLED=.t.THISFORM.txt学号.SETFOCUSENDPROCPROCEDURE Command2.Click &&单击命令按钮2的事件过程SET DELETE ON &&设置打开删除命令DELETE &&删除当前记录YN=MESSAGEBOX('确实要删除这条记录?',4+32+256,'删除确认') &&弹出内容为“确实要删除这条记录?”的对话框DO CASE &&运行条件判断语句CASE YN=6 &&当单击“是”按钮时=TABLEUPDATE(.T.) &&执行更新表函数,删除当前记录CASE YN=7 &&当单击“否”按钮时RECALL &&恢复已作了删除标记的当前记录ENDCASETHISFORM.REFRESHENDPROCPROCEDURE Command3.Click &&单击命令按钮3的事件过程mand1.ENABLED=.f.mand2.ENABLED=.f.mand3.ENABLED=.f.mand4.ENABLED=.t.mand5.ENABLED=.t.mand6.ENABLED=.f.ENDPROCPROCEDURE Command4.Click &&单击命令按钮4的事件过程=TABLEUPDATE(.T.)mand1.ENABLED=.t.mand2.ENABLED=.t.mand3.ENABLED=.t.mand4.ENABLED=.f.mand5.ENABLED=.f.mand6.ENABLED=.t.ENDPROCPROCEDURE Command5.Click &&单击命令按钮5的事件过程=TABLEREVERT(.T.)mand1.ENABLED=.t.mand2.ENABLED=.t.mand3.ENABLED=.t.mand4.ENABLED=.f.mand5.ENABLED=.f.mand6.ENABLED=.t.ENDPROCPROCEDURE Command6.Click &&单击命令按钮6的事件过程SELE 1 &&选择1号工作区USE A:\XJ EXCLUSIVE 打开A盘中的XJ.DBF数据表PACK &&彻底删除已作了删除标记的记录THISFORM.RELEASE &&释放录入数据表单ENDPROCPROCEDURE InteractiveChangeREPL 是否党员 WITH bo5.DISPLAYVALUE &&用组合框的值替换是否党员字段THISFORM.REFRESHENDPROC4、修改数据表单源代码(A:\修改.sct)图3PROCEDURE Command1.ClickIF NOT BOF() &&如果记录指针没有到记录的开头SKIP –1 &&向上跳转一个记录THISFORM.REFRESHmand2.ENABLED=.t.ELSEWAIT WINDOW '已经是第一条记录了!' &&系统给出内容为“已经是第一条记录了!”提示窗口ENDIFENDPROCPROCEDURE Command2.ClickIF NOT EOF() &&如果记录指针没有到记录的结尾SKIP &&向下跳转一个记录THISFORM.REFRESH mand1.ENABLED=.t.ELSEWAIT WINDOW '已经是最后一条记录了!'ENDIFENDPROCPROCEDURE Command3.ClickGO TOP &&将记录指针移到记录的开头THISFORM.REFRESH mand1.ENABLED=.f. mand2.ENABLED=.t.ENDPROCPROCEDURE Command4.ClickGO BOTTOM &&将记录指针移到记录的结尾THISFORM.REFRESH mand1.ENABLED=.t. mand2.ENABLED=.f.ENDPROCPROCEDURE Command5.Click=TABLEUPDATE(.T.) mand1.ENABLED=.t. mand2.ENABLED=.t. mand3.ENABLED=.t. mand4.ENABLED=.t.mand5.ENABLED=.f.mand6.ENABLED=.f.mand7.ENABLED=.t.ENDPROCPROCEDURE Command6.Click=TABLEREVERT(.T.) &&启用表缓冲,放弃表中对所有记录所做的修改函数mand1.ENABLED=.t.mand2.ENABLED=.t.mand3.ENABLED=.t.mand4.ENABLED=.t.mand5.ENABLED=.f.mand6.ENABLED=.f.mand7.ENABLED=.t.ENDPROCPROCEDURE Command7.ClickUSE A:\XJ EXCLUSIVEPACKTHISFORM.RELEASEENDPROCPROCEDURE ClickIF EMPTY(bo1.VALUE) &&如果组合框1的值为空=MESSAGEBOX("请选择学号!",48+0+0,"学生学籍管理系统") &&系统给出内容为“请选择学号!”的对话框ENDIFAA=RECNO() &&用显示记录号的函数将记录号赋给变量AA GO AA &&将记录指针移到当前记录号THISFORM.txt学号.REFRESH &&刷新学号文本框的内容THISFORM.txt姓名.REFRESH &&刷新姓名文本框的内容THISFORM.txt性别.REFRESH &&刷新性别文本框的内容THISFORM.txt出生年月.REFRESH &&刷新出生年月文本框的内容THISFORM.txt邮编.REFRESH &&刷新邮编文本框的内容THISFORM.txt高数.REFRESH &&刷新高数文本框的内容THISFORM.txt英语.REFRESH &&刷新英语文本框的内容THISFORM.txtVfp.REFRESH &&刷新VFP文本框的内容THISFORM.txt是否党员.REFRESH &&刷新是否党员文本框的内容THISFORM.txt电话.REFRESH &&刷新电话文本框的内容THISFORM.txt通信地址.REFRESH &&刷新通信地址文本框的内容THISFORM.edt备注.REFRESH &&刷新备注编辑框的内容mand5.ENABLED=.t.mand6.ENABLED=.t.ENDPROC(未完)VFP应用程序设计实例--学生学籍管理系统(2)电脑笔记2007-10-29 16:54:06 阅读3360 评论0 字号:大中小图23、录入数据表单源代码(A:\录入.sct,如图2所示)PROCEDURE Init &&录入数据表单的初始化事件过程SET TALK OFFmand4.ENABLED=.f. &&设置第四个按钮为不可用状态mand5.ENABLED=.f. &&设置第五个按钮为不可用状态THISFORM.txt学号.ENABLED=.f. &&设置学号文本框为不可用状态THISFORM.txt姓名.ENABLED=.f. &&设置姓名文本框为不可用状态bo1.ENABLED=.f. &&设置组合框1为不可用状态bo2.ENABLED=.f. &&设置组合框2为不可用状态bo3.ENABLED=.f. &&设置组合框3为不可用状态bo4.ENABLED=.f. &&设置组合框4为不可用状态THISFORM.txt邮编.ENABLED=.f. &&设置邮编文本框为不可用状态THISFORM.txt高数.ENABLED=.f. &&设置高数文本框为不可用状态THISFORM.txt英语.ENABLED=.f. &&设置英语文本框为不可用状态THISFORM.txtVfp.ENABLED=.f. &&设置VFP文本框为不可用状态bo5.ENABLED=.f. &&设置组合框5为不可用状态THISFORM.txt电话.ENABLED=.f. &&设置电话文本框为不可用状态THISFORM.txt通信地址.ENABLED=.f. &&设置通信地址文本框为不可用状态THISFORM.edt备注.ENABLED=.f. &&设置备注编辑框为不可用状态ENDPROCPROCEDURE Load &&录入数据表单的加载事件过程CLOSE DATA &&关闭所有数据库USE A:\XJ存 &&打开A盘中的XJ.DBF表文件SET MULTILOCKS ON &&设置锁定一组记录=CURSORSETPROP('buffering',5,'XJ') &&打开开放式表缓冲ENDPROCPROCEDURE InteractiveChange &&录入数据表单的交互改变事件过程REPL 出生年月 WITHbo2.displayvalue+"."+bo3.displayvalue+"."+ bo4.displayvalue &&用组合框的值替换出生年月字段THISFORM.REFRESH &&刷新录入数据表单ENDPROCPROCEDURE Command1.Click &&单击命令按钮1的事件过程APPEND BLANK &&添加一空白记录THISFORM.REFRESH &&刷新录入数据表单mand1.ENABLED=.f. &&设置命令按钮1为不可用状态mand2.ENABLED=.f. &&设置命令按钮2为不可用状态mand3.ENABLED=.f. &&设置命令按钮3为不可用状态mand4.ENABLED=.t. &&设置命令按钮4为可用状态mand5.ENABLED=.t. &&设置命令按钮5为可用状态mand6.ENABLED=.f. &&设置命令按钮6为不可用状态THISFORM.txt学号.ENABLED=.t.THISFORM.txt姓名.ENABLED=.t.bo1.ENABLED=.t.bo2.ENABLED=.t.bo3.ENABLED=.t.bo4.ENABLED=.t.THISFORM.txt邮编.ENABLED=.t.THISFORM.txt高数.ENABLED=.t.THISFORM.txt英语.ENABLED=.t.THISFORM.txtVfp.ENABLED=.t.bo5.ENABLED=.t.THISFORM.txt电话.ENABLED=.t.THISFORM.txt通信地址.ENABLED=.t.THISFORM.edt备注.ENABLED=.t.THISFORM.txt学号.SETFOCUSENDPROCPROCEDURE Command2.Click &&单击命令按钮2的事件过程SET DELETE ON &&设置打开删除命令DELETE &&删除当前记录YN=MESSAGEBOX('确实要删除这条记录?',4+32+256,'删除确认') &&弹出内容为“确实要删除这条记录?”的对话框DO CASE &&运行条件判断语句CASE YN=6 &&当单击“是”按钮时=TABLEUPDATE(.T.) &&执行更新表函数,删除当前记录CASE YN=7 &&当单击“否”按钮时RECALL &&恢复已作了删除标记的当前记录ENDCASETHISFORM.REFRESHENDPROCPROCEDURE Command3.Click &&单击命令按钮3的事件过程mand1.ENABLED=.f.mand2.ENABLED=.f.mand3.ENABLED=.f.mand4.ENABLED=.t.mand5.ENABLED=.t.mand6.ENABLED=.f.ENDPROCPROCEDURE Command4.Click &&单击命令按钮4的事件过程=TABLEUPDATE(.T.)mand1.ENABLED=.t.mand2.ENABLED=.t.mand3.ENABLED=.t.mand4.ENABLED=.f.mand5.ENABLED=.f.mand6.ENABLED=.t.ENDPROCPROCEDURE Command5.Click &&单击命令按钮5的事件过程=TABLEREVERT(.T.)mand1.ENABLED=.t.mand2.ENABLED=.t.mand3.ENABLED=.t.mand4.ENABLED=.f.mand5.ENABLED=.f.mand6.ENABLED=.t.ENDPROCPROCEDURE Command6.Click &&单击命令按钮6的事件过程SELE 1 &&选择1号工作区USE A:\XJ EXCLUSIVE 打开A盘中的XJ.DBF数据表PACK &&彻底删除已作了删除标记的记录THISFORM.RELEASE &&释放录入数据表单ENDPROCPROCEDURE InteractiveChangeREPL 是否党员 WITH bo5.DISPLAYVALUE &&用组合框的值替换是否党员字段THISFORM.REFRESHENDPROC4、修改数据表单源代码(A:\修改.sct)图3PROCEDURE Command1.ClickIF NOT BOF() &&如果记录指针没有到记录的开头SKIP –1 &&向上跳转一个记录THISFORM.REFRESHmand2.ENABLED=.t.ELSEWAIT WINDOW '已经是第一条记录了!' &&系统给出内容为“已经是第一条记录了!”提示窗口ENDIFENDPROCPROCEDURE Command2.ClickIF NOT EOF() &&如果记录指针没有到记录的结尾SKIP &&向下跳转一个记录THISFORM.REFRESH mand1.ENABLED=.t.ELSEWAIT WINDOW '已经是最后一条记录了!'ENDIFENDPROCPROCEDURE Command3.ClickGO TOP &&将记录指针移到记录的开头THISFORM.REFRESH mand1.ENABLED=.f. mand2.ENABLED=.t.ENDPROCPROCEDURE Command4.ClickGO BOTTOM &&将记录指针移到记录的结尾THISFORM.REFRESH mand1.ENABLED=.t. mand2.ENABLED=.f.ENDPROCPROCEDURE Command5.Click=TABLEUPDATE(.T.) mand1.ENABLED=.t. mand2.ENABLED=.t. mand3.ENABLED=.t. mand4.ENABLED=.t.mand5.ENABLED=.f.mand6.ENABLED=.f.mand7.ENABLED=.t.ENDPROCPROCEDURE Command6.Click=TABLEREVERT(.T.) &&启用表缓冲,放弃表中对所有记录所做的修改函数mand1.ENABLED=.t.mand2.ENABLED=.t.mand3.ENABLED=.t.mand4.ENABLED=.t.mand5.ENABLED=.f.mand6.ENABLED=.f.mand7.ENABLED=.t.ENDPROCPROCEDURE Command7.ClickUSE A:\XJ EXCLUSIVEPACKTHISFORM.RELEASEENDPROCPROCEDURE ClickIF EMPTY(bo1.VALUE) &&如果组合框1的值为空=MESSAGEBOX("请选择学号!",48+0+0,"学生学籍管理系统") &&系统给出内容为“请选择学号!”的对话框ENDIFAA=RECNO() &&用显示记录号的函数将记录号赋给变量AA GO AA &&将记录指针移到当前记录号THISFORM.txt学号.REFRESH &&刷新学号文本框的内容THISFORM.txt姓名.REFRESH &&刷新姓名文本框的内容THISFORM.txt性别.REFRESH &&刷新性别文本框的内容THISFORM.txt出生年月.REFRESH &&刷新出生年月文本框的内容THISFORM.txt邮编.REFRESH &&刷新邮编文本框的内容THISFORM.txt高数.REFRESH &&刷新高数文本框的内容THISFORM.txt英语.REFRESH &&刷新英语文本框的内容THISFORM.txtVfp.REFRESH &&刷新VFP文本框的内容THISFORM.txt是否党员.REFRESH &&刷新是否党员文本框的内容THISFORM.txt电话.REFRESH &&刷新电话文本框的内容THISFORM.txt通信地址.REFRESH &&刷新通信地址文本框的内容THISFORM.edt备注.REFRESH &&刷新备注编辑框的内容mand5.ENABLED=.t.mand6.ENABLED=.t.ENDPROC(未完)、查询数据表单源代码(A:\查询.sct)图4PROCEDURE ClickIF EMPTY(bo1.VALUE)=MESSAGEBOX("请选择学号!",48+0+0,"学生学籍管理系统")ENDIFAA=RECNO()GO AATHISFORM.txt学号.REFRESHTHISFORM.txt姓名.REFRESHTHISFORM.txt性别.REFRESHTHISFORM.txt出生年月.REFRESHTHISFORM.txt邮编.REFRESHTHISFORM.txt高数.REFRESHTHISFORM.txt英语.REFRESHTHISFORM.txtVfp.REFRESHTHISFORM.txt是否党员.REFRESHTHISFORM.txt电话.REFRESHTHISFORM.txt通信地址.REFRESHTHISFORM.edt备注.REFRESHENDPROC6、统计数据表单源代码(A:\统计.sct)图5PROCEDURE Click &&单击“统计记录总数”按钮时的事件过程COUNT TO AA FOR 是否党员="是" &&对党员计数,并将计数结果赋给变量AA THISFORM.text5.value=AA &&将变量AA的值赋给文本框5THISFORM.text5.REFRESHENDPROCPROCEDURE Click &&单击“统计英语平均成绩”按钮时的事件过程AVERAGE 英语 TO AA &&对所有记录的英语成绩求平均,并将平均值赋给变量AA THISFORM.text3.value=AA &&将变量AA的值赋给文本框3THISFORM.text3.REFRESHENDPROCPROCEDURE Click &&单击“统计VFP平均成绩”按钮时的事件过程AVERAGE vfp TO AA &&对所有记录的VFP成绩求平均,并将平均值赋给变量AA THISFORM.text4.value=AA &&将变量AA的值赋给文本框4THISFORM.text4.REFRESHENDPROCPROCEDURE Click &&单击“统计总平均成绩”按钮时的事件过程AVERAGE 高数 TO AA &&对所有记录的高数成绩求平均,并将平均值赋给变量AA AVERAGE 英语 TO BB &&对所有记录的英语成绩求平均,并将平均值赋给变量BB AVERAGE vfp TO CC &&对所有记录的VFP成绩求平均,并将平均值赋给变量CC STORE (AA+BB+CC)/3 TO DD &&将三门成绩的平均成绩和除3的总平均成绩赋给DD THISFORM.text6.value=DD &&将变量DD的值赋给文本框6THISFORM.text6.REFRESHENDPROC7、显示数据表单源代码(A:\显示.sct)图6PROCEDURE Command1.Click &&单击“上条”按钮的事件过程IF NOT BOF()SKIP -1THISFORM.REFRESHmand2.ENABLED=.t.ELSEWAIT WINDOW '已经是第一条记录了!'ENDIFENDPROCPROCEDURE Command2.Click &&单击“下条”按钮的事件过程IF NOT EOF()SKIPTHISFORM.REFRESHmand1.ENABLED=.t.ELSEWAIT WINDOW '已经是最后一条记录了!'ENDIFENDPROCPROCEDURE Command3.Click &&单击“首条”按钮的事件过程GO TOPTHISFORM.REFRESHmand1.ENABLED=.f.mand2.ENABLED=.t.ENDPROCPROCEDURE Command4.Click &&单击“末条”按钮的事件过程GO BOTTOMTHISFORM.REFRESHmand1.ENABLED=.t.mand2.ENABLED=.f.ENDPROCPROCEDURE Command5.Click &&单击“返回”按钮的事件过程THISFORM.RELEASEENDPROC8、删除数据表单源代码(A:\删除.sct)图7PROCEDURE Click &&单击“显示”按钮的事件过程IF EMPTY(bo1.VALUE)=MESSAGEBOX("请选择学号!",48+0+0,"学生学籍管理系统") mand2.ENABLED=.f.ELSEmand2.ENABLED=.t.ENDIFAA=RECNO()GO AATHISFORM.txt学号.REFRESHTHISFORM.txt姓名.REFRESHTHISFORM.txt性别.REFRESHTHISFORM.txt出生年月.REFRESHTHISFORM.txt邮编.REFRESHTHISFORM.txt高数.REFRESHTHISFORM.txt英语.REFRESHTHISFORM.txtVfp.REFRESHTHISFORM.txt是否党员.REFRESHTHISFORM.txt电话.REFRESHTHISFORM.txt通信地址.REFRESHTHISFORM.edt备注.REFRESHENDPROCPROCEDURE Click &&单击“删除”按钮的事件过程SET DELETE ONDELETEYN=MESSAGEBOX('确实要删除这条记录?',4+32+256,'删除确认')DO CASECASE YN=6=TABLEUPDATE(.T.)=MESSAGEBOX("记录已成功删除!",0+64+0,'学生学籍管理系统') mand2.ENABLED=.f.bo1.DISPLAYVALUE="请选择"GO TOPCASE YN=7RECALLENDCASETHISFORM.REFRESHENDPROCPROCEDURE Init &&删除数据表单的初始化过程SET TALK OFFmand2.ENABLED=.f.ENDPROCPROCEDURE ClickUSE A:\XJ EXCLUSIVEPACKTHISFORM.RELEASEENDPROC(未完)VFP应用程序设计实例--学生学籍管理系统(4)电脑笔记2007-10-29 16:58:43 阅读3843 评论5 字号:大中小9、导出数据表单源代码(A:\导出.sct)图8PROCEDURE Click &&单击“确定”按钮的事件过程SET SAFETY OFF &&覆盖文件时不提示确认USE A:\XJGO TOPIF EMPTY(bo1.VALUE)=MESSAGEBOX("请选择盘符!",48+0+0,"学生学籍管理系统")ELSEIF EMPTY(THISFORM.text1.VALUE)=MESSAGEBOX("请输入文件名!",48+0+0,"学生学籍管理系统")ELSEIF RECC()>0 &&如果表记录大于0DRIVER=BO1.DISPLAYVALUE &&将组合框1的值赋给变量DRIVERFILENAME=ALLTRIM(THISFORM.TEXT1.TEXT) &&将去掉空格的文件名赋给变量FILENAMECOPY TO &DRIVER\&FILENAME &&将系统表文件复制到选定的盘符和文件名中 =MESSAGEBOX("本系统所有数据已转出完毕!",48,"信息提示")USETHISFORM.RELEASEELSE=MESSAGEBOX("没有任何数据,不能转出",48,"信息提示")USETHISFORM.RELEASEENDIFENDIFENDIFENDPROCPROCEDURE Click &&单击“取消”按钮的事件过程RELEASE THISFORMENDPROC10、导入数据表单源代码(A:\导入.sct)图9PROCEDURE Click &&单击“确定”按钮的事件过程SET SAFETY OFFIF EMPTY(bo1.VALUE)=MESSAGEBOX("请选择要导入的数据表所在的盘符!",48+0+0,"学生学籍管理系统")THISFORM.text1.SETFOCUSELSEIF EMPTY(THISFORM.text1.VALUE)=MESSAGEBOX("请输入要导入的数据表名!",48+0+0,"学生学籍管理系统")ELSEDRIVER=bo1.VALUEFILENAME=ALLTRIM(THISFORM.TEXT1.VALUE)USE A:\XJ? &&打印一空行ON ERROR ? MESSAGE() &&发生找不到文件的错误时,打印错误信息APPEND FROM &DRIVER\&FILENAME &&将选定的文件追加到系统表文件中 =MESSAGEBOX('数据表已成功导入原表!',0+64+0,'学生学籍管理系统')USETHISFORM.RELEASEENDIFENDIFENDPROC11、打印数据表单源代码(A:\打印.sct)图10PROCEDURE Command1.Click??CHR(7)REPORT FORM A:\学生学籍管理表.frx NOEJECT NOCONSOLE TO PRINTERENDPROCPROCEDURE Command2.ClickREPORT FORM A:\学生学籍管理表.frx PREVIEWENDPROCPROCEDURE Command3.ClickTHISFORM.RELEASEENDPROC学生学籍管理系统的开发和应用,可以提高学校的管理水平。
浅析VFP在实际工作中的应用--基于图文制作管理信息系统的编制佚名【摘要】As a service department, the daily affairs and production management is very important, good and bad management directly affects the service level of the Department and work efficiency , previous manual management for a has a project outsourcing, procurement, employee attendance, and so many affairs of the service sector is a laborious, time-consuming and error prone work. Therefore, to design a set of computer information management system for the work of these complicated and daily work is the only way to solve the above problems. The paper expounds the graphic design of a graphic center management information system design ideas, procedures, functions and the realization method. The application of the system makes the work more systematic , standardized and traceable, greatly improving the work efficiency, and convenient to review and query the historical work.%作为一个服务部门,日常的事务与生产管理是非常重要的,管理的好与坏直接影响着部门的服务水平与工作效率,以往的人工管理对于一个有着项目外包、物资采购、员工考勤等等众多事务的服务部门来说是一项费力、费时而又容易出错的工作。
MIS开发案例市场营销管理子系统开发学习目标知识目标:●加深对管理信息系统理论与方法的理解●掌握管理信息系统开发的具体实现过程能力目标:●独立完成简单MIS的分析、设计与实施【开章语】在前述章节中,全面、系统地讲述了管理信息系统的基本理论知识,重在阐释管理信息系统开发的基本原理、方法、程序以及相关概念,本章主要通过实际中常见的企业管理信息系统中市场营销管理子系统开发案例的介绍,以进一步加深对理论知识的理解和掌握。
第一节市场营销管理子系统概述随着我国市场经济体制的确立、发展,企业在市场竞争中越来越重视市场营销在企业经营管理中的重要性,市场营销的观念、理论和实务在企业经营中都得到了发展和普及应用。
有效的市场营销也大大提高了企业的经营绩效。
为了有效地履行市场营销职责,成功地开展市场营销活动,企业经营部门需要大量的信息。
而企业通过各种渠道得到的信息,是零乱无序,有的可能是无效的、过时的、不可信的,无法为科学的市场营销决策等业务活动服务。
越来越多的企业意识到了这方面的问题,并采取实际措施建立、改进、加强它们的市场营销管理信息系统。
一、市场营销业务范围与特征(一)市场营销业务范围企业的市场营销业务范围总体来说,是以满足顾客需求为中心的所有经营活动,包括外部市场分析、市场选择、内部的市场营销组合策略以及市场营销活动的计划、控制等。
具体又包括以下几方面内容:1.市场环境分析市场环境分析是在市场调研的基础上,对企业外部的影响、企业市场营销活动的宏观环境、微观环境进行分析,以找出企业的市场营销机会和面临的威胁,并在此基础上进行市场细分,确定有效的目标市场,为进一步进行市场营销业务决策提供依据。
2.市场营销组合决策这是企业根据外部市场营销环境的分析判断,结合企业内部的资源条件,对企业整体市场营销业务活动进行的综合决策,目的是为了提高企业市场营销业务活动的整体效果。
具体又包括产品决策、价格决策、分销渠道决策、促销决策等内容。
目录1引言 (1)2系统技术及运行环境 (1)2.1 Visual Foxpro 6.0简介 (1)2.2系统开发及运行环境 (1)3 系统分析 (2)3.1需求分析 (2)3.2可行性分析 (2)4总体设计 (2)4.1 设计目标 (2)4.2项目规划 (3)4.3系统功能图 (4)5系统详细设计 (5)5.1数据库设计 (5)5.2登陆界面设计 (6)5.3学生信息录入 (8)5.4 学生信息修改 (9)5.5 学生信息查询 (11)5.6系管理表单设计 (12)5.7班级管理 (15)5.8学生成绩录入 (17)5.9 修改学生成绩 (19)5.10学生成绩查询 (21)5.11用户管理 (22)5.12修改用户密码 (25)5.13关于系统 (26)6 结论 (27)致谢 (28)参考文献 (29)1引言学生信息管理系统(Student Information Management System),以下简称SIMS,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(Management Information System)。
它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。
能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。
在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。
诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。
随着科学技术的不断提高,计算机科学日渐成熟, 使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。
VFP的MIS研制中的问题及其解决方法
张银明
【期刊名称】《华侨大学学报(自然科学版)》
【年(卷),期】2004(025)001
【摘要】VFP (Visual FoxPro)功能较强,是一个具有特色的OOP(Object-Oriented Programming)平台之一.在进行MIS的研制中,其丰富多彩的功能得以
很好的应用,但也发现VFP系统本身存在一些问题.诸如DO FORM执行的不一致、系统编译前后的执行不一致、SORT命令同复合索引的索引不唯一.这些问题给
MIS的研制和正常运行带来不少困难.文中介绍这些问题及其解决方法.
【总页数】4页(P83-86)
【作者】张银明
【作者单位】华侨大学信息科学与工程学院,福建,泉州,362011
【正文语种】中文
【中图分类】TP319:G482
【相关文献】
1.SULCMIS Ⅲ系统应用中遇到的问题及解决方法 [J], 卢月红
2.基于VFP开发MIS中必须注意的数据库问题 [J], 张银明;杨幸
3.MQ软件在TMIS应用中存在的问题及解决方法 [J], 赵艳春
4.VFP环境下MIS开发常见问题及解决方法 [J], 黎海生
5.基于面向对象的VFP在MIS研制中应用 [J], 杨幸;张银明
因版权原因,仅展示原文概要,查看原文内容请购买。
实用小型信息系统的开发目录内容提要:引言:一、课题研究的现实背景1.1课题背景1.2 数据处理技术的发展1.3 国内外办公信息发展概况二、管理信息系统2.1管理信息系统的简介2.2管理信息系统的开发三、面向对象程序设计及特点3.1 面向对象程序的产生3.2面向对象程序设计中的对象3.3从类看面向对象程序设计方法的特点3.4 面向对象程序设计方法的基本思想四、VFP系统介绍4.1 简介4.2 VFP的主界面4.3 VFP中的数据库和表五、图书管理系统的实现5.1系统总体结构5.2 系统的数据组成结构5.3 录入模块5.4 查询模块5.5 借还模块5.6 报表5.7 程序的执行5.8 不足之处结束语[参考文献][附录]内容提要:随着信息技术的发展,人们对于运用计算机来辅助,协调和管理自身工作的需要正在逐步提高。
而面向对象的程序设计在当今应用程序的开发过程中具有重要的地位,它的最大的优点就是能够提高程序开发的质量和开发速度。
管理类信息系统是日常最为广泛的计算机应用,已延伸到社会的各个领域。
针对现在学校应用计算机的一些情况,及本人在计算机学习使用中碰到的具体问题的,结合基础数据库应用知识以及信息系统的相关内容,本文主要介绍利用vfp开发windows应用程序中的一些基本知识,及本系统各部分的实现情况。
关键词:面向对象编程数据访问接口 ADO编程对象模型Abstract:Following the development of the information technology , the necessity of using the computers to accessory , adjust and manage the work is needed more an more . While the object-oriented programming plays an imporfant role in the development of today’s application . The advantage is that it can improve the qualify and promote the speed of process programming . The information system of management is most widely used computer application in daily life , it has reached to every aspect of our society . Basing on the situation in using computers in schools and the problems met in my study on using thecomputers , I combine the relative information system , to intw the basic knowledge in using VFP to programmer windows’ application and how to make every part of the system affect in this passage .Key words:object-oriented programmingdata visiting interfaceADO programming object-oriented引言:人类20世纪最重大的科技成果之一是数字计算机的发明。