数据库课程设计报告销售管理系统

上传人:沈*** 文档编号:68003988 上传时间:2022-04-01 格式:DOC 页数:34 大小:435.50KB
收藏 版权申诉 举报 下载
数据库课程设计报告销售管理系统_第1页
第1页 / 共34页
数据库课程设计报告销售管理系统_第2页
第2页 / 共34页
数据库课程设计报告销售管理系统_第3页
第3页 / 共34页
资源描述:

《数据库课程设计报告销售管理系统》由会员分享,可在线阅读,更多相关《数据库课程设计报告销售管理系统(34页珍藏版)》请在装配图网上搜索。

1、数据库系统课程设计目录第 1 章 前言 . 11.1 课题背景. 11.2 开发工具. 11.2.1 SQL Server 2005. 21.2.2 MFC. 21.2.3 ADO. 2第2章 需求分析. 32.1 任务概述. 3 2.1.1任务目标. 3 2.1.2用户特点. 32.2 系统的功能需求 . 32.2.1 系统角色功能需求 . 32.2.2 功能模块 . 32.3 系统的性能需求 . 32.4 系统的数据需求 . 4第 3 章 系统总体设计 . 53.1 系统功能设计 . 53.1.1 各功能模块介绍 . 53.1.2 系统总体模块图 . 5第 4 章 数据库设计 . 64.1

2、 数据库概念设计 . 64.2 数据库逻辑设计 . 74.2.1 表汇总 . 74.2.2 表逻辑结构设计 . 7第 5 章 详细设计 . 95.1 程序结构的设计 . 95.2 页面设计 . 105.2.1 登录界面 . 105.2.2 管理界面 .105.2.3 用户管理 .115.2.4 客户信息管理 . 115.2.5 商品信息管理 .125.2.6 营销信息管理 .125.3 编码设计 . 135.3.1ADO连接 . 135.3.2 更改密码 . 175.3.3 登录. 175.3.4 客户管理. 185.3.5 商品管理. .215.3.6 销售管理. .23第 6 章 结论与展

3、望 . 316.1 结论 . 316.2 系统不足 . 316.3 感谢. 31参考文献 . 31第1章 前言1.1 课题背景随着中国电子商务、互联网业务的迅猛发展,国内许多企业已跨入电脑网络管理时代,并因此提高了管理效率和市场竞争力。但目前仍有部分企业还停留在原始计账管理阶段。而随着全球经济信息化的进程和WTO的成功实现,企业面临着前所未有的机遇和挑战,在如此激变的社会形势和激烈的市场竞争下,愈来愈多的企业管理者意识到效率管理和科学管理的重要性,以及增强市场竞争力的迫切性,因此建立科学、规范、高效的管理制度和秉承富有竞争力的经营理念是每一个企业管理者的渴望,企业采用电脑管理进货、库存、销售等

4、诸多环节也已成为趋势及必然。许多从事商业活动的企业都需要采购商品、销售商品以及将商品暂时存储在仓库中,对这一工作流程进行有效地管理和控制,对这些企业来说是非常重要。在进货、库存、销售环节中,由于商品种类繁多、业务量大、库存管理复杂,使用手工操作的工作量很大,在操作过程中也很容易出现各种错误。而采用计算机管理则可以大大提高日常工作的效率,不仅将原来由手工操作的进货、出货及销售这一整套流程用计算机进行全程管理,而且消除了手工操作中可能存在的不确定因素,达到进销存管理流程清晰,从而能够比较彻底地贯彻经营者的管理模式。由于科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入

5、人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志,而销售管理的全面自动化、信息化则是其中重要的组成部分。销售管理的好坏对于企业的决策者和管理者来说都至关重要,在很大程度上影响着企业的经济效益和社会效益。因此,本文所研究的销售管理系统具有一定的使用价值和现实意义。 一直以来人们使用传统人工的方式进行销售管理,这种管理方式存在着诸多缺点,如:工作量大、效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。鉴于此,本文研究了一种基于关系型数据库的销售管理方案。利用SQL Server2005数据

6、库管理系统灵活性和开发效率高的特点,采用面向对象的VC的方法,开发出销售管理系统。该系统具有手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、信息利用率高、成本低等。该系统能够极大地提高销售管理的效率,优化企业的人力、物力,降低企业的管理成本,为企业销售管理的信息化、正规化奠定了坚实的基础。1.2 开发工具本文所采用的开发工具主要是基于数据库系统的SQL Server 2005 和基于面向对象程序设计的VC,主要利用其MFC技术。利用SQL Server 2005创建商场客户表、商品表、商品供应商表、进货表、销售表以及用VC连接数据库用的用户信息表。利用ADO连接

