论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > VC >

A450库存管理系统

 

毕 业 论 文

copyright paper51.com

http://www.paper51.com

paper51.com

内容来自论文无忧网 www.paper51.com

paper51.com

http://www.paper51.com

paper51.com

内容来自www.paper51.com

copyright paper51.com

copyright paper51.com

paper51.com

题    目           库存管理系统

内容来自www.paper51.com

paper51.com

指导教师 

copyright paper51.com

内容来自www.paper51.com

学生姓名       

内容来自www.paper51.com

内容来自www.paper51.com

专    业         

copyright paper51.com

内容来自论文无忧网 www.paper51.com

所在院校       

copyright paper51.com

copyright paper51.com

内容来自www.paper51.com

2007年6月1日

内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

http://www.paper51.com

http://www.paper51.com

http://www.paper51.com

http://www.paper51.com

paper51.com

内容来自论文无忧网 www.paper51.com

内容来自www.paper51.com

copyright paper51.com

内容来自论文无忧网 www.paper51.com

paper51.com

paper51.com

内容来自论文无忧网 www.paper51.com

摘要

http://www.paper51.com

http://www.paper51.com

本文详尽阐述了一个完整的库存管理信息系统,采用系统生命周期的结构化方法,完成软件开发的过程。 通过对库存管理的实际调查,明确其完整的业务流程,以进行系统分析、系统设计、系统实施。在分析库存管理的具体情况后,采用MicrosoftAccess型数据库系统作为材料(即商品,下同)库存管理系统的后台数据库。由于Microsoft公司的Visual C++工具面向对象可视化编程的特点,有利于系统的开发,所以决定用其作为主要开发工具。 系统具有数据录入、数据修改、记录查询、报表打印等功能。较全面满足了材料库存管理的各项工作。该系统采用模块化原理编程,做到了模块规模适中,本身相对独立。模块化使程序结构清晰,易于设计、易于理解,提高了系统的可靠性。 本文详细说明了一个库存管理的业务流程,分析了其数据流程,明确了数据表之间的联系,详细说明了主要的程序逻辑。并以图表的方式直观的说明,使程序易于理解。 关键词:库存管理,业务流程,软件工程,模块化原理                              

http://www.paper51.com

内容来自www.paper51.com

                             Abstract This text explains an intact the management information sysytem of stock exhaustivly , adopt the systematic structurization method ofcycle of lite , finish the course of software development. Through to the real investigation of stock control ,define its intact business procedure , in order to carry on metwork analysis ,designs systematically , implements systematically . After analyzing theconcrete conditions of stock control , Mode1 Microsoft access it adopt there isas material dtatbase system (namely goods , the same below) stock backstagesupporter database of administrative system , because Microsoft Visual C++ toolof Company face target visual characteristic of programming , favorable tosystematic development , so determine to use it as the main developinginstrument . 目 录 摘 要前言1库存信息管理系统的基本问题

copyright paper51.com

paper51.com

