《VFP系统开发与程序连编.ppt》由会员分享,可在线阅读,更多相关《VFP系统开发与程序连编.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VFP系统开发与程序连编系统开发与程序连编临沧市技工学校甘云平概论概论VFP系统开发与程序连编作为VFP数据库系统课程的最后一章节,结合实例,我们将重点讲解VFP系统开发的流程,同时将有关的软件工程、数据库设计等知识融入其中。作为本课程的最后内容,要求学生重点掌握数据库应用系统的开发过程,学会利用VFP进行小型数据库应用系统的开发。数据库应用系统概论数据库应用系统概论数据库应用系统根据以数据为中心和以处理为中心可分为两类:前者以提供数据为目的,重点在数据采集、建库及数据库维护等工作;后者虽然也包含这些内容,但重点是使用数据,即进行查询、统计、打印报表等工作,其数据量比前者小得多。以处理为中心的
2、数据库应用系统适用于一般企事业单位。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤以处理为中心的数据库应用系统开发流程图需求分析数据分析功能分析数据库设计应用程序设计系统试运行(联调)满意否?系统运行与维护YNN一、需求分析一、需求分析系统需求包括对数据的需求和对应用功能的需求两方面内容,进行需求分析应注意以下问题:l确定需求必须建立在调查研究的基础上,包括访问用户,了解人工系统模型,采集和分析有关资料等工作。l需求分析阶段应让最终用户更多地参与。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤认真细致地规划将节省时间、精力和资金二、数据库设计二、数据库设计V
3、FP通过设置数据库来统一管理数据,组织严密的数据库能为以后的应用程序设计带来方便。1、创建数据库的优点定义数据词典、建立表的关系等2、数据库的逻辑设计与物理设计3、代码设计代码设计的概念不同于编码(编程),为维持数据的一致性和提供操作的方便性,应用系统中常需为某类数据设置一套代码。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计以处理为中心的应用系统中,应用程序设计和数据库设计两方面的需求是相互制约的,在设计时,我们必须两者考虑。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计1、用户界面设计与编码
4、2、数据输出设计包括查询、报表、标签和通过ActiveX控件来共享其它应用程序信息。3、数据库维护功能包括对数据库以及自由表的数据进行添加、删除、修改等。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计4、构造VFP应用程序VFP将具有.app扩展名的文件称为应用程序(application),通常所说的应用程序是一种统称,例如具有.exe文件扩展名的可执行程序(executable program)也是一种应用程序。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤4、构造VFP应用程序VFP的运行环境有两种。一种是VFP开发环境
5、(启动VFP后的状态),各种程序都可在这种环境中用DO命令运行。例如:DO EX 运行扩展名为.prg的命令文件 DO EX.mpr 运行菜单程序 DO FORM EX运行扩展名为.scx的表单 DO EX.app运行应用程序 DO EX.exe运行可执行程序第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计4、构造VFP应用程序另一种环境是Windows中除VFP之外的环境,在上述各种程序中,仅.exe程序能脱离VFP独立运行。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计VFP应用程序的总体组成
6、(1)应用程序主文件可以是.prg文件、菜单程序.mpr或表单文件.scx作用:l对应用程序的环境进行初始化l作为应用程序执行的起点l控制事件循环l恢复先前环境第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计VFP应用程序的总体组成(2)初始化环境l设置状态状态包括SET命令状态、窗口状态等如:SETTALKOFFl初始化变量,建立公共变量l建立应用的一条默认路径l打开需要的数据库、表及索引第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计VFP应用程序的总体组成(3)显示初始的用户界面初始的用户界面
7、可以是菜单或表单,通常为应用程序的封面或登录界面。如果.prg为主文件,则可用DO命令来调用相应的初始用户界面。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计VFP应用程序的总体组成(4)控制事件循环命令格式:READEVENTS功能:开始事件的循环,等待用户操作说明:*仅.exe应用程序需要建立事件循环,在VFP开发环境中运行的应用程序不必使用该命令。如:DOex.mpr调用主菜单 READ EVENTS显示菜单,开始处理用户事件或:DO FORM ex调用主表单 READ EVENTS显示主表单,开始处理用户事件第一节、数据库应用系统的开发
8、步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计VFP应用程序的总体组成(4)控制事件循环注意:如果不设置READEVENTS命令,程序在VFP环境中能够正常运行,但在WINDOWS环境中刚开始就结束,即经典的一闪而过现象。必须在应应用程序中用CLEAREVENTS命令来结束事件的循环,使VFP能执行后继命令,通常我们将CLEAREVENTS命令设置在表单的“退出”按钮中或菜单中。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计VFP应用程序的总体组成(5)恢复先前的环境退出应用程序时,应恢复初始环境以前的环境。第一节、数据库
9、应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程序设计综上所述,我们可以制作一个简单的.prg主文件。set talk off 设置不显示命令结果set defa to d:QCGL设置文件默认路径Clear all清除所有变量和屏幕信息DO FORMsetup调用主表单DO mainmenu.mpr调用主菜单READ EVENTS开始事件的循环DO cleanup退出之前,用cleanup.prg恢复先前环境,如果这里用quit命令,则环境恢复代码需在如“退出”菜单项中设置。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤三、应用程序设计三、应用程
10、序设计初始化环境显示初始用户界面恢复先前环境四、软件测试四、软件测试在设计的过程中和设计结束时,我们都必须对应用反复测试,以便纠正错误,达到预定功能。在系统投入试运行时,我们需装入少量数据,等确认没有重大问题后再装入大批数据,以免导致较大的返工。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤五、应用程序发布五、应用程序发布为保障开发者的知识产权,应用程序最好能加密,并且能在Windows环境中独立运行,这就需要将应用程序“连编”为.exe程序,并进行应用程序发布。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤六、系统运行与维护六、系统运行与维护试运行的结束标
11、志着系统开发的基本完成,但是只要系统还在使用,就可能常需要调整、修改和升级,以便使应用程序更加完善。第一节、数据库应用系统的开发步骤第一节、数据库应用系统的开发步骤第二节、第二节、“汽车修理管理系统汽车修理管理系统”的开发的开发本节以本节以“汽车修理汽车修理管理系统管理系统”为实例,简为实例,简明描述开发一个明描述开发一个VFP应用程序系统的的过应用程序系统的的过程。程。一、需求分析一、需求分析某汽车修理厂根据业务发展的需要,决定建立一个“汽车修理管理系统”,以取代人工管理,开发的目的如下:l能对汽车修理有关的各类数据进行输入、修改和查询。l编制季度零件订货计划l打印汽车修理发票和工资月报表“
12、汽车修理管理系统汽车修理管理系统”的开发的开发用户提出开发应用系统的要求后,软件开发者应通过调查研究归纳出目标系统的数据需求和功能一、需求分析一、需求分析1、数据需求在调研的过程中,用户提供了该系统所需的输入、输出单据。输入单据包括修车登记单、汽车修理单、零件入库单和零件出库单等4种;输出单据包括季度零件订货计划、汽车修理发票和工资月报表等3种。以上单据其结构如下:“汽车修理管理系统汽车修理管理系统”的开发的开发一、需求分析一、需求分析“汽车修理管理系统汽车修理管理系统”的开发的开发修理项目修理项目发动机汽车牌号汽车牌号云S0031型号型号S130生产厂生产厂南方汽车厂车主名车主名李小杰地址地
13、址临沧市南屏路23号电话电话212222修车登记单编号:5001日期:04/12/11一、需求分析一、需求分析汽车修理单“汽车修理管理系统汽车修理管理系统”的开发的开发修理项目修理项目大修送修日期送修日期04/11/24零件号零件号1001100410008数量数量252修理小时修理小时98登记单编号:5005汽车牌号:云S33333完工日期:04/11/28修理工:李平一、需求分析一、需求分析零件入库单“汽车修理管理系统汽车修理管理系统”的开发的开发零件号零件名成本数量价格最低库存订货量日期:验收人:一、需求分析一、需求分析零件出库单“汽车修理管理系统汽车修理管理系统”的开发的开发零件号数量
14、编号:日期:修理工:一、需求分析一、需求分析第1季度零件订货计划“汽车修理管理系统汽车修理管理系统”的开发的开发零件号零件名库存量最低库存订货量100003离合器342零件订货计划一、需求分析一、需求分析2、功能需求l数据登记对修车登记单、汽车修理单、零件入库单和零件出库单及时登记,并能够随时修改。l查询能查询登记表、修理单、汽车、车主、修理工、零件库存的有关数据。l编制并显示季度零件订货计划编制零件订货计划需要找出要订货的零件,订货条件为:零件库存量最低库存量订货量可由用户输入或修改“汽车修理管理系统汽车修理管理系统”的开发的开发一、需求分析一、需求分析l打印发票发票中除包含顾客、汽车及修理
15、项目等数据外,还要计算出修车费,修车费包括修理费和零件费,按下列公式计算:零件费零件价格x耗用数量修理费小时工资x修理工时x3总计零件费修理费不难看出,发票包含的信息来自修车登记单、汽车修理单和零件出库单等各种单据。发票示例如图:“汽车修理管理系统汽车修理管理系统”的开发的开发一、需求分析一、需求分析汽车修理发票“汽车修理管理系统汽车修理管理系统”的开发的开发顾客姓名顾客姓名李小平地址地址临沧市汽车牌号汽车牌号云S0003修理项目修理项目大修送修日期送修日期04/11/01备备注注零件费零件费894.00修理费修理费2352.00总金额总金额3246.00日期:04/10/25一、需求分析一、
16、需求分析l打印修理工工资月报表某修理工的月工资修理小时x小时工资“汽车修理管理系统汽车修理管理系统”的开发的开发二、数据库设计二、数据库设计1、逻辑设计设计从分析输入数据着手,输入数据中的某类相关数据可以归纳为一个表。对于同时调用的若干表,应使它们符合关联要求。如果发现有的输出数据不能从输入数据导出,须继续向用户征集数据。经过归纳,我们得出以下各表:“汽车修理管理系统汽车修理管理系统”的开发的开发二、数据库设计二、数据库设计(1)修理单:XLD(编号、牌号、工号、修理项目、修理小时、送修日期、完工日期)(2)汽车:QC(牌号、型号、生产厂、车主名)(3)车主:CZ(车主名、地址、电话)(4)修
17、理工:XLG(工号、姓名、地址、电话、出生日期、进厂日期、小时工资)(5)零件用量:LJYL(编号、零件号、数量)(6)零件库存:LJKC(零件号、零件名、成本、价格、库存量、最低库存、订货量)“汽车修理管理系统汽车修理管理系统”的开发的开发二、数据库设计二、数据库设计根据系统数据处理需要,我们将这些表关联起来,如图所示:“汽车修理管理系统汽车修理管理系统”的开发的开发修理单汽车车主修理工零件用量零件库存牌号工号编号车主名零件号二、数据库设计二、数据库设计两点说明:(1)为同时调用不同表中的数据,须将它们关联,故而有时要在表中补充字段。(2)数据库设计须注意合理性。若将不同类的数据放进同一表中
18、,可能会产生数据冗余。例如:QC.DBF与CZ.DBF的字段合并为一个表,由于一个车主可拥有多辆车,在登记这些汽车的牌号、型号和生产厂的同时也要登记车主名、地址和电话,那么这些记录中的车主信息将重复记载,数据冗余会多占存储容量,更会破坏数据的一致性,故我们将它们分为两个表来处理。“汽车修理管理系统汽车修理管理系统”的开发的开发二、数据库设计二、数据库设计2、物理设计(1)修理单(E:qcxlxld.dbf)结构:Xld(编号c(4),牌号c(8),修理项目c(12),送修日期d,完工日期 d,工号c(4)普通索引,修理小时n(4,1)(2)汽车(E:qcxlqc.dbf)结构:Qc(牌号c(8
19、)普通索引,型号c(6),生产厂c(20),车主名c(8)“汽车修理管理系统汽车修理管理系统”的开发的开发二、数据库设计二、数据库设计(3)车主(E:qcxlcz.dbf)结构:CZ(车主c(8)普通索引,地址c(16),电话c(7)(4)修理工(E:qcxlxlg.dbf)结构:XLG(工号c(4)普通索引,姓名c(8),地址c(16),电话c(7),出生日期d,进厂日期d,小时工资n(5,2))“汽车修理管理系统汽车修理管理系统”的开发的开发二、数据库设计二、数据库设计(5)零件用量(E:qcxlljyl.dbf)结构:LJYL(编号c(4)普通索引,零件号c(6),数量n(2))(6)零
20、件库存(E:qcxlljkc.dbf)结构:LJKC(零件号c(6)普通索引,零件名c(10),成本n(8,2),价格n(8,2),库存量n(3),最低库存n(3),订货量n(3))“汽车修理管理系统汽车修理管理系统”的开发的开发 除上述6个表外,零件入库、出库时还需有暂存表。零件入库表为LJRK.DBF,其结构与LJKC.DBF相同。零件出库表LJCK.DBF的结构为:ljck(零件号c(6),数量n(2)。二、数据库设计二、数据库设计“汽车修理管理系统汽车修理管理系统”的开发的开发1、总体设计三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发汽车修理管理系统登
21、记零件管理查询打印修车登记汽车修理修理工登记零件订货计划零件入库零件出库发票修理工工资月报退出2、初始用户界面菜单设计(QCXLCD.MPR)三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发登记登记零件管理零件管理查询查询打印打印退出退出修车登记(xcdj.scx)零件订货计划(ljdh.scx)发票(dyfp.scx)退出系统(clear events)汽车修理(qcxl.scx)零件入库管理(ljrk.scx)修理工资月报修理工管理(xlggl.scx)零件出库管理(ljck.scx)登录与密码校验界面(FM.SCX)登录界面的设计要求简洁,密码输入错误次数
22、为3次,超过3次,系统自动关闭。密码 校验,我们采用password.dbf来存储用户所输入用户名和密码,这样做的好处是:我们在应用程序中可实现对用户名和密码的管理,如修改密码、添加用户等操作。三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发主文件(QCXL.PRG)数据环境(SJHJ.VUE)利用数据工作期窗口来建立,在数据工作期未关闭时,可选定文件菜单的“另存为”命令来建立视图文件,系统默认视图文件的扩展名为.vue。三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发二、应用程序设计二、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发利用数据工作期窗口建立的SJHJ.VUE三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发三、应用程序设计三、应用程序设计“汽车修理管理系统汽车修理管理系统”的开发的开发