7、的方法访问数据库。利用VC和数据库建立连接之后,利用VC中的控件按钮以及一些程序代码实现一些特定的功能,例如营销信息查询、删除、修改等,极大地提高了销售管理的效率。1.2.1 SQL Server 2005SQL Server 2005 是微软公司动用上千人的研发力量,耗费五年时间打造出来 的产品,在企业及数据库产品中具有里程碑的意义。SQL Server 2005 是一个关系 数据库管理系统,是一个全面的数据库平台,其数据库引擎为关系型数据和结构 化数据提供了更安全可靠的存储功能。SQL Server 2005 结合了分析、报表、集 成和通知功能,引进了一套集成的管理工具和管理应用编程接口,

8、以提供易用性、 可管理性及对大型 SQL Server 配置的支持。其新的查询类型和在交易过程中使用 错误处理的功能,为开发人员在 SQL Server 查询开发方面提供了更高的灵活性和 控制力。SQL Server 可以适合大容量数据的应用,在功能上和管理上都比 Microsoft Access 要强的多。在处理海量数据的效率,后台开发的灵活性,可扩展等方面强 大。在 SQL Server 2005 中还可以使用存储过程,在服务器执行操作时,减少网络 通讯,提高了执行效率,而且保证了数据库的安全。1.2.2 MFCMFC,微软基础类(Microsoft Foundation Classes)

9、,同VCL类似,是一种Application Framework,随微软Visual C+ 开发工具发布。目前最新版本为9.0(截止2008年11月)。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject 直接或间接派生,只有少部分类例外。 MFC 应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。MFC 提供了MFC AppWizard 自动生成框架。 Windows 应用程序中,MFC 的主包含文件为Afxwin.h。 此外MFC的部分类为MFC/ATL 通用,可以在Win32 应用程序中单独包含并使用这些类。 由于

10、它的易用性,初学者常误认为VC+开发必须使用MFC。这种想法是错误的。作为Application Framework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32 程序设计。1.2.3 ADO微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLEDB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。ADO被设计来继

11、承微软早期的数据访问对象层,包括RDO (Remote Data Objects) 和DAO(Data Access Objects)。第 2 章 需求分析2.1 任务概述2.1.1 系统目标销售管理系统是为了提高销售管理效率而开发的。它包括客户信息管理、商品信息管理、营销信息管理等模块,并提供了查询、修改、添加、删除等功能。销售管理系统能简化贸易公司在销售管理方面的复杂性,和减少在管理上的庞大开销。随着计算机行业的飞速发展,人类已经进入了信息时代,社会中的各个单位、部门也陆续开始使用软件化的管理模式,由于它具有方便、准确、快速、灵活的特点,使得在管理上实现了自动化、一体化、多元化的目标。本课

12、程设计开发了一个销售管理系统,该系统完成了对商品进货、商品销售、供应商信息、客户信息等的添加、修改、删除、查询等功能,迅速准确地完成各种工作,大大提高了企业的管理效率。2.1.2用户特点许多从事商业活动的企业都需要采购商品、销售商品以及将商品暂时存储在仓库中,对这一工作流程进行有效地管理和控制,对这些企业来说是非常重要。在进货、库存、销售环节中,由于商品种类繁多、业务量大、库存管理复杂,使用手工操作的工作量很大,在操作过程中也很容易出现各种错误。本系统采用计算机管理则可以大大提高日常工作的效率,不仅将原来由手工操作的进货、出货及销售这一整套流程用计算机进行全程管理,而且消除了手工操作中可能存在

13、的不确定因素,达到进销存管理流程清晰,从而能够比较彻底地贯彻经营者的管理模式。2.2系统的功能需求2.2.1 角色功能需求本系统共包含供应商、商品、客户三中角色:(1)供应商:包括商品供应商和商品的品牌商两种,我们可以通过添加、修改和删除等操作对这两种供应商进行更新;(2)商品:进货和销售功能均以商品为主体,同时可以添加商品的数量;(3)客户:客户可以采购商品,也可以添加客户的数量及信息2.2.2功能模块系统包括管理员信息模块、客户信息模块、商品信息模块、营销信息模块(进货和销售管理)、供应商信息模块。(1)管理员信息模块功能需求:可以添加新的用户及密码,也可以更改当前用户的密码;(2)客户信