1.1库存信息管理系统的简介1.2管理者对库存信息管理系统的需求2开发环境的选择2.1开发技术的选择2.2关系型数据库的实现2.3数据库访问技术的选择3系统分析与概要设计3.1系统分析3.2系统设计4 系统简介5数据库设计5.1数据设计概述5.2系统数据库表6程序设计6.1系统主界面6.2系统其它界面7 结束语致 谢参考文献                                 前言 企业的物资供应管理往往是很复杂的,烦琐的。由于所掌握的物资种类众多,订货,管理,发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计计划报表繁多,因此物资管理必须实现计算机化,而且必须根据企业的具体情况制定相应的方案。 根据当前的企业管理体制,一般物资供应管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需要来发放物资设备,并随时按期进行库存盘点,作台帐,根据企业领导和自身管理的需要按月,季度,年来进行统计分析,产生相应报表。为了加强关键物资,设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际消耗定额的比较,进行定额的管理,使得资金使用合理,物资设备的储备最佳。 所以一个完整的企业物资供应管理系统应该包括计划管理,合同托收管理,库存管理,定额管理,统计管理,财务管理等模块。其中库存管理是整个物资供应管理系统的核心。 鉴于Visual C++有强大的数据库管理功能,我们选用Visual C++来完成这个库存管理系统。 1库存信息管理系统的基本问题 1.1库存信息管理系统的简介 本系统是为了提高公司自动化办公的水平、经过详细的调查分析初步制定了公司库存信息管理系统。基于WINDOWS xp平台,使用Microsoft Access2000, 在Visual C++编程环境下开发的库存信息管理系统。该系统采用交互是人机对话和模块化设计方式,实现对系统管理,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两方面。对于前者要求建立起资料一致性和完整性强、资料安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点此管理系统的开发主要为了满足管理者的需求,使他们的工作量减少,工作难度降低,风险性减小。同时使用这个系统还有利用数据的查询和保存。这个系统的4个主菜单以及若干个子菜单可以满足管理者的所有需求,使其工作满足现代化管理的要求。 1.2管理者对库存信息管理系统的需求 库房的管理的工作非常复杂烦琐,而且销售情况和库存档案要记载楚,销售的工作情况及库存情况管理者要了如指掌,并且进货前还有一个准确的记录,销售后还要返回一些资料妥善保存。这些工作如果要手工操作的话,不仅困难大,还费时费力。所以需要一个专门的程序来进行这些工作。这就需要更好的库存信息系统满足其经营管理的需要。 2开发环境的选择 2.1开发技术的选择 微软公司的Visual C++6.0是Windows应用程序的开发工具,是目前最为广泛的,易学易用的面向对象的开发工具。“Visual”指的是开发图形用户界面(GUI)的方法,即不需要编写大量代码去描述界面元素的外的外观和设置,而只要把预先建立的对象添加到屏幕上的一点即可。Visual C++6.0集程序的代码编辑,编译,连接,调试等于一体,给编程人员提供了一个完整而又方便的开发界面,并提供许多有效的辅助开发工具,如提供了大量的控件,这些控件可用于设计界面各实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用研究程序的运行效率各可靠性。因此,实现本系统VC是一个很好的选择。 2.2关系型数据库的实现 一、 新一代数据管理与分析软件     当今组织机构面临着多项前所未有的数据技术挑战:在整个企业范围内实现数据与系统的高度分布;为内部员工、目标客户与合作伙伴提供针对相关数据的持续访问调用能力;以切实有效的信息资料武装信息工作者,促进科学决策;在不必牺牲应用程序可用性、安全性或可靠性的前提下控制成本费用水平。     新一版SQL Server的设计目标正是帮助企业单位应对上述挑战。作为Microsoft公司的下一代数据管理与分析软件,SQL Server 2005有助于简化企业数据与分析应用的创建、部署和管理,并在解决方案伸缩性、可用性和安全性方面实现重大改进。     基于SQL Server 2000技术优势构建的SQL Server 2005将提供集成化信息管理解决方案,可帮助任何规模的组织机构:

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

  •  创建并部署更具伸缩性、可靠性和安全性的企业级应用。

    http://www.paper51.com

  •  降低数据库应用创建、部署与管理的复杂程度,进而实现IT效率最大化。

    内容来自www.paper51.com

  •  凭借可供创建更具安全保障之数据库应用的丰富、灵活、现代化开发环境增强开发人员工作效能。

    内容来自www.paper51.com

  •  跨越多种平台、应用和设备实现数据共享,进而简化内部系统与外部系统连接。

    内容来自www.paper51.com

  •  实现功能强劲的集成化商务智能解决方案,从而在整个企业范围内推进科学决策,提高工作效率。

    内容来自www.paper51.com

  •  在不必牺牲性能表现、可用性或伸缩性的前提下控制成本费用水平。

    http://www.paper51.com

    二、开发工作效率     长期以来,阻碍开发人员工作效率提高的一大关键因素就是缺乏用于数据库开发和调试的集成化工具手段。SQL Server 2000实现了与Microsoft Visual Studio之间的高度集成,从而有助于消除上述障碍。而SQL Server 2005则将提供可望从根本上改变数据库开发与部署方式的更多改进特性。具备丰富扩展标记语言(XML)支持特性并与.NET技术和Microsoft开发工具实现高度集成的SQL Server 2005必将促使开发人员工作效率和灵活性得到显著提高。     针对开发人员工作效率的改进主要体现在以下几方面:

    paper51.com

    paper51.com

    •  得到改进的工具手段。开发人员将可为Transact-SQL、XML、多维表达式(MDX)和分析性XML(XML/A)使用单一开发工具。与Visual Studio开发环境的高度集成有助于提高专业和商务智能应用的开发与调试效率。

      paper51.com

    •  得到扩展的语言支持。开发人员可凭借基于数据库引擎的通用语言运行时(CLR)特性从包括Transact-SQL、Microsoft Visual Basic .NET和Microsoft Visual C# .NET在内的多种数据库应用开发语言中选择自己最熟悉的一种。CLR托管特性将对用户定义类型和函数加以运用,并在此基础上增强开发人员的工作灵活性。此外,CLR还将创造利用第三方代码加速数据库应用开发的宝贵机遇。

      copyright paper51.com

    •  XML与Web服务。诸如Xquery和本地XML数据类型等改进特性有助于组织机构实现内部系统与外部系统之间的无缝化连接。SQL Server 2005将为关系型数据和XML数据提供本地支持,从而使企业单位能够以最适合自身需要的格式进行数据存储、管理和分析。针对超文本传输协议(HTTP)、XML、简单对象访问协议(SOAP)、Xquery和XML架构定义(XSD)等既有和新兴开放标准的支持能力还将为跨越日益扩展企业系统的信息交流提供便利。

      内容来自www.paper51.com

      三、企业数据管理     在当今这个网络互连无处不在的世界上,您必须随时随地为用户提供数据资料和数据管理系统。SQL Server 2005将帮助您所在机构中的用户和IT专业人员从明显缩短的应用故障时间、得到增强的伸缩能力与性能表现和牢固可靠的安全控制中获益。SQL Server 2005还将包含有助于组织机构和IT人员提高自身工作效率的新增和改进功能特性。基于SQL Server 2000所提供的灵活技术手段构建的SQL Server 2005可为从千兆级(TB)数据仓库到运行Microsoft SQL Server Windows CEEdition(SQL Server CE)之移动设备的一系列解决方案实现方式提供支持。     SQL Server 2005针对企业数据管理实现的重大改进主要体现在以下几方面:

      内容来自www.paper51.com

      http://www.paper51.com

      •  可用性。在高度可用性技术、补充备份与恢复功能以及复制增强特性等方面的投资将有助于企业单位创建并部署高度可靠的应用解决方案。数据库镜像、故障转移群集和改进联机操作等具有创新意义的高度可用特性可将故障时间控制在最低限度,并有助于确保关键企业系统随时接受访问调用。

        paper51.com

      •  伸缩性。表分区、快照隔离和64位支持等伸缩改进特性将允许您运用SQL Server 2005创建并部署要求最为严苛的应用程序。针对大型数据表和索引的分区功能极大改进了超大型数据库的查询操作。

        http://www.paper51.com

      •  安全性。“缺省安全保障”设置、数据库加密和改进安全模型等增强特性有助于为企业数据提供高度安全保障。

        paper51.com

      •  易管理性。新式管理工具套件、自我调节能力和功能强大的新式编程模型将允许数据库管理员针对数据库的日常运转加以灵活掌控。针对SQL事件探查器及其它工具的改进还可帮助数据库管理员将服务器调节至最佳性能状态。这些改进特性将允许数据库管理员从数据库日常运转工作中解脱出来,并集中精力从事数据库体系结构设计等更具价值的任务。

        内容来自论文无忧网 www.paper51.com

      •  交互操作能力。SQL Server 2005实现的技术进步允许您在日益扩展的企业范围内将相对独立应用程序和数据库整合并连接起来,从而,实现新增和既有系统投资效益的最大化目标。SQL Server 2005可面向行业标准、Web服务和Microsoft .NET Framework提供高水平支持,并在此基础上实现与多种平台、应用和设备之间的交互操作能力。SQL Server与其它Microsoft软件产品(从Microsoft Windows Server操作系统到Microsoft Visual Studio开发软件包和Microsoft Office应用程序)高度集成,并可帮助您所在机构运用协同技术手段节省时间和金钱。

        paper51.com

        1

        copyright paper51.com

        内容来自论文无忧网 www.paper51.com

        四、商务智能     商务智能的前景与挑战都围绕着在正确的时间为企业员工提供适当的信息这一课题展开。这种构想的实现依赖于全面完整、安全可靠、随时可用并与运营系统高度集成的商务智能解决方案。SQL Server产品家族将凭借SQL Server 2005帮助企业单位实现上述目标。     商务智能方面的改进主要包括:

        http://www.paper51.com

        paper51.com

        •  集成化平台。基于SQL Server 7.0和SQL Server 2000构建的SQL Server 2005将为端到端商务智能平台赋予包括联机分析处理(OLAP),数据挖掘,提取、转换与加载(ETL)工具,数据仓库和报告功能等在内的集成化分析处理特性。这种高度综合与集成的技术手段有助于组织机构在控制成本费用水平的同时,完成强大商务智能应用的无缝化创建与部署。

          内容来自www.paper51.com

        •  得到改进的决策过程。针对现有商务智能特性的改进(如OLAP与数据挖掘)和新型报告服务器的引入可赋予企业单位在从信息工作者到首席执行官(CEO)的所有组织层次上将信息资源转化为优选业务决策的能力。

          http://www.paper51.com

        •  安全性和可用性。伸缩性、可用性和安全性方面的改进将为用户提供针对商务智能应用和报告的不间断访问调用支持。

          内容来自www.paper51.com

        •  企业级分析能力。得到改进的ETL工具将允许组织机构以更加简便快捷的方式对出自多种不同信息来源的数据资料进行集成化和分析处理。组织机构可基于一系列运营系统开展数据分析活动,并在此基础上通过对自身业务的全面理解赢得宝贵的竞争优势。

          copyright paper51.com

          Access2003就是关系数据库开发工具,数据库能汇集各种信息以供查询、分类、存储各检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库 一目了然。另外Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络服务器,与其他网络用户共享数据库。Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。Access最重要的特征是不必编写程序。Access数据库系统只需把数据库应用程序的建立移进用户环境中,除非要执行复杂的操作,数据库的管理者不再必须具有程序设计能力。Access中数据库文件不是简单的存储数据的表,还包括操作和控制数据的其他对象(如查询、窗体和报表等)。如上所述,Access作为关系数据库开发区具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系到数据库的强大功能。比较分析后,所以还是要选择ACCESS. 2.3数据库访问技术的选择 MFC(微软基础类库)即Microsoft FoundationClass Library,是微软为Windows程序员提供的一个面向对象的Windows编程接口。使用MFC大大简化了Windows编程工作。而MFC的ODBC类对较复杂的ODBC API进行了封装,提供了简化的具体细节,利用ODBC类即可完成对数据库的大部分操作。因此本系统使用MFC ODBC访问数据库。 3系统分析与概要设计 3.1系统分析 系统分析的根本目的是,分析出合理的信息流动、处理存储的过程。系统分析的主要活动有,系统初步调查、可行性研究、系统详细调查、新系统逻辑方案的提出。下面就各个方面分别说明: ⑴系统初步调查 系统初步调查的主要目标就是,从系统分析人员的角度看新项目的开发有无必要和可能。初步调查的内容包括: ① 系统的基本情况,包括它的外部环境、规模、历史、管理目标、主要任务、当前面临的主要问题。 ② 系统中信息处理情况,包括现有系统的组织机构、工作方式、工作效率、可靠性、人员素质和技术手段。 ③ 系统的资源情况人、财、物等资源。 ④ 系统各类人员对系统的态度,包括领导和有关管理人员对现有信息系统的看法、支持和关心程度等。 库存管理需要有:产品相关信息设置,产品入库信息和出库信息以及打印输出等功能。应有入库信息的输入窗口,出库信息输入窗口,产品相关信息设置的输入窗口。,并且当输入库存基本信息时,界面要自然、简便,要有充分的提示和帮助,以便于操作人员学习使用和掌握。对输入的错误又有好的措施,并随时掌握任务的进展情况,输出的形式要易于理解,结果要正确。当然了,对于用户来说,界面就是系统本身。用户特别关心能否有效地使用软件来解决问题,用户对软件功能的理解都在界面上表现出来。人机界面体现了系统的功能,以及操作的方便程度是否符合使用的要求与工作习惯。 总之,应使管理部门及时掌握产品库存全面情况,并通过这样的系统,做到信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量。 根据用户提出的建议,为了开发出有效的库存管理系统,遵循以下原则: ① 满足用户需要。之所以开发新系统是因为旧系统存在问题,束缚着组织的发展,不能适应用户的需要。作威信系统必须其最终系统能被用户接受,实现用户的初衷。 ② 功能更完善。功能是否完整,是指能否覆盖组织的主要业务管理范围。同时,还表现在各部分接口是否完备,数据采集和存储格式是否统一,各部分是否协调一致。管理信息系统的功能主要有:数据处理功能、控制功能、预测功能、决策功能、公用信息服务功能。 ③ 技术更先进。正确认识各种先进技术的优劣长短,从而根据组织的实际情况和未来得发展将其合理的运用到管理信息系统的开发中去。要努力发挥其高速度、高精度、高密度的优点,也要避免其缺乏灵活性,不便于处理意外情况的缺点。同时,不要为了一味的先进,而忽视了技术本身的成熟性。 ④ 实现辅助决策。许多组织的决策任务非常复杂、耗时,而决策关系到组织的兴衰。因此,所有的组织都需要能够帮助他们做出最佳的决策支持系统。 ⑵ 可行性分析 可行性研究的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题作出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有实际意义,而引起的浪费,对新系统可行性分析,要求用最小的代价在尽量短的时间内确定系统是否可行。内容包括:技术可行性、经济可行性、营运可行性。 ① 技术可行性 计算机管理信息系统的开发是一项复杂的系统工程,从70年代开始,人们逐渐认识到,为了保证MIS开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。 这些方法旨在指导开发者进行工程化的系统开发,从而加快MIS开发的速度,保证质量,以降低开发成本。工程的系统开发方法确实在开发软件中取得了一定的效果。此次开发的库存管理系统使用Visual Basic作为前台开发工具。 为了很好的实现系统的功能,后台选用了MicrosoftAccess开发学籍管理所需要得数据库。 ② 经济可行性分析 公司有多台计算机和打印机,各台微机已通过局域网互联,因此新系统使用后,不需要购置新的硬件,硬件的升级费用也是非常低,系统完成后,一些报表可由系统自动处理,不再需要人工干预,提高公司管理的规范化、系统化、制度化、减轻了管理人员的工作量。公司有微机操作人员若干,对本系统的运行界面很容易熟练掌握,不需要进行特殊的培训工作。 ③ 运行可行性分析 随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和基本。目前,公司的管理人员已经具备了一定的计算机基础知识和实际操作经验。对于局域网、WINDOWS等环境下的软件使用比较熟悉,对于新系统的开发,用户表现出极大的兴趣和热情,提出了各种很好的建议和要求。 通过以上的分析,开发库存管理系统是完全必要并且是完全可行的。 3.2系统设计 ⑴系统设计原则 ① 实用性:系统的设计从公司的需求出发,满足了公司管理活动的一系列要求和需要,而且力求操作员操作方便、简单易懂、界面友好。 ② 安全性:系统采用了用户输入编号和密码的登录界面,从而防止了非法用户的入侵;通过对用户权限的设置实现了系统维护人员与操作员相分离,充分保证了系统的安全性。 ③ 可维护性和可扩展性:系统具有良好的可扩展性和可维护性。系统中各个模块的独立性可以完全保证各个模块的适当扩展和修改不会影响到其他模块的运行。 ④ 标准性:软件设计严格执行国家有关软件工程的标准,保证系统质量,提供完整、准确、详细的开发文档。 ⑵ 系统设计方法 结构化方法是系统在设计时采用的主要方法。结构化方法的基本思路就是把整个系统开发过程分为若干阶段,每个阶段进行若干活动,每项活动应用一系列标准、规范、方法和技术,完成一个或多个任务,形成符合给定规范的产品。 结构化系统开发方法的特点是: ① 用“自上而下”的开发策略,进行系统分析和系统设计,然后,“自下而上”地开发和调试各个模块,最后实现模块联调和整个系统的联调。 ② 工作文件的标准化与文档化。即每一阶段、每一步骤都有详细的文档记录,并有完整的管理制度。 ③ 强调面向用户的观点。即将用户的参与程度和满意与否作为系统开发能否成功的关键。 ④ 结构化开发方法在大多数情况下是信息系统工程开发的有效方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。 结构化方法又可以分为自顶向下和自底向上底开发方法。两者结合是实际开发过程中常用的方法。 结构化方法的主要原则是: ① 用户参与的原则; ②“先逻辑,后物理”的原则 ③“自顶向下”的原则; ④ 工作成果描述标准化的原则。 ⑶ 总体设计 公司库存管理信息系统功能设计目标如下: ① 实用性强:符合实际操作流程的习惯,易学易用的友好的用户界面,适合各层次工作人员的使用需求,实现计算机与多年积累起来的经验相结合科学化管理; ② 先进的程序结构:使用当代前卫的软件编程,能延长其生命周期,易于维护与管理; ③ 安全可靠性高:登录密码口令,实现系统的可靠性; ④ 使用模块化设计的方法:使系统具有良好的可扩充性,以适应其不同阶段的发展需要; ⑤ 操作简单,维护方便:每个系统都具有系统维护功能,对可变化的项目可自行维护; ⑥打印功能强大:可以对当次产品入库信息、当次产品出库信息打印而且还可查询检索到哪一日入库及出库信息的打印。 4系统功能模块设计 4.1公司库存管理功能模块设计目标 ⑴ 实用性强:符合实际操作流程的习惯,易学易用的友好的用户界面,适合各层次工作人员的使用需求,实现计算机与多年积累起来的经验相结合科学化管理; ⑵ 先进的程序结构:使用当代前卫的软件编程,能延长其生命周期,易于维护与管理; ⑶ 安全可靠性高:登录密码口令,实现系统的可靠性; ⑷ 使用模块化设计的方法:使系统具有良好的可扩充性,以适应其不同阶段的发展需要; ⑸ 操作简单,维护方便:每个系统都具有系统维护功能,对可变化的项目可自行维护; ⑹ 查询功能强大:可以对文件按日期、部门、文件名和文件的编号等方式查询,使管理人员能及时准确地掌握公司库存的基本情况。 4.2公司库存管理信息系统功能模块划分 根据需求分析与系统功能设计目标,结合实际情况本系统功能模块设计分为如下几个模块: ①基础信息管理模块 ②日常业务管理模块 ③查询统计模块 ④系统管理模块

          http://www.paper51.com

          copyright paper51.com

          系统简介

          copyright paper51.com

          内容来自www.paper51.com

          库存管理系统是针对企业库存的商品货物的经常出入库和查询统计等方面工作而开发的管理软件。库存管理系统是用于完成众多库存管理业务所面临的日常工作。

          http://www.paper51.com

          内容来自www.paper51.com

          根据用户的要求,实现库存的商品管理、出入库管理、查询管理及用户管理等功能。用户通过相应的模块,对库存里的商品的基本情况进行更新、删除和查询,对商品的出库和入库进行管理,对出入库明细进行查询,对使用该系统的用户进行更新、删除和查询,对库存数量进行查询,用户通过简单的操作即可轻松的管理库存。

          http://www.paper51.com

          内容来自www.paper51.com

          库存管理系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到提高库存管理效率的目的。

          paper51.com

          copyright paper51.com

          u    简洁一致,操作便利

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          u    图形化界面,完备的物资管理功能

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          u    表格中的文字实时显示

          paper51.com

          copyright paper51.com

          u    本系统基于好用、易用、美观的原则设计了统一的人机界面

          内容来自www.paper51.com

          copyright paper51.com

          u    表格中的文字实时显示。

          http://www.paper51.com

          copyright paper51.com

              Visual C++6.0提供了多种多样的数据库访问技术—ODBC API、MFC ODBC、DAO、OLE DB、ADO等。它们提供了简单、灵活、访问速度快、可扩展性强的开发技术。

          内容来自www.paper51.com

          paper51.com

          本软件针对企业物资供应管理业务范围及工作特点,设计了设备代码、设备入库、出库、还库、入库信息、出库信息、还库信息、设备需求、查看日志、修改密码等几个模块,这几个子模块包括了企业管理的主要业务,可以全面实现对物资的采购、出库、还库、统计和流通等业务的计算机管理,应用本系统可以在计算机上灵活、方便地管理库存物资,从而大大的提高了处理效率,使管理更加现代化。本系统是根据实际情况和具体内容,按一定的要求、科学、合理进行系统分析,设计,具体包括、数据输入、、删除、修改等各种设计。从而使本系统完全能满足经济性、灵活性、系统性及可靠性的要求。系统考虑到设计与用户两方面,使其尽量具有好的兼容性,速度快,功能强的特点,可让程序运行相对变得简单而方便,可以简便地运行正确操作。

          内容来自www.paper51.com

          http://www.paper51.com

          5数据库设计

          http://www.paper51.com

          paper51.com

          5.1数据库设计概述

          http://www.paper51.com

          paper51.com

          Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle以及Microsoft Text。如果用户希望使用其他数据格式,则需要安装相应的ODBC驱动器及DBMS。

          内容来自www.paper51.com

          http://www.paper51.com

          copyright paper51.com

            用户使用自己的DBMS数据库管理功能生成新的数据库模式后,就可以使用ODBC来登录数据源。对用户的应用程序来说,只要安装有驱动程序,就能注册很多不同的数据库。登录数据库的具体操作参见有关ODBC的联机帮助。

          copyright paper51.com

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

            一、MFC提供的ODBC数据库类

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          http://www.paper51.com

            Visual C++的MFC基类库定义了几个数据库类。在利用ODBC编程时,经常要使用到 CDatabase(数据库类)、CRecordSet(记录集类)和CRecordView(可视记录集类)。

          paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            CDatabase类对象提供了对数据源的连接,通过它可以对数据源进行操作。

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            CRecordSet类对象提供了从数据源中提取出的记录集。CRecordSet对象通常用于两种形式:动态行集(dynasets)和快照集(snapshots)。动态行集能与其他用户所做的更改保持同步,快照集则是数据的一个静态视图。每种形式在记录集被打开时都提供一组记录,所不同的是,当在一个动态行集里滚动到一条记录时,由其他用户或应用程序中的其他记录集对该记录所做的更改会相应地显示出来。

          http://www.paper51.com

          http://www.paper51.com

          内容来自www.paper51.com

            CRecordView类对象能以控件的形式显示数据库记录,这个视图是直接连到一个CRecordSet对象的表视图。

          paper51.com

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

            二、应用ODBC编程

          copyright paper51.com

          http://www.paper51.com

          copyright paper51.com

            应用Visual C++的AppWizard可以自动生成一个ODBC应用程序框架,步骤是:打开File菜单的New选项,选取Projects,填入工程名,选择MFC AppWizard (exe),然后按AppWizard的提示进行操作。

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

            当AppWizard询问是否包含数据库支持时,如果想读写数据库,那么选定Databaseview with file support;如果想访问数据库的信息而不想写回所做的改变,那么选定Database view without file support。

          paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            选好数据库支持之后,Database Source 按钮会被激活,选中它去调用Data Options对话框。在Database Options对话框中会显示出已向ODBC注册的数据库资源,选定所要操作的数据库,如:Super_ES,单击OK后出现Select Database Tables对话框,其中列举了选中的数据库包含的全部表;选择要操作的表后,单击OK。在选定了数据库和数据表之后,就可以按照惯例继续进行AppWizard操作。

          copyright paper51.com

          http://www.paper51.com

          内容来自www.paper51.com

            特别需要指出的是:在生成的应用程序框架View类(如:CSuper_ESView)中,包含一个指向CSuper_ESSet对象的指针m_pSet,该指针由AppWizard建立,目的是在视表单和记录集之间建立联系,使得记录集中的查询结果能够很容易地在视表单上显示出来。

          paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

            要使程序与数据源建立联系,需用CDateBase::OpenEx()或CDatabase::Open()函数来进行初始化。数据库对象必须在使用它构造记录集对象之前初始化。

          http://www.paper51.com

          copyright paper51.com

          三、实例

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

            1.查询记录

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

            查询记录使用CRecordSet::Open()和CRecordSet::Requery()成员函数。在使用CRecordSet类对象之前,必须使用CRecordSet::Open()函数来获得有效的记录集。一旦已经使用过CRecordSet::Open()函数,再次查询时就可以应用CRecordSet::Requery()函数。

          paper51.com

          paper51.com

          内容来自论文无忧网 www.paper51.com

            在调用CRecordSet::Open()函数时,如果将一个已经打开的CDatabase对象指针传给CRecordSet类对象的m_pDatabase成员变量,则使用该数据库对象建立ODBC连接;否则如果m_pDatabase为空指针,就新建一个CDatabase类对象,并使其与缺省的数据源相连,然后进行CRecordSet类对象的初始化。缺省数据源由GetDefaultConnect()函数获得。也可以提供所需要的SQL语句,并以它来调用CRecordSet::Open()函数,例如:Super_ESSet.Open(AFX_DATABASE_USE_DEFAULT,strSQL);

          copyright paper51.com

          http://www.paper51.com

          copyright paper51.com

            如果没有指定参数,程序则使用缺省的SQL语句,即对在GetDefaultSQL()函数中指定的SQL语句进行操作:

          内容来自www.paper51.com

          paper51.com

          paper51.com

            CString CSuper_ESSet::GetDefaultSQL()

          内容来自www.paper51.com

          内容来自www.paper51.com

            {return _T(″[BsicData],[MinSize]″);}

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            对于GetDefaultSQL()函数返回的表名,对应的缺省操作是SELECT语句,即:

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

            SELECT *FROM BasicData,MainSize

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            在查询过程中,也可以利用CRecordSet的成员变量m_strFilter和m_strSort来执行条件查询和结果排序。m_strFilter为过滤字符串,存放着SQL语句中WHERE后的条件串;m_strSort为排序字符串,存放着SQL语句中ORDER BY后的字符串。如:

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          paper51.com

            Super_ESSet.m_strFilter=″TYPE=‘电动机’″;

          内容来自www.paper51.com

          http://www.paper51.com

            Super_ESSet.m_strSort=″VOLTAGE″;

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            Super_ESSet.Requery();

          http://www.paper51.com

          http://www.paper51.com

          paper51.com

            对应的SQL语句为:

          内容来自www.paper51.com

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

            SELECT *FROM BasicData,MainSize

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

            WHERE TYPE=‘电动机’

          内容来自www.paper51.com

          paper51.com

            ORDER BY VOLTAGE

          copyright paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

            除了直接赋值给m_strFilter以外,还可以使用参数化。利用参数化可以更直观、更方便地完成条件查询任务。使用参数化的步骤如下:

          paper51.com

          内容来自论文无忧网 www.paper51.com

          paper51.com

            S声明参变量:

          paper51.com

          内容来自www.paper51.com

          copyright paper51.com

            CString p1;

          内容来自www.paper51.com

          内容来自www.paper51.com

            float p2;

          paper51.com

          copyright paper51.com

          copyright paper51.com

            S在构造函数中初始化参变量:

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          copyright paper51.com

            p1=_T(″″);

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

            p2=0.0f;

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            m_nParams=2;

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          paper51.com

            S将参变量与对应列绑定:

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

            pFX->SetFieldType(CFieldExchange::param)

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          http://www.paper51.com

            RFX_Text(pFX,_T(″P1″),p1);

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

            RFX_Single(pFX,_T(″P2″),p2);

          copyright paper51.com

          http://www.paper51.com

          paper51.com

            完成以上步骤后就可以利用参变量进行条件查询:

          paper51.com

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

            m_pSet->m_strFilter=″TYPE=? AND VOLTAGE=?″;m_pSet->p1=″电动机″;

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

            m_pSet->p2=60.0;

          http://www.paper51.com

          http://www.paper51.com

            m_pSet->Requery();

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          paper51.com

            参变量的值按绑定的顺序替换查询字串中的“?”通配符。

          内容来自www.paper51.com

          copyright paper51.com

          copyright paper51.com

            如果查询的结果是多条记录,可以用CRecordSet类的函数Move()、MoveNext()、MovePrev()、MoveFirst()和MoveLast()来移动光标。

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

            2.增加记录

          copyright paper51.com

          内容来自www.paper51.com

          内容来自www.paper51.com

            增加记录使用AddNew()函数,要求数据库必须是以允许增加的方式打开:

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

            m_pSet->AddNew();//在表的末尾增加新记录

          paper51.com

          http://www.paper51.com

            m_pSet->SetFieldNull(&(m_pSet->m_type), FALSE);

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

            m_pSet->m_type=″电动机″;

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            ……

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

            //输入新的字段值

          copyright paper51.com

          http://www.paper51.com

            m_pSet->update();

          http://www.paper51.com

          内容来自www.paper51.com

            //将新记录存入数据库

          内容来自论文无忧网 www.paper51.com

          paper51.com

            m_pSet->Requery();

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

            //重建记录集

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          内容来自www.paper51.com

            3.删除记录

          内容来自www.paper51.com

          paper51.com

          http://www.paper51.com

            可以直接使用delete()函数来删除记录,并且在调用delete()函数之后不需调用update()函数:

          内容来自www.paper51.com

          内容来自www.paper51.com

          copyright paper51.com

            m_pSet->delete();

          内容来自www.paper51.com

          copyright paper51.com

            if (!m_pSet->IsEOF())

          copyright paper51.com

          paper51.com

            m_pSet->MoveNext();

          内容来自www.paper51.com

          copyright paper51.com

            else

          copyright paper51.com

          http://www.paper51.com

            m_pSet->MoveLast();

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          copyright paper51.com

            4.修改记录

          paper51.com

          copyright paper51.com

          http://www.paper51.com

            修改记录使用Edit()函数:

          http://www.paper51.com

          paper51.com

          http://www.paper51.com

            m_pSet->Edit();

          http://www.paper51.com

          内容来自www.paper51.com

            //修改当前记录

          内容来自论文无忧网 www.paper51.com

          paper51.com

            m_pSet->m_type=″发电机″;

          paper51.com

          copyright paper51.com

            //修改当前记录字段值

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

             ……

          paper51.com

          内容来自论文无忧网 www.paper51.com

            m_pSet->update();//将修改结果存入数据库

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

            m_pSet->Requery();

          http://www.paper51.com

          http://www.paper51.com

          http://www.paper51.com

            5.撤消操作

          http://www.paper51.com

          copyright paper51.com

          paper51.com

            如果用户选择了增加或者修改记录后希望放弃当前操作,可以在调用update()函数之前调用:

          paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

            CRecordSet::Move(AFX_MOVE_REFRESH)来撤消增加或修改模式,并恢复在增加或修改模式之前的当前记录。其中,参数AFX_MOVE_REFRESH的值为零。

          内容来自www.paper51.com

          copyright paper51.com

          http://www.paper51.com

            6.数据库连接的复用

          内容来自论文无忧网 www.paper51.com

          paper51.com

          内容来自www.paper51.com

            在CRecordSet类中定义了一个成员变量m_pDatabase:

          copyright paper51.com

          copyright paper51.com

          copyright paper51.com

            CDatabase* m_pDatabase;

          内容来自www.paper51.com

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

            它是指向对象数据库类的指针。如果在CRecordSet类对象调用Open()函数之前,将一个已经打开的CDatabase类对象指针传给m_pDatabase,就能共享相同的CDatabase类对象。如:

          http://www.paper51.com

          http://www.paper51.com

          paper51.com

            CDatabase m_db;

          http://www.paper51.com

          内容来自www.paper51.com

            CRecordSet m_set1,m_set2;

          内容来自论文无忧网 www.paper51.com

          paper51.com

            m_db.Open(_T(″Super_ES″)); //建立ODBC连接

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

            m_set1.m_pDatabase=&m_db;

          paper51.com

          copyright paper51.com

            //m_set1复用m_db对象

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

            m_set2.m_pDatabse=&m_db;

          paper51.com

          内容来自www.paper51.com

            // m_set2复用m_db对象

          http://www.paper51.com

          paper51.com

          copyright paper51.com

            7.SQL语句的直接执行

          copyright paper51.com

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

            虽然我们可以通过CRecordSet类完成大多数的查询操作,而且在CRecordSet::Open()函数中也可以提供SQL语句,但是有时候我们还是希望进行一些其他操作,例如建立新表、删除表、建立新的字段等,这时就需要使用CDatabase类直接执行SQL语句的机制。通过调用CDatabase::ExecuteSQL()函数来完成SQL语句的直接执行:

          copyright paper51.com

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

            BOOLCDB::ExecuteSQLAndReportFailure(const CString& strSQL)

          paper51.com

          内容来自论文无忧网 www.paper51.com

            {TRY

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

            {m_pdb->ExecuteSQL(strSQL);

          copyright paper51.com

          paper51.com

            //直接执行SQL语句}

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

            CATCH (CDBException,e)

          http://www.paper51.com

          paper51.com

            {CString strMsg;

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

            strMsg.LoadString(IDS_EXECUTE_SQL_FAILED);

          http://www.paper51.com

          paper51.com

            strMsg+=strSQL;

          paper51.com

          内容来自论文无忧网 www.paper51.com

            return FALSE;}

          内容来自www.paper51.com

          paper51.com

            END_CATCH

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

            return TRUE;}

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

            应当指出的是,由于不同的DBMS提供的数据操作语句不尽相同,直接执行SQL语句可能会破坏软件的DBMS无关性,因此在应用中应当慎用此类操作。

          copyright paper51.com

          http://www.paper51.com

          copyright paper51.com

            8.动态连接表

          copyright paper51.com

          copyright paper51.com

          copyright paper51.com

            表的动态连接可以利用在调用CRecordSet::Open()函数时指定SQL语句来实现。同一个记录集对象只能访问具有相同结构的表,否则查询结果将无法与变量相对应。

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          paper51.com

          void CDB::ChangeTable()

          内容来自www.paper51.com

          内容来自www.paper51.com

          {

          paper51.com

          内容来自www.paper51.com

           if (m_pSet->IsOpen())m_pSet->Close();

          copyright paper51.com

          http://www.paper51.com

           switch (m_id)

          paper51.com

          内容来自论文无忧网 www.paper51.com

           {

          paper51.com

          copyright paper51.com

            case 0:

          内容来自www.paper51.com

          paper51.com

             m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,″SELECT * FROM SLOT0″);

          内容来自www.paper51.com

          paper51.com

             //连接表SLOT0

          paper51.com

          http://www.paper51.com

             m_id=1;

          http://www.paper51.com

          http://www.paper51.com

             break;

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

            case 1:

          paper51.com

          paper51.com

             m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,″SELECT * FROM SLOT1″); //连接表SLOT1

          内容来自www.paper51.com

          http://www.paper51.com

             m_id=0;

          内容来自www.paper51.com

          http://www.paper51.com

             break;

          内容来自www.paper51.com

          内容来自www.paper51.com

           }

          copyright paper51.com

          http://www.paper51.com

          }

          paper51.com

          内容来自www.paper51.com

          内容来自www.paper51.com

            9.动态连接数据库

          copyright paper51.com

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

            可以通过赋与CRecordSet类对象参数m_pDatabase来连接不同数据库的CDatabase对象指针,从而实现动态连接数据库。

          内容来自www.paper51.com

          copyright paper51.com

          http://www.paper51.com

          void CDB::ChangeConnect()

          http://www.paper51.com

          内容来自www.paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          paper51.com

           CDatabase* pdb=m_pSet->m_pDatabase;

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

           pdb->Close();

          copyright paper51.com

          内容来自www.paper51.com

           switch (m_id)

          paper51.com

          内容来自论文无忧网 www.paper51.com

           {

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

            case 0:

          内容来自www.paper51.com

          paper51.com

             if (!pdb->Open(_T(″Super_ES″)))

          copyright paper51.com

          http://www.paper51.com

              //连接数据源Super_ES

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

             {

          内容来自www.paper51.com

          copyright paper51.com

              AfxMessageBox(″数据源Super_ES打开失败″,″请检查相应的ODBC连接″, MB_OK|MB_ICONWARNING);

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

              exit(0);

          paper51.com

          http://www.paper51.com

             }

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

             m_id=1;

          http://www.paper51.com

          paper51.com

             break;

          内容来自www.paper51.com

          内容来自www.paper51.com

            case 1:

          内容来自www.paper51.com

          http://www.paper51.com

             if (!pdb->Open(_T(″Motor″)))

          内容来自www.paper51.com

          copyright paper51.com

             //连接数据源Motor

          内容来自www.paper51.com

          paper51.com

             {

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

              AfxMessageBox(″数据源Motor打开失败″,″请检查相应的ODBC连接″, MB_OK|MB_ICONWARNING);

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

              exit(0);

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

             }

          内容来自论文无忧网 www.paper51.com

          paper51.com

             m_id=0;

          copyright paper51.com

          copyright paper51.com

             break;

          内容来自论文无忧网 www.paper51.com

          paper51.com

           }

          copyright paper51.com

          copyright paper51.com

          }

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

            

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          Visual C++中的ODBC类库可以帮助程序员完成绝大多数的数据库操作。利用ODBC技术使得程序员从具体的DBMS中解脱出来,从而可以减少软件开发的工作量,缩短开发周期,并提高效率和软件的可靠性。

          内容来自论文无忧网 www.paper51.com

          paper51.com

          5.2系统数据库表

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          paper51.com

          6程序设计

          内容来自www.paper51.com

          http://www.paper51.com

          6.1系统主界面

          paper51.com

          内容来自www.paper51.com

          内容来自www.paper51.com

          copyright paper51.com

          主界面相关代码:

          内容来自www.paper51.com

          内容来自www.paper51.com

          // DMSDlg.cpp : implementation file

          内容来自www.paper51.com

          内容来自www.paper51.com

          //

          copyright paper51.com

          copyright paper51.com

          内容来自www.paper51.com

          #include "stdafx.h"

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          #include "DMS.h"

          copyright paper51.com

          内容来自www.paper51.com

          #include "DMSDlg.h"

          paper51.com

          paper51.com

          #include "DlgProxy.h"

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          #include "DlgLogIn.h"

          paper51.com

          内容来自www.paper51.com

          #include "DlgDevcode.h"

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

          #include "DlgReport.h"

          paper51.com

          http://www.paper51.com

          #include "DlgViewLog.h"

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          #include "DlgViewDevIn.h"

          copyright paper51.com

          copyright paper51.com

          #include "DlgViewRet.h"

          copyright paper51.com

          paper51.com

          #include "DlgViewOut.h"

          内容来自www.paper51.com

          copyright paper51.com

          #include "DlgViewNeed.h"

          paper51.com

          paper51.com

          #include "DlgViewReport.h"

          内容来自www.paper51.com

          http://www.paper51.com

          #include "DlgDev.h"

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          #include "DlgDevAlert.h"

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

          #include "DlgDevIn.h"

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          #include "DlgDevOut.h"

          copyright paper51.com

          http://www.paper51.com

          #include "DlgDevRet.h"

          paper51.com

          内容来自www.paper51.com

          #include "DlgDevNeed.h"

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

          #ifdef _DEBUG

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

          #define new DEBUG_NEW

          paper51.com

          paper51.com

          #undef THIS_FILE

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          static char THIS_FILE[] =__FILE__;

          http://www.paper51.com

          http://www.paper51.com

          #endif

          copyright paper51.com

          paper51.com

          paper51.com

          /////////////////////////////////////////////////////////////////////////////

          paper51.com

          copyright paper51.com

          // CAboutDlg dialog used for App About

          内容来自www.paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

          class CAboutDlg : publicCDialog

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          {

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          public:

          paper51.com

          copyright paper51.com

                 CAboutDlg();

          内容来自www.paper51.com

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          // Dialog Data

          paper51.com

          内容来自论文无忧网 www.paper51.com

                 //{{AFX_DATA(CAboutDlg)

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                 enum { IDD = IDD_ABOUTBOX };

          内容来自www.paper51.com

          copyright paper51.com

                 //}}AFX_DATA

          http://www.paper51.com

          copyright paper51.com

          copyright paper51.com

                 //ClassWizard generated virtual function overrides

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

                 //{{AFX_VIRTUAL(CAboutDlg)

          http://www.paper51.com

          http://www.paper51.com

                 protected:

          paper51.com

          paper51.com

                 virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                 //}}AFX_VIRTUAL

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          paper51.com

          // Implementation

          paper51.com

          http://www.paper51.com

          protected:

          http://www.paper51.com

          paper51.com

                 //{{AFX_MSG(CAboutDlg)

          内容来自www.paper51.com

          内容来自www.paper51.com

                 //}}AFX_MSG

          paper51.com

          内容来自论文无忧网 www.paper51.com

                 DECLARE_MESSAGE_MAP()

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          };

          内容来自www.paper51.com

          paper51.com

          copyright paper51.com

          CAboutDlg::CAboutDlg() :CDialog(CAboutDlg::IDD)

          内容来自www.paper51.com

          paper51.com

          {

          http://www.paper51.com

          copyright paper51.com

                 //{{AFX_DATA_INIT(CAboutDlg)

          http://www.paper51.com

          http://www.paper51.com

                 //}}AFX_DATA_INIT

          内容来自www.paper51.com

          copyright paper51.com

          }

          paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          voidCAboutDlg::DoDataExchange(CDataExchange* pDX)

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          {

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

                 CDialog::DoDataExchange(pDX);

          paper51.com

          copyright paper51.com

                 //{{AFX_DATA_MAP(CAboutDlg)

          copyright paper51.com

          copyright paper51.com

                 //}}AFX_DATA_MAP

          copyright paper51.com

          http://www.paper51.com

          }

          内容来自www.paper51.com

          copyright paper51.com

          http://www.paper51.com

          BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

          内容来自www.paper51.com

          paper51.com

                 //{{AFX_MSG_MAP(CAboutDlg)

          paper51.com

          copyright paper51.com

                        //No message handlers

          paper51.com

          内容来自论文无忧网 www.paper51.com

                 //}}AFX_MSG_MAP

          内容来自www.paper51.com

          内容来自www.paper51.com

          END_MESSAGE_MAP()

          内容来自www.paper51.com

          paper51.com

          copyright paper51.com

          /////////////////////////////////////////////////////////////////////////////

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          // CDMSDlg dialog

          内容来自www.paper51.com

          paper51.com

          copyright paper51.com

          IMPLEMENT_DYNAMIC(CDMSDlg, CDialog);

          copyright paper51.com

          paper51.com

          paper51.com

          CDMSDlg::CDMSDlg(CWnd* pParent /*=NULL*/)

          内容来自www.paper51.com

          paper51.com

                 :CDialog(CDMSDlg::IDD, pParent)

          copyright paper51.com

          内容来自www.paper51.com

          {

          copyright paper51.com

          paper51.com

                 //{{AFX_DATA_INIT(CDMSDlg)

          paper51.com

          copyright paper51.com

                        //NOTE: the ClassWizard will add member initialization here

          内容来自www.paper51.com

          http://www.paper51.com

                 //}}AFX_DATA_INIT

          paper51.com

          内容来自www.paper51.com

                 //Note that LoadIcon does not require a subsequent DestroyIcon in Win32

          paper51.com

          http://www.paper51.com

                 m_hIcon= AfxGetApp()->LoadIcon(IDR_MAINFRAME);

          http://www.paper51.com

          http://www.paper51.com

                 m_pAutoProxy= NULL;

          paper51.com

          http://www.paper51.com

          }

          http://www.paper51.com

          paper51.com

          copyright paper51.com

          CDMSDlg::~CDMSDlg()

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          {

          内容来自www.paper51.com

          paper51.com

                 //If there is an automation proxy for this dialog, set

          http://www.paper51.com

          http://www.paper51.com

                 //  its backpointer to this dialog to NULL, so it knows

          http://www.paper51.com

          http://www.paper51.com

                 //  the dialog hasbeen deleted.

          paper51.com

          paper51.com

                 if (m_pAutoProxy != NULL)

          内容来自www.paper51.com

          http://www.paper51.com

                        m_pAutoProxy->m_pDialog= NULL;

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          }

          http://www.paper51.com

          paper51.com

          内容来自www.paper51.com

          voidCDMSDlg::DoDataExchange(CDataExchange* pDX)

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          {

          http://www.paper51.com

          paper51.com

                 CDialog::DoDataExchange(pDX);

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 //{{AFX_DATA_MAP(CDMSDlg)

          paper51.com

          内容来自www.paper51.com

                        //NOTE: the ClassWizard will add DDX and DDV calls here

          内容来自www.paper51.com

          http://www.paper51.com

                 //}}AFX_DATA_MAP

          copyright paper51.com

          http://www.paper51.com

          }

          内容来自www.paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

          BEGIN_MESSAGE_MAP(CDMSDlg, CDialog)

          copyright paper51.com

          http://www.paper51.com

                 //{{AFX_MSG_MAP(CDMSDlg)

          copyright paper51.com

          copyright paper51.com

                 ON_WM_SYSCOMMAND()

          内容来自论文无忧网 www.paper51.com

          paper51.com

                 ON_WM_PAINT()

          内容来自论文无忧网 www.paper51.com

          paper51.com

                 ON_WM_QUERYDRAGICON()

          paper51.com

          paper51.com

                 ON_WM_CLOSE()

          http://www.paper51.com

          copyright paper51.com

                 ON_BN_CLICKED(IDC_BTN_BUYDEV, OnBtnBuydev)

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_DEVALERT, OnBtnDevalert)

          copyright paper51.com

          内容来自www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_DEVCODE, OnBtnDevcode)

          paper51.com

          copyright paper51.com

                 ON_BN_CLICKED(IDC_BTN_DEVIN, OnBtnDevin)

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_DEVOUT, OnBtnDevout)

          copyright paper51.com

          paper51.com

                 ON_BN_CLICKED(IDC_BTN_DEVRET, OnBtnDevret)

          http://www.paper51.com

          内容来自www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_INFODEV, OnBtnInfodev)

          paper51.com

          内容来自www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_INFOIN, OnBtnInfoin)

          内容来自www.paper51.com

          内容来自www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_INFONEED, OnBtnInfoneed)

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_INFOOUT, OnBtnInfoout)

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_INFORET, OnBtnInforet)

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_NEED, OnBtnNeed)

          http://www.paper51.com

          paper51.com

                 ON_BN_CLICKED(IDC_BTN_VIEWLOG, OnBtnViewlog)

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                 ON_BN_CLICKED(IDC_BTN_VIEWPRT, OnBtnViewprt)

          copyright paper51.com

          paper51.com

                 ON_WM_DESTROY()

          内容来自www.paper51.com

          copyright paper51.com

                 ON_BN_CLICKED(IDC_BTN_ABOUT, OnBtnAbout)

          copyright paper51.com

          paper51.com

                 ON_BN_CLICKED(IDC_BTN_HELP, OnBtnHelp)

          http://www.paper51.com

          copyright paper51.com

                 //}}AFX_MSG_MAP

          内容来自www.paper51.com

          内容来自www.paper51.com

          END_MESSAGE_MAP()

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          /////////////////////////////////////////////////////////////////////////////

          paper51.com

          http://www.paper51.com

          // CDMSDlg message handlers

          copyright paper51.com

          http://www.paper51.com

          内容来自www.paper51.com

          BOOL CDMSDlg::OnInitDialog()

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          {

          http://www.paper51.com

          http://www.paper51.com

                 CDialog::OnInitDialog();

          内容来自www.paper51.com

          paper51.com

          paper51.com

                 //Add "About..." menu item to system menu.

          http://www.paper51.com

          copyright paper51.com

          http://www.paper51.com

                 //IDM_ABOUTBOX must be in the system command range.

          paper51.com

          copyright paper51.com

                 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

          内容来自www.paper51.com

          内容来自www.paper51.com

                 ASSERT(IDM_ABOUTBOX < 0xF000);

          http://www.paper51.com

          copyright paper51.com

          http://www.paper51.com

                 CMenu*pSysMenu = GetSystemMenu(FALSE);

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 if (pSysMenu != NULL)

          http://www.paper51.com

          paper51.com

                 {

          copyright paper51.com

          http://www.paper51.com

                        CStringstrAboutMenu;

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                        strAboutMenu.LoadString(IDS_ABOUTBOX);

          内容来自www.paper51.com

          内容来自www.paper51.com

                        if (!strAboutMenu.IsEmpty())

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                        {

          http://www.paper51.com

          http://www.paper51.com

                               pSysMenu->AppendMenu(MF_SEPARATOR);

          http://www.paper51.com

          paper51.com

                               pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX,strAboutMenu);

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                        }

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 }

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          http://www.paper51.com

                 //Set the icon for this dialog.  Theframework does this automatically

          内容来自www.paper51.com

          copyright paper51.com

                 //  when theapplication's main window is not a dialog

          内容来自www.paper51.com

          copyright paper51.com

                 SetIcon(m_hIcon, TRUE);                    //Set big icon

          copyright paper51.com

          http://www.paper51.com

                 SetIcon(m_hIcon, FALSE);          //Set small icon

          paper51.com

          内容来自论文无忧网 www.paper51.com

                

          内容来自论文无忧网 www.paper51.com

          paper51.com

                

          http://www.paper51.com

          http://www.paper51.com

                 /**

          paper51.com

          内容来自论文无忧网 www.paper51.com

                  * 在这里弹出用户登录对话框

          paper51.com

          paper51.com

                 */

          copyright paper51.com

          http://www.paper51.com

                 CDlgLogIndlg;

          http://www.paper51.com

          内容来自www.paper51.com

                 do

          http://www.paper51.com

          paper51.com

                 {

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

                        if (!dlg.DoModal())

          copyright paper51.com

          paper51.com

                               EndDialog(0);

          paper51.com

          paper51.com

                 }while (dlg.m_UsrName.GetLength()==0);

          内容来自www.paper51.com

          http://www.paper51.com

          paper51.com

                 /**

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

                  * 登录数据库,若失败,则关闭程序。

          copyright paper51.com

          copyright paper51.com

                 */

          copyright paper51.com

          内容来自www.paper51.com

                 try

          内容来自论文无忧网 www.paper51.com

          paper51.com

                 {

          copyright paper51.com

          http://www.paper51.com

                        m_DBCnt.CreateInstance(__uuidof(Connection));

          内容来自www.paper51.com

          内容来自www.paper51.com

                        CStringsql_;

          http://www.paper51.com

          http://www.paper51.com

                        sql_.Format("DSN=DMS;UID=%s;PWD=%s",dlg.m_UsrName,dlg.m_UsrPwd);

          内容来自www.paper51.com

          内容来自www.paper51.com

                        _bstr_tsql=sql_;

          内容来自www.paper51.com

          http://www.paper51.com

                        m_DBCnt->Open(sql,"","",-1);

          内容来自www.paper51.com

          http://www.paper51.com

          copyright paper51.com

                        m_logMngr.Setup(m_DBCnt,dlg.m_UsrName);

          paper51.com

          paper51.com

                        m_logMngr.AddLog("登录数据库");

          内容来自www.paper51.com

          http://www.paper51.com

                 }

          paper51.com

          http://www.paper51.com

                 catch(_com_error& e)

          http://www.paper51.com

          paper51.com

              {

          paper51.com

          内容来自论文无忧网 www.paper51.com

                        AfxMessageBox(e.ErrorMessage());

          http://www.paper51.com

          内容来自www.paper51.com

                        this->EndDialog(0);

          内容来自www.paper51.com

          http://www.paper51.com

              }                                  

          http://www.paper51.com

          copyright paper51.com

          http://www.paper51.com

                 return TRUE;  //return TRUE  unless you set thefocus to a control

          paper51.com

          paper51.com

          }

          paper51.com

          http://www.paper51.com

          paper51.com

          voidCDMSDlg::OnSysCommand(UINT nID, LPARAM lParam)

          http://www.paper51.com

          copyright paper51.com

          {

          paper51.com

          copyright paper51.com

                 if ((nID & 0xFFF0) == IDM_ABOUTBOX)

          http://www.paper51.com

          http://www.paper51.com

                 {

          http://www.paper51.com

          内容来自www.paper51.com

                        CAboutDlgdlgAbout;

          paper51.com

          内容来自www.paper51.com

                        dlgAbout.DoModal();

          paper51.com

          内容来自www.paper51.com

                 }

          copyright paper51.com

          内容来自www.paper51.com

                 else

          paper51.com

          http://www.paper51.com

                 {

          paper51.com

          http://www.paper51.com

                        CDialog::OnSysCommand(nID, lParam);

          内容来自www.paper51.com

          内容来自www.paper51.com

                 }

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          }

          paper51.com

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          // If you add a minimize button to your dialog, you will need thecode below

          paper51.com

          内容来自论文无忧网 www.paper51.com

          // to draw the icon.  ForMFC applications using the document/view model,

          paper51.com

          paper51.com

          // this is automatically done for you by the framework.

          内容来自www.paper51.com

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          void CDMSDlg::OnPaint()

          copyright paper51.com

          内容来自www.paper51.com

          {

          内容来自www.paper51.com

          paper51.com

                 if (IsIconic())

          http://www.paper51.com

          内容来自www.paper51.com

                 {

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                        CPaintDCdc(this); // device context for painting

          copyright paper51.com

          内容来自www.paper51.com

          paper51.com

                        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

          copyright paper51.com

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

                        //Center icon in client rectangle

          copyright paper51.com

          copyright paper51.com

                        int cxIcon = GetSystemMetrics(SM_CXICON);

          内容来自www.paper51.com

          内容来自www.paper51.com

                        int cyIcon = GetSystemMetrics(SM_CYICON);

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

                        CRectrect;

          http://www.paper51.com

          copyright paper51.com

                        GetClientRect(&rect);

          copyright paper51.com

          paper51.com

                        int x = (rect.Width() - cxIcon + 1) / 2;

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

                        int y = (rect.Height() - cyIcon + 1) / 2;

          内容来自www.paper51.com

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                        //Draw the icon

          http://www.paper51.com

          paper51.com

                        dc.DrawIcon(x,y, m_hIcon);

          内容来自www.paper51.com

          内容来自www.paper51.com

                 }

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 else

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 {

          内容来自www.paper51.com

          copyright paper51.com

                        CDialog::OnPaint();

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                 }

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          }

          paper51.com

          paper51.com

          内容来自www.paper51.com

          // The system calls this to obtain thecursor to display while the user drags

          copyright paper51.com

          paper51.com

          // the minimized window.

          内容来自www.paper51.com

          http://www.paper51.com

          HCURSOR CDMSDlg::OnQueryDragIcon()

          http://www.paper51.com

          copyright paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

                 return (HCURSOR) m_hIcon;

          内容来自www.paper51.com

          paper51.com

          }

          http://www.paper51.com

          paper51.com

          copyright paper51.com

          // Automation servers should not exit when a user closes the UI

          http://www.paper51.com

          paper51.com

          // if a controller still holds on to one of its objects.  These

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          // message handlers make sure that if the proxy is still in use,

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          //  then the UI is hidden but thedialog remains around if it

          paper51.com

          paper51.com

          // is dismissed.

          copyright paper51.com

          copyright paper51.com

          copyright paper51.com

          void CDMSDlg::OnClose()

          copyright paper51.com

          内容来自www.paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          paper51.com

                 if (CanExit())

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

                        CDialog::OnClose();

          内容来自www.paper51.com

          copyright paper51.com

          }

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          内容来自www.paper51.com

          void CDMSDlg::OnOK()

          paper51.com

          http://www.paper51.com

          {

          copyright paper51.com

          copyright paper51.com

                 if (CanExit())

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

                        CDialog::OnOK();

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          }

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          http://www.paper51.com

          void CDMSDlg::OnCancel()

          paper51.com

          内容来自www.paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                 if (CanExit())

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                        CDialog::OnCancel();

          copyright paper51.com

          paper51.com

          }

          copyright paper51.com

          copyright paper51.com

          paper51.com

          BOOL CDMSDlg::CanExit()

          paper51.com

          http://www.paper51.com

          {

          http://www.paper51.com

          paper51.com

                 //If the proxy object is still around, then the automation

          http://www.paper51.com

          http://www.paper51.com

                 //  controller isstill holding on to this application. Leave

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 //  the dialogaround, but hide its UI.

          copyright paper51.com

          paper51.com

                 if (m_pAutoProxy != NULL)

          copyright paper51.com

          paper51.com

                 {

          http://www.paper51.com

          http://www.paper51.com

                        ShowWindow(SW_HIDE);

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

                        return FALSE;

          paper51.com

          paper51.com

                 }

          http://www.paper51.com

          http://www.paper51.com

          内容来自www.paper51.com

                 return TRUE;

          内容来自论文无忧网 www.paper51.com

          paper51.com

          }

          copyright paper51.com

          内容来自www.paper51.com

          paper51.com

          void CDMSDlg::OnBtnBuydev()

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

          {

          http://www.paper51.com

          内容来自www.paper51.com

                 CDlgReportdlg;

          copyright paper51.com

          paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          copyright paper51.com

          paper51.com

                 this->ShowWindow(SW_HIDE);

          copyright paper51.com

          paper51.com

                 dlg.DoModal();

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 this->ShowWindow(SW_SHOW);

          内容来自论文无忧网 www.paper51.com

          paper51.com

          }

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          内容来自www.paper51.com

          voidCDMSDlg::OnBtnDevalert()

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          {

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

                 CDlgDevAlertdlg;

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          http://www.paper51.com

          paper51.com

                 this->ShowWindow(SW_HIDE);

          内容来自论文无忧网 www.paper51.com

          paper51.com

                 dlg.DoModal();

          copyright paper51.com

          http://www.paper51.com

                 this->ShowWindow(SW_SHOW);

          copyright paper51.com

          内容来自www.paper51.com

          }

          http://www.paper51.com

          paper51.com

          http://www.paper51.com

          void CDMSDlg::OnBtnDevcode()

          http://www.paper51.com

          http://www.paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                 CDlgDevcodedlg;

          paper51.com

          内容来自www.paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          copyright paper51.com

          内容来自www.paper51.com

                 this->ShowWindow(SW_HIDE);

          http://www.paper51.com

          内容来自www.paper51.com

                 dlg.DoModal();

          paper51.com

          http://www.paper51.com

                 this->ShowWindow(SW_SHOW);

          copyright paper51.com

          copyright paper51.com

          }

          http://www.paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

          void CDMSDlg::OnBtnDevin()

          内容来自www.paper51.com

          copyright paper51.com

          {

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 CDlgDevIndlg;

          paper51.com

          paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          内容来自www.paper51.com

          http://www.paper51.com

                 this->ShowWindow(SW_HIDE);

          paper51.com

          内容来自www.paper51.com

                 dlg.DoModal();

          内容来自www.paper51.com

          paper51.com

                 this->ShowWindow(SW_SHOW);    

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          }

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          void CDMSDlg::OnBtnDevout()

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          {

          http://www.paper51.com

          paper51.com

                 CDlgDevOutdlg;

          内容来自www.paper51.com

          copyright paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 this->ShowWindow(SW_HIDE);

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 dlg.DoModal();

          paper51.com

          copyright paper51.com

                 this->ShowWindow(SW_SHOW);    

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          }

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

          copyright paper51.com

          void CDMSDlg::OnBtnDevret()

          paper51.com

          http://www.paper51.com

          {

          paper51.com

          http://www.paper51.com

                 CDlgDevRetdlg;

          paper51.com

          copyright paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          paper51.com

          http://www.paper51.com

                 this->ShowWindow(SW_HIDE);

          http://www.paper51.com

          http://www.paper51.com

                 dlg.DoModal();

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

                 this->ShowWindow(SW_SHOW);           

          内容来自www.paper51.com

          copyright paper51.com

          }

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          http://www.paper51.com

          void CDMSDlg::OnBtnInfodev()

          内容来自www.paper51.com

          http://www.paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          paper51.com

                 CDlgDevdlg;

          http://www.paper51.com

          内容来自www.paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          内容来自www.paper51.com

          copyright paper51.com

                 this->ShowWindow(SW_HIDE);

          copyright paper51.com

          copyright paper51.com

                 dlg.DoModal();

          内容来自www.paper51.com

          内容来自www.paper51.com

                 this->ShowWindow(SW_SHOW);           

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          }

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          void CDMSDlg::OnBtnInfoin()

          paper51.com

          内容来自论文无忧网 www.paper51.com

          {

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

                 CDlgViewDevIndlg;

          http://www.paper51.com

          http://www.paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          paper51.com

          内容来自论文无忧网 www.paper51.com

                 this->ShowWindow(SW_HIDE);

          paper51.com

          内容来自www.paper51.com

                 dlg.DoModal();

          copyright paper51.com

          paper51.com

                 this->ShowWindow(SW_SHOW);

          内容来自www.paper51.com

          copyright paper51.com

          }

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          voidCDMSDlg::OnBtnInfoneed()

          copyright paper51.com

          http://www.paper51.com

          {

          paper51.com

          copyright paper51.com

                 CDlgViewNeeddlg;

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

                 this->ShowWindow(SW_HIDE);

          http://www.paper51.com

          copyright paper51.com

                 dlg.DoModal();

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

                 this->ShowWindow(SW_SHOW);

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          }

          http://www.paper51.com

          copyright paper51.com

          内容来自www.paper51.com

          void CDMSDlg::OnBtnInfoout()

          内容来自www.paper51.com

          paper51.com

          {

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 CDlgViewOutdlg;

          paper51.com

          内容来自www.paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          paper51.com

          copyright paper51.com

                 this->ShowWindow(SW_HIDE);

          paper51.com

          paper51.com

                 dlg.DoModal();

          paper51.com

          内容来自www.paper51.com

                 this->ShowWindow(SW_SHOW);

          copyright paper51.com

          内容来自www.paper51.com

          }

          paper51.com

          paper51.com

          内容来自www.paper51.com

          void CDMSDlg::OnBtnInforet()

          copyright paper51.com

          paper51.com

          {

          http://www.paper51.com

          paper51.com

                 CDlgViewRetdlg;

          http://www.paper51.com

          copyright paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          内容来自www.paper51.com

          paper51.com

                 this->ShowWindow(SW_HIDE);

          http://www.paper51.com

          paper51.com

                 dlg.DoModal();

          http://www.paper51.com

          copyright paper51.com

                 this->ShowWindow(SW_SHOW);

          内容来自www.paper51.com

          paper51.com

          }

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          copyright paper51.com

          void CDMSDlg::OnBtnNeed()

          http://www.paper51.com

          http://www.paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

                 CDlgDevNeeddlg;

          内容来自www.paper51.com

          copyright paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 this->ShowWindow(SW_HIDE);

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

                 dlg.DoModal();

          paper51.com

          内容来自www.paper51.com

                 this->ShowWindow(SW_SHOW);

          内容来自www.paper51.com

          http://www.paper51.com

          }

          内容来自www.paper51.com

          copyright paper51.com

          内容来自www.paper51.com

          void CDMSDlg::OnBtnViewlog()

          内容来自www.paper51.com

          copyright paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

                 CDlgViewLogdlg;

          paper51.com

          copyright paper51.com

                 dlg.SetDBConnection(m_DBCnt);

          paper51.com

          paper51.com

                 this->ShowWindow(SW_HIDE);

          copyright paper51.com

          http://www.paper51.com

                 dlg.DoModal();

          内容来自论文无忧网 www.paper51.com

          paper51.com

                 this->ShowWindow(SW_SHOW);

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          }

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          void CDMSDlg::OnBtnViewprt()

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

          {

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 CDlgViewReportdlg;

          内容来自论文无忧网 www.paper51.com

          http://www.paper51.com

                 dlg.Setup(m_DBCnt,&m_logMngr);

          http://www.paper51.com

          内容来自www.paper51.com

                 this->ShowWindow(SW_HIDE);

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

                 dlg.DoModal();

          内容来自论文无忧网 www.paper51.com

          内容来自www.paper51.com

                 this->ShowWindow(SW_SHOW);

          paper51.com

          http://www.paper51.com

          }

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          内容来自论文无忧网 www.paper51.com

          void CDMSDlg::OnDestroy()

          copyright paper51.com

          内容来自www.paper51.com

          {

          内容来自www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 CDialog::OnDestroy();

          内容来自论文无忧网 www.paper51.com

          paper51.com

                

          内容来自www.paper51.com

          copyright paper51.com

                 m_DBCnt->Close();

          内容来自www.paper51.com

          http://www.paper51.com

          }

          copyright paper51.com

          paper51.com

          内容来自论文无忧网 www.paper51.com

          void CDMSDlg::OnBtnAbout()

          内容来自www.paper51.com

          paper51.com

          {

          paper51.com

          内容来自论文无忧网 www.paper51.com

                 CAboutDlgdlg;

          copyright paper51.com

          paper51.com

                 dlg.DoModal();

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          }

          内容来自www.paper51.com

          copyright paper51.com

          内容来自www.paper51.com

          void CDMSDlg::OnBtnHelp()

          paper51.com

          paper51.com

          {

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

                 WinExec("hh.exe dms.chm",SW_SHOW);

          paper51.com

          内容来自论文无忧网 www.paper51.com

          }

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          6.2 其它系统界面

          paper51.com

          http://www.paper51.com

          copyright paper51.com

          copyright paper51.com

          copyright paper51.com

          copyright paper51.com

          内容来自www.paper51.com

          内容来自www.paper51.com

          paper51.com

          内容来自论文无忧网 www.paper51.com

          paper51.com

          paper51.com

          http://www.paper51.com

          内容来自www.paper51.com

          内容来自www.paper51.com

          内容来自www.paper51.com

          copyright paper51.com

          http://www.paper51.com

          内容来自论文无忧网 www.paper51.com

          copyright paper51.com

          copyright paper51.com

          paper51.com

          http://www.paper51.com

          内容来自www.paper51.com

          7 结束语

          内容来自www.paper51.com

          copyright paper51.com

          内容来自论文无忧网 www.paper51.com

          通过本次毕业设计,让我深切感悟到,作为一个编程人员,这次设计大大提高了我们综合运用所学理论知识解决实际问题和不断创新的能力。我设计的程序在我的工作中起到了至关重要的作用

          内容来自www.paper51.com

          内容来自www.paper51.com

          copyright paper51.com

          致谢:

          内容来自www.paper51.com

          内容来自www.paper51.com

          在这篇论文完成之际,在此我衷心的感谢我的指导老师。老师在百忙之抽出时间来为我指导讲解,并提出了许多宝贵的意见和建议,我的论文才得以顺利完成。在即将离开学校之际,再次衷心感谢我系所有老师对我的帮助,谢谢你们为我的大学生活划上一个完满的句号。

          http://www.paper51.com

          copyright paper51.com

          参考文献1、编著:胡峪 刘静. VC++高级编程技巧与示例. 西安电子科技大学出版社

          copyright paper51.com

          http://www.paper51.com

          2、VC++ 深入详解 孙鑫等编著 电子工业出版社

          paper51.com

          http://www.paper51.com

          3、编著:袁玫 林志英 刘劲松. 网络数据库应用教程 人民邮电出版社.

          内容来自www.paper51.com

          paper51.com

          paper51.com

------分隔线----------------------------
联系方式