




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
源程序代码,联系153893706仓库管理系统前言自1946年人类第一台计算机(ENIAC)问世以来,50多年过去了,计算机的软硬件发展日新月异,突飞猛进。以个人电脑为例,硬件方面,以CPU、内存、硬盘为代表,CPU已发展到当今的P428GHZ,P和P已淡出历史舞台,成为昨日黄花;256MDDR内存,80G以上的7200转硬盘已成为标准配置。如此高性能的配置,就是和5年之前相比,也不知高出了多少倍。软件方面,已经从当初晦涩难懂的机器语言、汇编语言过渡到今天的第四代语言甚至第五代语言,第四代语言(4GL)是完全非过程化的语言,这种语言只要求用户指明将要干什么,而无需指明怎么干,如何做这一工作,则完全交给软件模块来自动处理,大大提高了软件的开发效率和软件质量,使软件开发人员从繁重的脑力、体力劳动中解脱出来。伴随着计算机软硬件技术的发展,计算机的技术和应用获得了突飞猛进的发展,计算机已经在大致如下的领域得到广泛的应用1、科学计算如在天文学、生物学、空气动力学、核物理学、地质勘探、新材料的研制和天气预报等领域中。2、数据处理与科学计算不同,数据处理涉及的数据量大,但计算方法较简单。3、过程控制以下内容略随着计算机的普及和发展,人们开始利用计算机解决越来越多的实际问题,虽然现在软件的数量如雨后春笋,但依然不能满足用户的各种需要,尤其是用于特定教学管理方面的软件。本文是针对我校学习成绩管理方面的需求进行开发设计而形成一套适合自身应用的计算机管理信息系统。论文对系统进行了较为全面的业务需求分析,并进行有针对性的系统设计,包括开发平台和工具选型、功能模块设计、数据库设计等,最后选用VISUALC60和ACCESS数据库进行了系统实现,并进行了相应的系统测试和调试随着当代计算机技术的发展,硬件运行速度的不断提高,软件功能越来越多,越来越完善,它的应用范围也就不断地扩大,已被广泛地应用于科研部门,金融系统、工厂、学校,直至进入千家万户。用手工来完成物资管理系统是一个较烦琐的过程,既费时、费力,又不利于一个月或更久时间的结算,而进行计算机管理可以大大提高工作效率,而且数据处理也更为精确。本文用VISUALC60设计用户界面,ACCESS97做数据库摘要仓库管理系统是信息管理系统MIS,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,使用MICROSOFT公司的VISUALC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。物资管理是一般工业,商业企业生产管理环节中重要的一环,需要对物资基本信息管理,物资调配信息等内容进行完整的监控,这样才能更有效地利用物资管理。关键词ADO,面向对象,信息管理系统ABSTRACTTHEWAREHOUSEMANAGEMENTSYSTEMDEVELOPSANDINCLUDESBACKSTAGESUPPORTERFOUNDATIONANDMAINTAINANDFRONTDEVELOPMENTTWOOFAPPLICATIONPROGRAMOFDATABASEMAINLYDEMANDANDSETUPDATACONSISTENCYANDINTEGRALITYSTRONG,DATASECURITYKINDSTOREHOUSEASTOTHEFORMERREQUIRETOTHELATTERTHATTHEFUNCTIONOFTHEAPPLICATIONPROGRAMISCOMPLETE,APTCHARACTERISTICOFUSINGETCTHROUGHANALYSE,USEMICROSOFTDEVELOPINGINSTRUMENT,COFVISUAL,OFCOMPANY,UTILIZEVARIOUSKINDSOFTHATOFFERITFACEDEVELOPINGINSTRUMENTOFMARRIAGEPARTNER,DATAWINDOWTHISCANCONVENIENTSUCCINCTTOHANDLETHEINTELLIGENTMARRIAGEPARTNEROFTHEDATABASEESPECIALLY,SETUPSYSTEMUSEPROTOTYPE,THENCARRYONTOINITIALPROTOTYPESYSTEMDEMANDCHANGESANDTAKESTHEPLACEOFWITHINSHORTTIMEATFIRST,REVISEANDIMPROVECONSTANTLY,UNTILFORMINGUSERSSATISFIEDFEASIBLESYSTEMTHEHANDINGOFGOODSANDMATERIALSISGENERALINDUSTRY,ANIMPORTANTRINGINTHEPRODUCTIONMANAGEMENTOFMERCHANDISINGCONCERNLINK,NEEDTOGOODSANDMATERIALSBASICINFORMATIONMANAGEMENT,GOODSANDMATERIALSALLOCATEINFORMATION,ETCCONTENTGOONINTACTCONTROL,COULDUTILIZEHANDINGOFGOODSANDMATERIALSMOREEFFECTIVELYINTHISWAYTHISTEXTINTRODUCTIONMAKEWITHINTERFACEANDMAKETHEDATABASEWITHVCWITHDATABASESQLSEVER2000KEYWORDSADO,FACETOOBJECT,MIS(MANAGEMENTINFORMATIONSYSTEM)目录前言1摘要2目录2第一章系统设计311系统功能分析312系统功能模块设计5第二章数据库设计521数据库需求分析22数据库概念结构设计23使用逻辑结构设计第三章数据库结构的实现5531创建系统用户表格632创建物资基本信息表格633创建入库物资信息634创建出库物资信息表格6第四章物资管理信息系统主窗体的创建641所用工具VC的介绍1042数据库ACCESS简介1043创建工程项目MATERIAL_MIS1244创建主窗体菜单1245创建公用模块13第五章系统用户管理模块的创建14第六章仓库管理的基本信息模块的创建1861添加物资基本信息1962修改物资基本信息2363删除物资基本信息2664查询物资基本信息2665帮助界面的设置29第七章结束语30致谢30参考文献31附录31第一章系统设计介绍11系统功能分析系统开发的总体任务就是实现仓库管理的信息的系统化、规范化和自动化。随着电脑诞生以来,人类聪明的头脑总是想“要做的事简单化“。因此在我们大、中、小宾馆,其繁重信息管理使他们聪明的头脑想到”由电脑来管理这些事务,又简单又省事。所以人们常说“计算机已经成为我们学习和工作的得力助手了,少了它生命中没有了阳光“。今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。可见,开发一套物资信息管理系统已经是必要的了。仓库管理是企业管理的一个重要内容。随着时代的进步,企业也逐渐变的庞大起来。如何管理好企业内物资的信息,成为企业管理中的一个重要问题。在这种情况下,一个可以规范化,自动化的物资系统就显的非常重要。最初的仓库管理,都是靠人力来完成。当企业规模比较小的时候,人力可以完成。随着企业规模越来越大,企业的物资数量越来越多,依然维持着人力进管理必然会造成工作效率底,工作错误曾高等问题。管理信息系统简称MIS是介于信息论,经济管理理论,统计学与运筹学及计算机科学之间的一门边缘性,综合性,系统性的交叉科学,它是随着管理科学,信息技术,计算机技术等的发展而产生和发展起来的。XXX管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端的应用程序的开发两个方面。对于前者要求建立数据的一致性和完整性,对于后者则要求应用程序功能的完备,易用等的特点。基于上述考虑本系统主要利用VC60作前端的应用开发工具,利用SQL或ACESS作为后台的数据库,利用WINDOWS作为系统平台开发的XXXX管理系统。另外本XXX管理系统利用软件工程化思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面对对象的方向仓库管理系统就是把分散的企业物资信息实行统一,集中,规范的收集管理。建立分类编号管理,电脑存贮查询以及防火,防潮,防盗等现代化,专业化的管理系统。为企事业的管理解除了后顾之忧。系统功能分析是在系统开发总体任务的基础上进行的。本系统中的仓库管理信息系统需要完成的主要功能有有关物资基本信息的输入,包括物资编号、物资名称、规格型号、种类和计量单位等。物资基本信息的查询。物资基本信息的修改。入库物资基本信息的输入。入库物资基本信息的查询。入库物资基本信息的修改。出库物资基本信息的输入。出库物资基本信息的查询。出库物资基本信息的修改。物资余额信息的查询。物资余额信息的浏览12系统功能模块设计对上述的功能进行集中,分块和分析,按照结构化程序设计的要求,得到下图图(1)系统功能模块图第二章数据库设计设计数据库系统时应该首先充分了解用户的各个方面的需要,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤数据库需求分析。仓库管理信息系统物资余额信息管理物资出库信息管理物资基本信息管理物资入库信息管理系统管理出库物资信息修改出库物资信息添加入库物资信息查询入库物资信息修改入库物资信息添加物资基本信息查询物资基本信息修改物资基本信息添加密码管理密码管理用户管理物资余额信息游览物资余额信息查询出库物资信息查询数据库概念结构设计。数据库逻辑结构设计。第三章数据库结构的实现ACCESS2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。ACCESS的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于EXCEL的电子表格,可以使数据库一目了然。另外,ACCESS允许创建自定义报表用于打印或输出数据库中的信息。ACCESS也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。ACCESS是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,ACCESS作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。经前面的系统需求分析和概念结构设计以后,得到数据库逻辑结构。现在就可以在ACCESS2000,实现上面设计的数据库逻辑结构,然后转化为ACCESS97下面给出创建这些表格的清单。31创建系统用户表格USER_INFO用户名称用户密码32创建物资基本信息表格MATERIAL物资编号物资名称物资规格类别计量单位33创建入库物资信息表格MSAVE入库编号入库物资编号物资名称规格型号种类单位数量单价金额入库时间经办人保管人仓库备注34创建出库物资信息表格MUSE出库编号出库物资编号物资名称规格型号种类单位数量单价金额入库时间领用人经办人仓库备注35创建物资余额信息表格MSURPLUS物资编号物资名称规格型号类别计量单位数量金额仓库备注第四章物资管理信息系统主窗体的创建41使用工具VC的介绍所用开发语言简介411VC的特点VISUALC是功能最为强大可视化开发工具,它不仅支持传统的软件开发方法,更重要的是它能支持面向对象、可视化的开发风格。因此VISUALC又称作是一个集成开发工具,它提供了软件代码自动生成和可视化的资源编辑功能。VISUALC具有的优点提供了面向对象的应用程序框架MFC(MICROSOFTFOUNDATIONCLASS),简化了程序员的编程工作,提高了模块的可重用性;提供了基于CASE技术的可视化软件的自动生成和维护工具APPWIZARD、CLASSWIZARD、VISUALSTUDIO、WIZARDBAR等,实现了直观、可视的程序设计风格,方便地编和管理各种类,维护程序的源代码;封装了WINDOWS的API函数、USER、KERNEL、GDI函数,简化了编程时创建、维护窗口的许多复杂的工作。412本程序中使用的VC控件及其属性简介1CSTATIC静态控件显示一些几乎固定不变的文字或图形描述。2CBUTTON(按钮控件)产生某些命令或改变某些选项设置。3CEDIT(编辑框控件)完成文字的输入输出双向操作,查看并编辑文字。4CLISTBOX(列表框控件)显示一个列表,让用户从中选取一个或多个项。5CCOMBOBOX(组合框)将列表框和编辑框有机地组合在一起,可选择列表中已有的项,还可以编辑出新的项。MICROSOFTVISUALC60提供了良好的集成开发环境,在这一环境下用户可以输入自己的程序,调试并运行为了方便用户快速开发程序,VISUALC不仅编译代码,而且产生代码可以在几分钟之内就可以生成一个WINDOWS应用程序,所要做的只是告诉APPWIZARD生成一个具有模板代码的“起始应用程序“APPWIZARD是一个非常有效的辅助开发工具,能生成许多种应用程序,但对于大多数的人来说,想要的是可执行程序APPWIZARD不仅能够生成可执行程序,而且它还生成了每个程序所必要的模板代码类,对象和函数1APPWIZARD提供了三种可选择的应用程序类型,并为每一种类型生成不同的代码和类三种可选择的程序类型如下1,单文档界面应用程序逻辑这种应用程序一次只能打开一个文档当选择FILE菜单的OPEN或NEW时,当前打开的文件在新文件打开或建立前被关闭在WINDOWS中NOTEPAD应用程序就是这种文档的典型代表2多文档界应用程序多文档应用程序一次可以打开多个文档通常是多个文件,在菜单栏上有WINDOWS菜单并且在FILE菜单上有CLOSE先项同时打开的多个文档可以通过CLOSE命令进行有选择地关闭在WINDOWS中如果希望一个文档有多个视图,则必须建立多文档视图WINDOWS中的WORD或EXCEL都是多文档的例子3基于对话框的应用程序在这一种应用程序中,它没有文档也没有菜单,整个程序看起来就是一个对话框WINDOWS的磁盘扫描应用程序就是一个基于对话框的应用程序例子2APPWIZARD允许用户选择是否需要文档/视图结构支持如果需要APPWIZARD就在应用程序中自动生成了基于CDOCUMENT类的文档/视图结构,否则生成没有文档/视图结构的应用程序在这种情况下,多一个磁盘文件打开一个文档视图时将不包含MFC支持3APPWIZARD生成可执行应用程序允许用户选择是否支持数据库在后面的任务中将详细介绍对数据库的支持有关数据库支持的选项一共有四个4NONE不是编写数据库应用程序5HEADERFILESONLY不从CFORMVIEW派生自己的视图或有一个RECORD菜单6DATABASEIEWWITHOUTFILESUPPORT从CFORMVIEW派生自己的视图并有一个RECORD菜单,但不需要对文档进行序列化,从而可以借助CRECORDSET类更新数据库记录7DATABASEIEWWITHFILESUPPORT从CFORMVIEW派生自己的视图并有一个RECORD菜单,同时又需要对文档进行序列化4APPWIZARD提供了确定应用程序界面外观的选项影响界面外观的选项有8DOCKINGTOOLBARAPPWIZARD为用户创建了工具栏,用户在以后可以利用RESOURCEVIEW对它进行编辑如删除不要的按钮,增加新的按钮9INITIALSTATUSBARAPPWIZARD生成了初始状态栏以显示菜单提示和其它消息,用户可以在以后对状态栏进行编程以显示自己所需要显示的信息用户要以在状态栏上增加指示器或其它组件下面开始使用VISUALC60来编写数据库系统的客户端程序。所用开发语言简介VC的特点VISUALC是功能最为强大可视化开发工具,它不仅支持传统的软件开发方法,更重要的是它能支持面向对象、可视化的开发风格。因此VISUALC又称作是一个集成开发工具,它提供了软件代码自动生成和可视化的资源编辑功能。VISUALC具有的优点提供了面向对象的应用程序框架MFC(MICROSOFTFOUNDATIONCLASS),简化了程序员的编程工作,提高了模块的可重用性;提供了基于CASE技术的可视化软件的自动生成和维护工具APPWIZARD、CLASSWIZARD、VISUALSTUDIO、WIZARDBAR等,实现了直观、可视的程序设计风格,方便地编和管理各种类,维护程序的源代码;封装了WINDOWS的API函数、USER、KERNEL、GDI函数,简化了编程时创建、维护窗口的许多复杂的工作。312本程序中使用的VC控件及其属性简介1CSTATIC静态控件显示一些几乎固定不变的文字或图形描述。2CBUTTON(按钮控件)产生某些命令或改变某些选项设置。3CEDIT(编辑框控件)完成文字的输入输出双向操作,查看并编辑文字。4CLISTBOX(列表框控件)显示一个列表,让用户从中选取一个或多个项。5CCOMBOBOX(组合框)将列表框和编辑框有机地组合在一起,可选择列表中已有的项,还可以编辑出新的项。系统数据访问接口的选择VISUALC中可用的数据访问对象接口有三种ODBC(OPENDATABASECONNECTITY,开发数据库连接)、DAODATAACCESSOBJECTS,数据访问对象及OLEDBOLEDATABASE,OLE数据库。1ODBC(OPENDATABASECONNECTITY,开发数据库连接)ODBC提供了应用程序接口(API),使得任何一个数据库都可以通过ODBC驱动器与指定DBMC相联,用户的程序就可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。作为MICROSOFTWINDOWSOPENSTANDARDSARCHITECTUREWOSA,WINDOWS开放式服务体系结构的主要组成部分,ODBC一直沿用至今。2DAODATAACCESSOBJECTS,数据访问对象DAO提供了一种通过程序代码创建和操纵数据库的机制。多个DAO对象构成了一个体系结构,在这个结构里,各个DAO对象协同工作,通过MICROSOFTJET数据库访问数据库中的数据和数据库的结构定义。可以访问的数据库类型主要有MICROSOFTJET数据库、ODBC数据源、可安装的ISAM数据库。DAO是我们可以通过程序访问和操纵本地的或远程的数据和数据定义,管理数据库中的对象或结构。DAO支持两种不同的数据库环境称为工作区(WORKSPACE)MICROSOFTJETWORKSPACE这是一种使用MICROSOFTJET数据库引擎来访问数据源的工作区。ODBCDIRECTWORKSPACE这是一种使用ODBCDIRECT来直接访问一个ODBC数据源,并绕过MICROSOFTJET数据库引擎的工作区。可通过ODBC访问数据库服务器,而无须安装MICROSOFTJET数据库引擎。3OLEDBOLEDATABASE,OLE数据库。OLEDB试图提高一种统一的数据访问接口,并能处理除了标准的关系型数据库中的数据之外,还能处理包括邮件数据、WEB上的文本或图形、目录服务(DIRECTORYSERVICES),以及主机系统中的IMS和VSAM数据。OLEDB提供一个数据库编程COM(组件对象模型)接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型。这个COM接口与ODBC相比,其健壮性和灵活性要高的多。但是,由于OLEDB的程序比较复杂,因而对于一般用户来说使用ODBC和DAO方式已能满足一般数据库处理的需要ACCESS介绍ACCESS是MICROSOFTOFFICE办公套件中一个极为重要的组成部分。刚开始时微软公司是将ACCESS单独作为一个产品进行销售的,后来微软发现如果将ACCESS捆绑在OFFICE中一起发售,将带来更加可观的利润,于是第一次将ACCESS捆绑到OFFICE97中,成为OFFICE套件中的一个重要成员。现在它已经成为OFFICE办公套件中不可缺少的部件了。自从1992年开始销售以来,ACCESS已经卖出了超过6000万份,现在它已经成为世界上最流行的桌面数据库管理系统。后来微软公司通过大量地改进,将ACCESS的新版本功能变得更加强大。不管是处理公司的客户订单数据;管理自己的个人通讯录;还是大量科研数据的记录和处理,人们都可以利用它来解决大量数据的管理工作。建立一个数据库我们有多种选择,现在市场上有各种各样的数据库,而且每一种数据库都有其自身的特点,不能说哪一种更好,只能在其中寻找一种能更好地适应系统需求、更好地满足用户的要求以及适应开发人员的习惯。在本系统中,做为图书仓库管理系统是一个比较小的应用系统,它所产生和处理的数据量也比较小。因此,没有必要使用像SQLSERVER和ORACLE这样的大型数据库。我首先想到的数据库是BORLAND公司的PARADOX数据库。另外,MICROSOFTOFFICE中的ACCESS数据库在计算机上的应用比较普及,是开发小型数据库系统的比较理想的选择,所以,在本系统中我选择了ACCESS数据库。ACCESS做为一个数据库管理系统,它被集成在MICROSOFTOFFICE中。ACCESS数据库处理的基本结构,采取关系型数据库模式。与其他的数据库系统相比,ACCESS更加简单易学,一个普通的计算机用户可以很快地掌握它。ACCESS2000的功能十分强大,利用它可以方便地实现对信息保存、维护、查询、统计、打印、交流、发布,而且它可以十分方便地与OFFICE其他组件交流数据,这些功能对一个一般用户而言已经足够了。41创建工程项目MATERIAL_MIS启动VISUALC60后,从“FILE”菜单中选“NEW”命令,然后,单击“NEW”对话框中的“PROJECTS”选项卡,选择工程模板中的“MFCAPPWIZARDEXE”选项,并在“PROJECT_NAME”中输入工程的名称MATERIAL_MIS,在LOCATION中选择保存这个工程的位置CVC,其他使用系统提供的默认选项,单击“OK”按钮,就会进入MFCAPPWIZARD,这个向导一共有6步,STEP1对话框中选中“SINGLEDOCUMENT”选项。单击“NEXT”按钮,进入STEP2OF6对话框,这一步要选择需要的数据库,因为涉及到数据库的使用,所以在这里选中“HEADERFILESONLY”选项,意思是在这个实例中只使用头文件种类所包含的数据库。单击“NEXT”按钮,进入STEP3OF6对话框,这里保持系统给定的默认值。单击“NEXT”按钮,进入STEP4OF6对话框,在这里选中“3DCONTROLS”和“INITIALSTATUSBAR”选项,其他选项都不需要选中。单击“NEXT”按钮进入下一步,这里保持系统给定的默认值单击“NEXT”按钮进入下一步,进入MFC向导的最后一步,在该对话框中,保证BASECLASS的下拉列表中选择的是CVIEW,其他的保持系统提供的默认值。单击“FINISH”按钮,会出现一个“NEWPROJECTINFORMATION”对话框,确认信息无误后,单击“OK”按钮,完成创建MATERIAL_MIS工程。42创建主窗体菜单完成上面的工作后,在“WORKSPACE”中选择“RECOURCEVIEW”命令,然后双击MENU文件夹,再双击“IDR_MAINFRAME”项目,单击右边窗口中的“文件”菜单,双击“文件”或者敲ENTER键,就会出现“MENUITEMPROPERTIES”对话框,在这个对话框中更改菜单项的内容,更改后的内容如图2示,第一级菜单的设置都和图3中的设置方法相同,二级菜单的设置方法如图3图2图3使用上面所讲述的设置方法,最终创建出如表4的菜单结构。表4菜单结构菜单名称ID系统修改密码ID_MAINMENU_CHANGEPWD添加用户ID_MAINMENU_APPENDACCOUNT退出系统ID_APP_EXIT物资基本信息管理添加物资基本信息管理ID_MENU_ADDBASICINFO修改物资基本信息管理ID_MENU_ALTERBASICINFO删除物资基本信息管理ID_MENU_DELBASICINFO查询物资基本信息管理ID_MENU_SEARCHBASICINFO物资入库信息管理添加物资入库信息ID_MENU_ADDININFO修改物资入库信息ID_MENU_ALTERININFO删除物资入库信息ID_MENU_DELININFO查询物资入库信息ID_MENU_SEARCHININFO物资出库信息管理添加物资出库信息ID_MENU_ADDOUTINFO修改物资出库信息ID_MENU_ALTEROUTINFO删除物资出库信息ID_MENU_DELOUTINFO查询物资出库信息ID_MENU_SEARCHOUTINFO物资余额信息管理查询物资余额信息ID_MENU_SEARCHSURPLUSINFO帮助关于43创建公用模块在这个系统中,频繁地使用到了对数据库的访问,修改等操作,所以把针对数据库的一些公共操作集中起来,可以使代码更加规范和容易维护。在CLASSVIEW中,利用鼠标右键单击“CMATERIAL_MISAPP”项目,选择“ADDMEMBERVARIABLE”选项,然后依次添加这个工程中要使用到的变量PUBLICCSTRINGM_SCURRENTUSERINTM_ILOGINCOUNT_RECORDSETPTRM_PADOSETPRIVATE_CONNECTIONPTRADOCONN/定义ADO数据库连接对象指针选择ADDMEMBERFUNCTION添加函数BOOLADOEXECUTE_RECORDSETPTR最后手工添加一个外部变量的声明EXTERNCMATERIAL_MISAPPTHEAPP在VISUALC中进行数据库操作一定要引进ADO类,所在把下面这段代码添加到这个工程中的STDAFXH中,才能对记录集进行操作。IMPORT“CPROGRAMFILESCOMMONFILESSYSTEMADOMSADO15DLL“NO_NAMESPACERENAME“EOF“,“ENDOFFILE“RENAME“LOCKTYPEENUM“,“NEWLOCKTYPEENUM“RENAME“DATATYPEENUM“,“NEWDATATYPEENUM“RENAME“FIELDATTRIBUTEENUM“,“NEWFIELDATTRIBUTEENUM“RENAME“EDITMODEENUM“,“NEWEDITMODEENUM“RENAME“RECORDSTATUSENUM“,“NEWRECORDSTATUSENUM“RENAME“PARAMETERDIRECTIONENUM“,“NEWPARAMETERDIRECTIONENUM“在CMATERIAL_MISAPP类的INITISTANCE函数中添加如下代码M_ILOGINCOUNT0/创建ADO连接对象IFFAILEDCOINITIALIZENULLAFXMESSAGEBOX“ADOINITFAILED“RETURNFALSETRYADOCONNCREATEINSTANCE_UUIDOFCONNECTIONADOCONNOPEN_BSTR_T“PROVIDERMICROSOFTJETOLEDB40DATASOURCE“GETCURDIR“YLZMDB“,_BSTR_T“,_BSTR_T“,ADMODEUNKNOWN/捕捉例外CATCH_COM_ERRORERRFORMAT“S“,CHAREDESCRIPTIONAFXMESSAGEBOXERRCATCHAFXMESSAGEBOX“UNKNOWNERROR“/初始化ADO记录集添加以上代码后,就完成了打开数据库的工作,同时添加下面的代码,来设置窗口的名称M_PMAINWNDSETWINDOWTEXT_T“物资管理信息系统“在函数中BOOLADOEXECUTE_RECORDSETPTRTRYADOSETOPENSTRSQL,ADOCONNGETINTERFACEPTR,ADOPENSTATIC,ADLOCKOPTIMISTIC,ADCMDUNKNOWNRETURNTRUECATCH_COM_ERRORERRFORMAT“ADOERRORS“,CHAREDESCRIPTIONAFXMESSAGEBOXERRRETURNFALSE最后添加关闭数据库连接的函数。选择ADDVIRTUALFUNCTION添加一个虚函数,重载系统提供的EXITINSTANCE函数,填写代码如下INTCMATERIAL_MISAPPEXITINSTANCE/TODOADDYOURSPECIALIZEDCODEHEREAND/ORCALLTHEBASECLASS/释放ADO连接对象IFADSTATEOPENADOCONNSTATEADOCONNCLOSEADOCONNRELEASE/释放ADO记录集IFADSTATEOPENM_PADOSETSTATEM_PADOSETCLOSEM_PADOSETRELEASERETURNCWINAPPEXITINSTANCE通过以上的编写,完成了对数据库的基本操作,为下面的工作提供了最基本的功能。第五章系统用户管理模块的创建用户管理模块主要实现51用户登录该窗口中放置了三个静态文本框(STATIC)控件,在窗口的相应位置显示文字。放置了2个编辑框(EDIT),一个供用户输入登录的用户名(M_USERNAME),另一个供用户输入口令(M_PASSWARD),这个编辑框的属性要设成PASSWORD。输入的值存放在编辑框控件对应的变量中,另外还放置了两个按钮控件(BUTTON)。如图5所示。52添加用户为了数据库使用的安全,允许的用户和口令都预先存在数据库中,如果要加入新的用户,必须修改数据库中对应的表。53修改用户密码为了保证数据库的安全,有时候需要经常修改用户的口令。本系统可以在应用程序执行过程中修改当前用户的口令。程序清单CLOGINDLGCLOGINDLGCWNDPPARENT/NULL/CDIALOGCLOGINDLGIDD,PPARENT/AFX_DATA_INITCLOGINDLGM_SPWD_T“M_SUSER_T“ADMINISTRATOR“/AFX_DATA_INITVOIDCLOGINDLGDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGDODATAEXCHANGEPDX/AFX_DATA_MAPCLOGINDLGDDX_TEXTPDX,IDC_LOGIN_PWD,M_SPWDDDX_TEXTPDX,IDC_LOGIN_USER,M_SUSER/AFX_DATA_MAPBEGIN_MESSAGE_MAPCLOGINDLG,CDIALOG/AFX_MSG_MAPCLOGINDLGON_BN_CLICKEDIDC_LOGIN_CAPTION,ONLOGINCAPTION/AFX_MSG_MAPEND_MESSAGE_MAP/CLOGINDLGMESSAGEHANDLERSVOIDCLOGINDLGONOK/TODOADDEXTRAVALIDATIONHERE/CHECKUSERNAMEVADILATYUPDATEDATATRUEM_SUSERTRIMRIGHT“IF“M_SUSERAFXMESSAGEBOX_T“请填写用户名“,MB_ICONEXCLAMATIONRETURN_VARIANT_THOLDER,STRQUERYSTRQUERY“SELECTUSER_ID,USER_PWDFROMUSER_INFOWHEREUSER_ID“M_SUSER“THEAPPADOEXECUTETHEAPPM_PADOSET,STRQUERYINTICOUNTTHEAPPM_PADOSETGETRECORDCOUNTIF0ICOUNTTHEAPPM_ILOGINCOUNTIFTHEAPPM_ILOGINCOUNT2AFXMESSAGEBOX“没有这个用户N三次输入均不正确,请核对后再来“,MB_ICONEXCLAMATIONCDIALOGONCANCELRETURNAFXMESSAGEBOX“没有这个用户,请重新输入用户名“,MB_ICONEXCLAMATIONRETURNCSTRINGSPWDTHEAPPM_PADOSETMOVEFIRSTHOLDERTHEAPPM_PADOSETGETCOLLECT“USER_PWD“SPWDHOLDERVTVT_NULL“CHAR_BSTR_THOLDERIF0SPWDCOMPAREM_SPWDTHEAPPM_ILOGINCOUNTIFTHEAPPM_ILOGINCOUNT2AFXMESSAGEBOX“输入密码不正确N三次输入均不正确,请核对后再来“,MB_ICONEXCLAMATIONCDIALOGONCANCELRETURNAFXMESSAGEBOX“输入密码不正确,请重新输入“,MB_ICONEXCLAMATIONRETURN/GETLOGINUSERTHEAPPM_SCURRENTUSERM_SUSERCDIALOGONOKBOOLCLOGINDLGONINITDIALOGCDIALOGONINITDIALOG/TODOADDEXTRAINITIALIZATIONHERECEDITGETDLGITEMIDC_LOGIN_USERSETLIMITTEXT15CEDITGETDLGITEMIDC_LOGIN_PWDSETLIMITTEXT10/SETCAPTIONFONT/CFONTM_FONTM_FMYFONTCREATEPOINTFONT180,“华文彩云“,NULLCSTATICGETDLGITEMIDC_LOGIN_CAPTIONSETFONTRETURNTRUE/RETURNTRUEUNLESSYOUSETTHEFOCUSTOACONTROL/EXCEPTIONOCXPROPERTYPAGESSHOULDRETURNFALSEVOIDCLOGINDLGONLOGINCAPTION/TODOADDYOURCONTROLNOTIFICATIONHANDLERCODEHERE第六章仓库管理系统的基本信息模块的创建本系统的主窗体创建如下其运行的部分代码如下所示CMAINFRAMECMAINFRAME/TODOADDMEMBERINITIALIZATIONCODEHERECMAINFRAMECMAINFRAMEINTCMAINFRAMEONCREATELPCREATESTRUCTLPCREATESTRUCTIFCFRAMEWNDONCREATELPCREATESTRUCT1RETURN1IFM_WNDSTATUSBARCREATETHIS|M_WNDSTATUSBARSETINDICATORSINDICATORS,SIZEOFINDICATORS/SIZEOFUINTTRACE0“FAILEDTOCREATESTATUSBARN“RETURN1/FAILTOCREATEM_BMPBKLOADBITMAPIDB_BITMAP_FLASHRETURN0BOOLCMAINFRAMEPRECREATEWINDOWCREATESTRUCT/TODOMODIFYTHEWINDOWCLASSORSTYLESHEREBYMODIFYING/THECREATESTRUCTCSRETURNTRUE物资基本信息模块的创建物资基本信息管理模块主要实现如下功能添加物资基本信息。修改物资基本信息。删除物资基本信息。查询物资基本信息。61添加物资基本信息对话框的创建选择“物资基本信息管理/添加物资基本信息”菜单,将会出现图6所示的对话框图6添加物资基本信息对话框在这个对话框上面放置多个文本框,用来输入物资基本信息放置两个按钮,用来确定是否添加物资基本信息多个标签,用来提示文本框中需要输入的内容。这些控件的属性见表7添加物资基本信息对话框中各个控件的属性设置控件属性IDLABEL1物资编号IDC_STATICLABEL2物资名称IDC_STATICLABEL3规格型号IDC_STATICLABEL4类别IDC_STATICLABEL5计量单位IDC_STATICEDITBOX1IDC_BASICINFO_WZIDEDITBOX2IDC_BASICINFO_WZNAMEEDITBOX3IDC_BASICINFO_WZSPECEDITBOX4IDC_BASICINFO_WZKINDEDITBOX5IDC_BASICINFO_WZUNITBUTTON1IDOKBUTTON2IDCANCEL选择“VIEW/CLASSWIZARD菜单,然后选择“MESSAGEMAPS”标签页,在“CLASSNAME”下拉列表中选“ADDBASICINFO”选项,在左边的“OBJECTIDS”中选择IDOK,然后双击右边“MESSAGES”中的BN_CLICKED添加ONOK函数,在左边选择ADDBASICINFO,然后在右边双击选择WM_INITDIALOG,添加ONINITDIALOG函数,选择“MEMBERVARIABLES”标签页,在“CLASSNAME”下拉列表中仍然选择“ADDBASICINFO”,双击“CONTROLIDS”中每一个ID,添加变量,除了使用这种方法添加变量和函数以外,用鼠标右键单击ADDBASICINFO为,选择弹出菜单中的“ADDMEMBERVARIABLE”命令,然后在弹出对话框中添加变量。对话框初始化的时候,根据变量M_BAPPEND来判断是添加还是修改,并显示相应状态。为了响应ADDBASICINFO类对话框的初始化事件,为ONINITDIALOG函数,添加如下代码BOOLADDBASICINFOONINITDIALOGCDIALOGONINITDIALOG/TODOADDEXTRAINITIALIZATIONHERECEDITGETDLGITEMIDC_BASICINFO_WZIDSETLIMITTEXT50CEDITGETDLGITEMIDC_BASICINFO_WZNAMESETLIMITTEXT50CEDITGETDLGITEMIDC_BASICINFO_WZSPECSETLIMITTEXT50CEDITGETDLGITEMIDC_BASICINFO_WZKINDSETLIMITTEXT50CEDITGETDLGITEMIDC_BASICINFO_WZUNITSETLIMITTEXT50IFM_BAPPEND/更新对话框属性SETWINDOWTEXT_T“添加物资基本信息“ELSE/更新对话框属性SETWINDOWTEXT_T“修改物资基本信息“RETURNTRUE/RETURNTRUEUNLESSYOUSETTHEFOCUSTOACONTROL/EXCEPTIONOCXPROPERTYPAGESSHOULDRETURNFALSE为了响应“确定”按钮的单击事件,为ONOK函数添加如下代码VOIDADDBASICINFOONOK/TODOADDEXTRAVALIDATIONHEREUPDATEDATATRUEM_WZIDTRIMRIGHT“M_WZNAMETRIMRIGHT“M_WZKINDTRIMRIGHT“M_WZSPECTRIMRIGHT“M_WZUNITTRIMRIGHT“/确定所有输入有效CSTRINGSWARNING“IF“M_WZIDSWARNING_T“物资编号“ELSEIF“M_WZNAMESWARNING_T“物资名称“ELSEIF“M_WZKINDSWARNING_T“类别“ELSEIF“M_WZSPECSWARNING_T“规格型号“ELSEIF“M_WZUNITSWARNING_T“计量单位“IF“SWARNINGSWARNING_T“不能为空“AFXMESSAGEBOXSWARNING,MB_ICONEXCLAMATIONRETURN_VARIANT_TSTRQUERYIFM_BAPPEND/判断物资唯一性STRQUERY“SELECTFROMMATERIALWHEREWZID“M_WZID“THEAPPADOEXECUTETHEAPPM_PADOSET,STRQUERYINTICOUNTTHEAPPM_PADOSETGETRECORDCOUNTIF0ICOUNTAFXMESSAGEBOX_T“已经存在此物资的记录“,MB_ICONEXCLAMATIONRETURNIFM_BAPPENDSTRQUERY“INSERTMATERIALWZID,WZNAME,WZSPEC,WZKIND,WZUNITVALUES“M_WZID“,“M_WZNAME“,“M_WZSPEC“,“M_WZKIND“,“M_WZUNIT“IFTHEAPPADOEXECUTETHEAPPM_PADOSET,STRQUERYAFXMESSAGEBOX_T“添加记录成功“,MB_ICONINFORMATION/清空输入数据M_WZIDM_WZNAMEM_WZSPECM_WZKINDM_WZUNIT“UPDATEDATAFALSEELSEAFXMESSAGEBOX_T“添加记录失败“,MB_ICONEXCLAMATIONELSE/修改记录STRQUERY“UPDATEMATERIALSETWZNAME“M_WZNAME“,WZSPEC“M_WZSPEC“,WZUNIT“M_WZUNIT“,WHEREWZID“M_WZID“IFTHEAPPADOEXECUTETHEAPPM_PADOSET,STRQUERYAFXMESSAGEBOX_T“修改记录成功“,MB_ICONINFORMATIONELSEAFXMESSAGEBOX_T“修改记录失败“,MB_ICONEXCLAMATION/REFRESHROOMTYPELISTCMATERIAL_MISVIEWPCMATERIAL_MISVIEWCMAINFRAMEAFXGETMAINWNDGETACTIVEVIEWPREFRESHMATERIALIFM_BAPPENDCDIALOGONOK这个函数首先判断是否输入了内容,然后才进行下一下。在物资管理中,所有物资都有唯一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论