14、息模块功能需求:可以添加新客户的各种信息,也可以进行删除、修改和查询;(3)商品信息模块功能需求:能够添加新的商品,也可以对以前的商品信息进行删除、修改和查询;(4)营销信息模块功能需求:包括进货和销售信息,可以对其进行添加、删除、修改和查询;(5)供应商信息模块功能需求:可以添加、删除、修改和查询供应商的信息。2.3 系统的性能分析 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:(1)系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信

15、息的处理。由于系统的查询功能对于整个系统的功能和性能完成很重要。从系统的多个数据来源来看,学生信息查询、教师信息查询、实验信息 查询、排课结果查询、实验成绩查询,其准确性很大程度上决定了系统的成败。 因此,在系统开发过程中,系统采用优化的 SQL 语句及安全扩展存储过程来保证 系统的准确性和及时性。(2)系统的开放性和系统的可扩充性 系统在开发过程中,应该充分考虑以后的可扩充性。例如实验信息属性添加、修改,用户查询的需求及管理工作的分级管理等模块也会不断的更新和完善。所 有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点, 应通过系统的开放性来完成,既系统应是一个开放系统,只

16、要符合一定的规范, 可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完 成系统的升级和更新换代。(3)系统的易用性和易维护性 系统是直接面对使用人员的,而有些使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点, 就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现 的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。系统中涉及到的数据是高校实验室相当重要的信息,因此系统为不同角色的 用户提供了方便的管理后台进行数据管理,特别为系统管理员提供了数据备份, 日常安全管理,防止系统意外崩溃等功能。2.

17、4系统的数据需求该系统的开发主要任务是实现对销售系统自动化的处理,所以我们初步规划出系统所需要的数据有:客户的基本信息:公司名称、联系人姓名、地址、城市、地区、邮编、联系电话、传真、主页、备注;供应商基本信息:公司名称、联系人姓名、地址、城市、地区、邮编、联系电话、传真、主页、备注;商品的基本信息:商品名称、商品规格、规格单位、商品备注信息;进货的基本信息:供应商名称、商品名称、商品规格、商品规格单位、数量、单价、进货日期、备注;销售的基本信息:客户名称、商品名称、产品规格、规格单位、数量、单价、销售日期、折扣、备注。第 3 章 系统总体设计3.1 系统功能设计3.1.1各功能模块介绍经过分析

18、后确定系统应具备以下功能:(1) 系统管理功能 修改密码:修改正在运行的用户密码; 添加用户:添加新的用户,并设置密码。 (2)客户信息管理功能 供应商信息管理:添加、删除、修改或查询供应商信息。 客户信息管理:添加、删除、修改或查询客户信息。(3) 商品信息管理功能 添加、删除或修改商品信息。(4) 营销信息管理功能 进货信息管理:添加、修改、查询或删除进货信息。 销售信息管理:添加、删除、修改或查询进货信息。3.1.2 系统总体模块图 第 4 章 数据库设计4.1 数据库概念设计本系统包括的实体有:客户、供应商、商品、管理员,下面是各实体的实体属性介绍:(1) 管理员描述:销售管理中存储的

19、所有管理员信息(包括所有查询的所需信息)其中包含属性 用户名:用于标识登陆系统的用户账号,具有唯一性 用户密码:用于对应登陆用户名的密码(2) 供应商信息supperliers描述:销售管理中存储的所有供应商信息其中包含属性 CompanyName:用于标识供应商,具有唯一性ContactName:用于标识联系人姓名Address:用于标志供应商公司地址City:用于标识供应商所在城市Region:用于标识地区信息PostalCode:用于标识邮编Phone:用于标识联系电话Fax:用于标识传真信息HomePage:用于标识公司主页SupplierMemo:用于标识备注信息(3) 客户信息 c

20、ustomers描述:销售管理中存储的所有客户信息其中包含属性 CompanyName:用于标识客户公司,具有唯一性ContactName:用于标识联系人姓名Address:用于标志客户公司地址City:用于标识客户所在城市Region:用于标识地区信息PostalCode:用于标识邮编Phone:用于标识联系电话Fax:用于标识传真信息HomePage:用于标识公司主页SupplierMemo:用于标识备注信息(4) 商品信息 products描述:销售管理中存储的所有商品信息其中包含属性 ProducName:用于标识商品,具有唯一性 Spec:用于标识商品规格 Unit:用于标识商品规格

21、单位 Productmemo:用于标识备注信息系统总体E-R图:4.2数据库逻辑设计4.2.1表汇总各数据库表的简要说明:表名简要说明Customers销售管理中存储的所有客户信息Orders销售管理中存储的所有商品销售信息Supplies销售管理中存储的所有供应商信息Sstock销售管理中存储的所有商品进货信息Products销售管理中存储的所有商品信息User_Info销售管理中存储的所有管理员信息4.2.2 表逻辑结构设计 表1 customers表字段名数据类型长度描述是否主键CompanyNamevarchar40客户公司名称是ContactNamevarchar30联系人姓名否Ad

22、dressvarchar60联系地址否Cityvarchar15城市姓名否Regionvarchar10地区姓名否PostalCodevarchar10邮政编码否Phonevarchar24联系电话否Faxvarchar24传真否Homepagevarchar50公司主页否CustomerMemotext16备注信息否 表2 orders表(销售表)字段名数据类型长度描述是否主键CustomerNamevarchar40客户名称是ProducNamevarchar40商品名称是Specvarchar20商品规格否Unitvarchar20商品规格单位否Quantityvarchar20商品数量

23、否UnitPricefloat8商品单价否OrderDatedatetime8销售日期否Discountfloat8折扣否Ordermemotext16备注否 表3 products表(商品表)字段名数据类型长度描述是否主键ProductNamevarchar40商品名称是Specvarchar20商品规格否Unitvarchar20商品规格单位否Productmemotext16备注否 表4 sstock表(进货表)字段名数据类型长度描述是否主键ProviderNamevarchar40商品公司名称是ProductNamevarchar40商品名称是Specvarchar20商品规格否Uni

24、tvarchar20商品规格单位否Quantityvarchar20商品数量否UnitPricefloat8商品单价否StockDatedatetime8进货日期否Stockmemotext16备注否 表5 suppliers表(供应商表)字段名数据类型长度描述是否主键CompanyNamevarchar40供应商公司名称是ContactNamevarchar30联系人姓名否Addressvarchar60联系地址否Cityvarchar15城市姓名否Regionvarchar10地区姓名否PostalCodevarchar10邮政编码否Phonevarchar24联系电话否Faxvarcha

25、r24传真否Homepagevarchar50公司主页否SuppplierMemotext16备注信息否第 5 章 详细设计5.1 程序结构的设计数据流图(DFD)本系统的数据流图如下图所示:图1 顶级数据流图图2 添加或删除相关信息数据流图图3 查询信息数据流图 5.2 页面设计5.2.1 登录界面通过用户输入的用户名及密码,获取数据库中此用户名的详细信息,如果不存在,提示用户不存在错误;若密码不匹配,提示输入密码不正确;数据库链接不正常,记录日志;系统获取用户信息后,若用户名密码匹配,根据角色进入不同页面下面是登录窗口:5.2.2管理界面管理员登录后,进入管理界面,可以通过左上面的菜单连接

26、到不同的功能界面,实现不同的功能,此菜单是跟管理模块图对应的。5.2.3用户管理用户可以对当前密码进行修改,超级用户可以添加新的用户5.2.4客户信息管理销售的客户包括供货商和销售客户,所以客户信息管理对应了二者的添加、删除、修改和查询5.2.5商品信息管理商品信息的管理包括对商品的各种标准管理,可以添加新的商品或修改和删除就的商品5.2.6营销信息管理营销信息包括进货和销售,二者的添加修改和删除操作很多比较类似因为进货的商品种类是固定的,所以只有数量和单价及备注是可以填写的,其他均是默认值5.3编写代码5.3.1 ADO连接BOOL CTrade_MISApp:InitInstance()A

27、fxEnableControlContainer();/ Init Login Countm_iLoginCount = 0;/ Create ADO Connectionif( FAILED(:CoInitialize(NULL) ) /初始化COM环境 AfxMessageBox(ADO Init failed);return false;tryADOConn.CreateInstance(_uuidof(Connection);/创建连接对象实例ADOConn-Open(DSN=Trade_MIS;Provider=MSDASQL,sa, adConnectUnspecified);/A

28、DOConn作为连接对象指针/打开数据库/ Catch Exceptionscatch(_com_error &e)CString err;err.Format(%s, (char*)(e.Description() );AfxMessageBox(err);catch(.)AfxMessageBox(Unknown Error.);/ Init ADO RecordSetm_pADOSet.CreateInstance(_uuidof(Recordset);/创建记录集对象实例SetRegistryKey(_T(Local AppWizard-Generated Applications);

29、LoadStdProfileSettings(); / Load standard INI file options (including MRU)/ Register the applications document templates. Document templates/ serve as the connection between documents, frame windows and views./ Popup Login DialogCLoginDLG dlg;if ( IDOK!=dlg.DoModal() ) return false;CSingleDocTemplat

30、e* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CTrade_MISDoc),RUNTIME_CLASS(CMainFrame), / main SDI frame windowRUNTIME_CLASS(CTrade_MISView);AddDocTemplate(pDocTemplate);m_nCmdShow = SW_SHOWMAXIMIZED;/Max window when show/ Parse command line for standard shell com

31、mands, DDE, file openCCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);/ Dispatch commands specified on the command lineif (!ProcessShellCommand(cmdInfo)return FALSE;/ The one and only window has been initialized, so show and update it.m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-SetWindowText(_T(销售管理

32、系统);m_pMainWnd-UpdateWindow();return TRUE;/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataE

33、xchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/ No message handlers/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDa

34、taExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAP/ App command to run the dialogvoid CTrade_MISApp:OnAppAbout()CAboutDlg aboutDlg;aboutDlg.DoModal();/执行SQL语句的函数如下:bool CTrade_MISApp:ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)/ADOSet作为引用,起到指针作用,是记录集对象指针if ( ADOSet-State = adStateOpen)AD

35、OSet-Close();try ADOSet-Open(strSQL, ADOConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);/打开记录集 return true;/执行成功返回真值catch(_com_error &e) CString err; err.Format(ADO Error: %s,(char*)e.Description(); AfxMessageBox(err); return false;/捕捉到错误返回假值int CTrade_MISApp:ExitInstance() /断开

36、数据库连接的函数/ TODO: Add your specialized code here and/or call the base class/ Release ADO RecordSet/释放指针if(adStateOpen=m_pADOSet-State)m_pADOSet-Close();/关闭记录集m_pADOSet.Release();/ Release ADO Connection/断开连接if( adStateOpen = ADOConn-State )ADOConn-Close();/断开数据库连接ADOConn.Release(); return CWinApp:Exit

37、Instance();5.3.2 更改密码void CChangePwdDLG:OnOK() UpdateData(true);/ 确保密码输入非空if ( =m_sPWD1 )AfxMessageBox(_T(密码不能未空), MB_ICONEXCLAMATION); return;/判断两次输入的密码一致 if ( 0!=m_sPWD1.Compare(m_sPWD2) )AfxMessageBox(_T(两次输入密码不一样,请确认), MB_ICONEXCLAMATION); return;CDialog:OnOK();BOOL CChangePwdDLG:OnInitDialog()

38、CDialog:OnInitDialog();(CEdit*)GetDlgItem(IDD_CHANGEPWD_PWD1)-SetLimitText(10);(CEdit*)GetDlgItem(IDD_CHANGEPWD_PWD2)-SetLimitText(10);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE5.3.3 登录void CLoginDLG:OnOK() / TODO: Add extra v

39、alidation here/ Check UserName VadilatyUpdateData(true);m_sUSER.TrimRight( );/删除空格if ( =m_sUSER )/用户名输入为空AfxMessageBox(_T(请填写用户名), MB_ICONEXCLAMATION); return;_variant_t Holder, strQuery; strQuery = select user_ID, user_PWD from user_Info where user_ID=+m_sUSER+;/查询用户名和密码theApp.ADOExecute(theApp.m_p

40、ADOSet, strQuery);/执行查询语句,获得记录集int iCount = theApp.m_pADOSet-GetRecordCount();/获取记录条数if (iCount=0) /若数据库中记录数为0theApp.m_iLoginCount+;/登录计数if ( theApp.m_iLoginCount2 ) /输入次数为三次AfxMessageBox(没有这个用户n三次输入均不正确,请核对后再来, MB_ICONEXCLAMATION);CDialog:OnCancel(); return;AfxMessageBox(没有这个用户,请重新输入用户名, MB_ICONEXC

41、LAMATION); return;CString sPWD;theApp.m_pADOSet-MoveFirst();/指向第一条记录Holder = theApp.m_pADOSet-GetCollect(user_PWD);/获取记录中user_PWD值sPWD = Holder.vt=VT_NULL?:(char*)(_bstr_t)Holder;if ( 0!=sPWD.Compare(m_sPWD) )/若sPWD和m_sPWD不相等theApp.m_iLoginCount+;/登录次数加1if ( theApp.m_iLoginCount2 ) /登录3次AfxMessageBo

42、x(输入密码不正确n三次输入均不正确,请核对后再来, MB_ICONEXCLAMATION);CDialog:OnCancel(); return;AfxMessageBox(输入密码不正确,请重新输入, MB_ICONEXCLAMATION); return;/ Get Login UsertheApp.m_sCurrentUser = m_sUSER;CDialog:OnOK();5.3.4 客户管理BOOL CCustomerDLG:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization here/ S

43、et Windows Textif (m_bAppend) SetWindowText(_T(添加客户信息);else SetWindowText(_T(修改客户信息);m_sOldCompany = m_sCompany;return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CCustomerDLG:OnOK() / TODO: Add extra validation hereUpdateData(tru

44、e);m_sCompany.TrimRight( ); m_sPerson.TrimRight( );m_sAddress.TrimRight( );m_sCity.TrimRight( );m_sArea.TrimRight( );m_sPostCode.TrimRight( );m_sPhone.TrimRight( );m_sFax.TrimRight( );m_sHomePage.TrimRight( );/ Make sure all needed info is availableCString sWarning=;if ( =m_sCompany ) sWarning=_T(公司

45、名称); else if ( =m_sPerson ) sWarning=_T(联系人姓名);else if ( =m_sAddress ) sWarning=_T(联系地址);else if ( =m_sCity ) sWarning=_T(城市名称);else if ( =m_sArea ) sWarning=_T(地区名称);else if ( =m_sPostCode ) sWarning=_T(邮政编码);else if ( =m_sPhone ) sWarning=_T(联系电话);else if ( =m_sFax ) sWarning=_T(传真号码);else if ( =m

46、_sHomePage ) sWarning=_T(公司主页); if ( !=sWarning ) sWarning += _T(不能为空); AfxMessageBox(sWarning, MB_ICONEXCLAMATION); return;_variant_t strQuery;if ( m_bAppend | m_sCompany!=m_sOldCompany )/ Judge Customer is unique strQuery = select * from customers where CompanyName=+m_sCompany+; theApp.ADOExecute(

47、theApp.m_pADOSet, strQuery); int iCount = theApp.m_pADOSet-GetRecordCount(); if ( 0!=iCount ) AfxMessageBox(_T(已经存在此公司记录!), MB_ICONEXCLAMATION); return;if ( !m_bAppend ) / Not Append, delete old record firststrQuery = delete from customers where CompanyName=+m_sOldCompany+; theApp.ADOExecute(theApp.

48、m_pADOSet, strQuery);/ Insert RecordstrQuery = insert customers (CompanyName, ContactName, Address, City, Region, PostalCode, Phone,Fax, HomePage, CustomerMemo) values (+m_sCompany+, +m_sPerson+, +m_sAddress+, +m_sCity+, +m_sArea+, +m_sPostCode+, +m_sPhone+, +m_sFax+, +m_sHomePage+, +m_sMemo+);if (

49、theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) if (m_bAppend) AfxMessageBox(_T(添加客户信息成功!), MB_ICONINFORMATION); / Clear all input m_sCompany=m_sPerson=m_sAddress=m_sCity=m_sArea=m_sPostCode=m_sPhone=m_sFax=m_sHomePage=m_sMemo=; UpdateData(false);else AfxMessageBox(_T(修改客户信息成功!), MB_ICONINFORMATION)

50、;else if (m_bAppend) AfxMessageBox(_T(添加客户信息失败!), MB_ICONEXCLAMATION);else AfxMessageBox(_T(修改客户信息失败!), MB_ICONEXCLAMATION);strQuery = select * from customers;CTrade_MISView* p = (CTrade_MISView*)(CMainFrame*)AfxGetMainWnd()-GetActiveView();p-RefreshCustomer(strQuery);if (!m_bAppend) CDialog:OnOK();5.3.5 商品管理BOOL CProductDLG:OnInitDialog() CDialog:OnInitDialog();/设置对话框标题,m_bAppend设为true表示添加,false表示修改if (m_bAppend) SetWindowText(_T(

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!