下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 [毕业论文]【vc++】客户管理系统毕业设计论文

[毕业论文]【vc++】客户管理系统毕业设计论文.doc

[毕业论文]【vc++】客户管理系统毕业设计论文

逛街狂人angela
2017-09-16 0人阅读 举报 0 0 暂无简介

简介:本文档为《[毕业论文]【vc++】客户管理系统毕业设计论文doc》,可适用于IT/计算机领域

毕业论文【vc】客户管理系统毕业设计论文客户管理系统学院专业班级学号姓名指导教师教师职称年月日目录目录摘要引言系统需求分析总体设计项目规划系统功能结构设计目标系统设计开发及运行环境数据库设计技术准备数据库的封装封装ADO数据库的代码分析主要功能模块设计主窗体客户信息联系人信息联系人信息查询附录A参考文献附录B数据表––摘要【摘要】科技的发展、时代的进步市场经济的竞争也越发激烈与残酷在竞争中客户作为市场的最最要的资源早已成为市场营销的核心企业间谁拥有的客户多谁就在竞争中占有绝对的优势。在市场经济竞争如此激烈的环境之下企业要想立于不败之地就必须和与之生存发展息息相关的客户建立起良好的关系在现有客户资源的基础之上维护好和老客户的关系并且不断的发展新的客户用企业高品质的产品、优质的服务、良好的信誉树立企业在客户心目中的良好形象并以客户需求为己任不断的创新与发展自身的产品以满足客户新需求并规范企业内部的客户资源的管理方式、提升企业的客户服务质量。计算机管理系统满足了企业对自身客户资源管理的新要求减少了客户资源管理过程中的浪费的大量人力、物力和财力等。【关键词】客户管理系统引言本系统具有完善的基础信息维护和客户信息维护功能并增置了客户服务模块满足了客户日常管理的需求强大的数据查询及图表分析功能帮助企业能够及时根据分析结果进行新规划和方案以适应变化万千的消费市场。客户管理系统后台数据库采用SQLServer数据库以保证数据的安全、高效和稳定。前台采用Microsoft公司的VisualC作为主要的开发工具其可与SQLServer数据库无缝链接。系统需求分析通过调查要求系统需要有以下功能:详细全面记录并管理客户信息和联系人信息。方便实用的数据查询功能。能够根据客户的反馈得出相应的处理方法做到快速、及时。对客户和企业进行分类方便管理。设置业务往来的商品数量统计功能。通过计算机控制电话呼叫用户。总体设计项目规划客户管理系统所涉及的信息非常的全面主要由基础信息维护、客户信息维护、客户服务、信息查询、系统管理和帮助信息等几个功能模块组成规划系统功能模块如下:基础信息维护模块基础信息维护模块主要包括区域信息设置、企业性质设置、企业类型设置、企业资信设置、客户级别设置和客户满意程度设置部分。客户信息维护模块客户信息维护模块主要包括客户信息、联系人信息、业务往来、客户呼叫中心个部分。客户服务模块客户服务模块主要包括客户反馈、客户投诉个部分。信息查询模块信息查询模块主要包括客户信息查询、联系人信息查询、客户反馈满意度查询和客户投诉满意度查询。系统管理模块系统管理模块主要包括操作员设置、密码修改。帮助信息模块帮助信息模块主要包括关于、帮助个部分。系统功能结构客户管理系统的功能结构如图所示。图客户管理系统功能架构图设计目标本系统属于典型的数据库管理系统是针对中小型企业生产管理开发设计的实现进一步的计算机化的管理。通过本系统可以达到以下目标:灵活的运用表格批量输入数据使信息传递更快捷。系统采用良好的人机对话模式界面设计美观友好信息查询灵活、方便、快捷、准确数据存储安全可靠。键盘操作快速响应。实现各种查询及打印等。操作员可以随时修改自己的口令。管理员可以设置操作员的权限对用户输入的数据系统进行严格的数据检验尽可能排除人为的错误。数据保密性强为每个用户设置权限级别。系统运行稳定、安全可靠。系统设计开发及运行环境系统开发平台:VisualC。数据库管理系统软件:SQLServer。运行平台:WindowsxpWindows。分辨率:最佳效果*。数据库设计本系统数据库采用SQLServer数据库系统数据库名称为dbSCGL。数据库dbSCGL––中包含张数据表。下面分别给出数据表概要说明和主要数据表的结构。(数据表概要说明从读者角度出发使读者对本系统后台的数据库中数据表有一个更清晰的认识在此特设计一个数据库中数据表列表该数据表列表包含系统所有数据表如图所示。图数据表列表(主要数据表的结构数据库中的数据表请参见附录B。技术准备数据库的封装调用数据库的方式有很多主要有DAO、ODBC、ADO但使用起来比较灵活的是ADO直接引用ADO的方法是在头文件StdAfxh中加入如下代码:#import"E:ProgramFilesCommonFilesSystemadomsadodll"nonamespacerename("EOF","adoEOF")rename("BOF","adoBOF")然后在要用的ADO的类中加入两个指针的定义就可以应用ADO了ConnectionPtrmpConnectionRecordsetPtrmpRecordset封装ADO数据库的代码分析对ADO的封装主要是将引用ADO的代码加到自定义的类中并引用头文件StdAfxh即可对ADO进行封装的代码如下:头文件ADOH声明如下:#import"C:ProgramFilesCommonFilesSystemadomsadodll"nonamespacerename("EOF","adoEOF")classado{public:––ConnectionPtrmpConnectionRecordsetPtrmpRecordsetpublic:ado()virtual~ado()voidclose()boolMovePrevious()向上移动boolMoveLast()最后一条boolMoveNext()向下移动boolMoveFirst()最后一条intGetRecordCount()获得记录个数boolOpen(CStringsrecordset,UINTadCmd)voidGetErrors(comerroreErrors)获得错误信息CStringGetFieldValue(CStringField)获得字段值boolMove(intnRecordNum)移动记录voidExecuteSQL(CStringSQL)执行SQL语句voidrstOpen(CStringTSQL)打开记录集}实现文件ADOCPP原代码如下:构造函数直接实现数据库的连接。ado::ado(){::CoInitialize()ADO是基于COM技术要进行初始化try{mpConnectionCreateInstance(uuidof(Connection))bstrtstrConnect="Provider=SQLOLEDBSERVER=Database=dbclientuid=sapwd="mpConnection>Open(strConnect,"","",)}catch(comerrore){AfxMessageBox(eDescription())}}利用连接指针打开数据库这样的方式打开的记录集无法回滚可以打开空记录集。boolado::Open(CStringsrecordset,UINTadCmd){try{––mpRecordset=mpConnection>Execute((bstrt)srecordset,,adCmd)}catch(comerrore){this>GetErrors(e)returnfalse}returntrue}用于返回记录集的个数。intado::GetRecordCount(){intnCount=try{mpRecordset>MoveFirst()}catch(){return}if(mpRecordset>adoEOF)returnwhile(!mpRecordset>adoEOF){mpRecordset>MoveNext()nCount=nCount}mpRecordset>MoveFirst()returnnCount}这个函数用来获取执行SQL语句时的出错信息。voidado::GetErrors(comerroreErrors){ErrorsPtrpErrors=mpConnection>GetErrors()if(pErrors>GetCount()==)MessageBox(,eErrorsErrorMessage(),"错误",MBOK|MBICONEXCLAMATION)else{for(inti=i<pErrors>GetCount()i)如果有多条语句将用这个循环输出所有错误{––bstrtdesc=pErrors>GetItem((long)i)>GetDescription()MessageBox(,desc,"错误",MBOK|MBICONEXCLAMATION)}}}用记录的指针打开一个记录集但打开空记录集时返回错误如果出错就转向用连接打开记录集。voidado::rstOpen(CStringTSQL){try{bstrtbstrSQL=TSQLAllocSysString()mpRecordsetCreateInstance(uuidof(Recordset))mpRecordset>Open(bstrSQL,(IDispatch*)mpConnection,adOpenDynamic,adLockOptimistic,adCmdText)}catch(comerrore){mpRecordset=mpConnection>Execute((bstrt)TSQL,,adCmdText)}}获取记录集指定列的值。CStringado::GetFieldValue(CStringField){varianttThevalueCStringtempThevalue=mpRecordset>GetCollect((bstrt)Field)if(Thevaluevt==VTEMPTY||Thevaluevt==VT)temp=""else{temp=(char*)(bstrt)ThevaluetempTrimRight()tempTrimLeft()}returntemp}––指向记录集的游标向上移一条。boolado::MovePrevious(){try{mpRecordset>MovePrevious()}catch(comerrore){AfxMessageBox(eDescription())returnfalse}returntrue}指向记录集的游标移到指定行处。boolado::Move(intnRecordNum){try{if(!mpRecordset>BOF){mpRecordset>MoveFirst()}mpRecordset>Move(nRecordNum)}catch(comerrore){AfxMessageBox(eDescription())returnfalse}returntrue}指向记录集的游标向下移一条。boolado::MoveNext(){try{mpRecordset>MoveNext()}––catch(comerrore){AfxMessageBox(eDescription())returnfalse}returntrue}将指向记录集的游标移到顶部。boolado::MoveFirst(){try{mpRecordset>MoveFirst()}catch(comerrore){AfxMessageBox(eDescription())returnfalse}returntrue}将指向记录集的游标移到尾部。boolado::MoveLast(){try{mpRecordset>MoveLast()}catch(comerrore){AfxMessageBox(eDescription())returnfalse}returntrue}用指向连接的指针执行SQL语句如果SQL语句有语法错误就返回响应的错误。voidado::ExecuteSQL(CStringTSQL){try{mpConnection>Execute((bstrt)TSQL,,adCmdText)––}catch(comerrore){AfxMessageBox(eDescription())}}关闭指针连接。voidado::close(){mpRecordset>Close()mpConnection>Close()mpRecordset=mpConnection=::CoUninitialize()}主要功能模块设计主窗体主窗体主要是对客户管理系统的各个模块进行调用主要有菜单调用和工具栏调用两种如图所示。图主窗体运行效果––(菜单设计()首先要用到工作区窗口默认情况下工作区窗体是打开的如果没打开可以从菜单中选择ViewWorkspace此时工作区窗体会弹出具体如图所示。工作区窗口图工作区窗口()工作区选项卡有三个选项卡如图所示。资源选项卡是VC的资源管理器它的功能是可以实现添加或删除Windows的位图、图标、对话框等资源要用资源选项卡请单击资源选项卡。()添加菜单可以鼠标右键单击Menu文件夹出现菜单后选择InsertMenu就会出现菜单编辑器要想在菜单内添加文字就双击如图所示的虚线框弹出如图所示菜单属性对话框(MenuItemProperties)。––菜单编辑器虚线框类选项卡资源选项卡文件选项卡图工作区选项卡及菜单编辑器在这里输入汉字图菜单属性窗口()设置菜单文本可以在Caption(标题)编辑框内输入即可关闭属性窗体后一个菜单项就生成了。所有的菜单项都是照这样的方法重复完成的。最后生成如图所示的系统执行时的菜单。还有另一种生成菜单的方法主要是利用WindowApi函数进行文本编辑具体方法请参照《Windows程序设计》一书。图系统执行时的菜单效果(工具栏设计工具栏资源可以利用VC自带的ToolBar编辑器生成也可以采用MFC提供的CToolBarCtrl类动态生成这里我们用语句动态生成。工具栏的生成将主要用到CToolBarCtrl类的Create方法来创建工具栏其原型如下:BOOLCreate(DWORDdwStyle,constRECTrect,CWnd*pParentWnd,UINTnID)––dwStyle是工具栏的风格和样式主要有WSCHILD(子窗体)WSVISIBLE(可见)和WSDISABLED(不可见)还有以CCS开头种样式但在这种样式中最长常用到的只有CCSTOP(把工具栏放在顶部)其它请参考MSDN。下面给出一个在程序中用到生成工具栏的实例代码。toolbarCreate(WSCHILD|WSVISIBLE,CRect(,,,),this,IDTOOLBAR)this是指向其父窗体的指针IDTOOLBAR是在Resourceh中定义的资源标识。工具栏上的按钮主要是对数据结构TBBUTTON进行赋值来实现的下面给出一个具体赋值的代码。buttondwData=buttonfsState=TBSTATEENABLEDbuttonfsStyle=TBSTYLEBUTTONbuttonidCommand=IDADDbuttoniString=toolbarAddStrings(pString)fsState确定按钮的状态fsStyle确定按钮的风格dwData可以是用户定义的数据idCommand是按下按钮后要执行命令的标识通常是菜单项的ID值iString是在按钮上显示文字主要是通过CtoolBarCtrl类的AddStrings方法加入的pString是TCHAR的指针iBitmap是在按钮上显示的图片的编号通常是图形列表(CImageList)的序号。这里应该提示大家:button数组开始编号是基于的。iBitmap选择图形列表的标号也是基于的。如果要在工具栏中添加分隔符就要使buttonfsStyle=TBSTYLESEP因为分隔符也是一个按钮并且此时buttonidCommand必须为。工具栏中的按钮图片是通过CimageList类的进行导入的CimageList类的Create方法原形如下:BOOLCreate(intcx,intcy,UINTnFlags,intnInitial,intnGrow)由于CimageList类比较简单一些参数请参照MSDN我这里只给一个具体实例。在程序中的图象列表是通过如下代码实现的。imagelistCreate(,,ILCCOLOR|ILCMASK,,)创建了类对象还不行还要往类中导入图片实现的方法主要是通过全局函数LoadIcon将图标加载到程序中其主要参数只有一个就是图标文件这里就不在多说了。ILCCOLOR是设置图标的颜色深度ILCMASK是设置是否非图标区使用透明色。(状态条的设计状态栏主要使用CStatusBarCtrl类来生成该类Create方法原型为:BOOLCreate(DWORDdwStyle,constRECTrect,CWnd*pParentWnd,UINTnID)在程序中可以编写如下的语句创建状态条:statebarCreate(WSCHILD|WSVISIBLE,CRect(,,,),this,IDSTATU)WSCHILD和WSVISIBLE是一般窗体控件通用的样式使用的次数很多。程序中经常使用工具栏和状态栏下面给出在对话框初始化函数中生成工具栏和状态栏的代码具体代码如下:BOOLkhmain::OnInitDialog(){CDialog::OnInitDialog()––intweithweith=weith=statebarCreate(WSCHILD|WSVISIBLE,CRect(,,,),this,IDSTATU)statebarSetParts(,weith)statebarSetText("长春市明日科技有限公司",,)imagelistCreate(,,ILCCOLOR|ILCMASK,,)imagelistAdd(::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDIICON)))Add函数是向图象列表中添加图表imagelistAdd(::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDIICON)))imagelistAdd(::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDIICON)))imagelistAdd(::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDIICON)))imagelistAdd(::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDIICON)))imagelistAdd(::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDIICON)))toolbarEnableAutomation()toolbarCreate(WSCHILD|WSVISIBLE,CRect(,,,),this,IDTOOLBAR)toolbarSetImageList(imagelist)inti以下就是对TBBUTTON结构进行赋值赋值完成后工具栏的按钮就实现了for(i=i<i){buttonidwData=buttonifsState=TBSTATEENABLEDbuttonifsStyle=TBSTYLEBUTTON}buttonidCommand=IDKHXXbuttoniBitmap=buttonidCommand=IDlxrxxbuttoniBitmap=buttonidCommand=IDKHHJbuttoniBitmap=buttonidCommand=IDKHFKbuttoniBitmap=buttonidCommand=IDKHTSbuttoniBitmap=buttonidCommand=IDEXITSYSbuttoniBitmap=––CStringsTCHAR*pString这个指针取得生成工具栏按钮的字符串for(i=i<i){sLoadString(iIDS)intnStringLength=sGetLength()pString=sGetBufferSetLength(nStringLength)buttoniiString=toolbarAddStrings(pString)sReleaseBuffer()}toolbarAddButtons(,button)toolbarAutoSize()toolbarSetStyle(TBSTYLEFLAT|CCSTOP)returnTRUEreturnTRUEunlessyousetthefocustoacontrolEXCEPTION:OCXPropertyPagesshouldreturnFALSE}客户信息(实现目标主要实现客户基本信息的添加、删除和修改能够进行上一条下一条第一条和最后一条的操作能够用列表显示数据表中全部信息使用分页的方式。程序运行如图所示。图客户信息录入窗口––(设计步骤()设计基于CDialog的khbase类利用资源编辑器添加一个新的对话框资源双击新加入的对话框资源弹出如图所示的系统提示对话框提示用户是否添加新类。图添加新类的系统对话框这时只需要单击“OK”按钮就会弹出添加新类的对话框如图所示。图添加新类对话框只要在Name栏中输入类的名字khbase单击“OK”按钮就会生成khbasecpp和khbaseh两个文件这两个文件就组成了一个类。相应的实现代码请读者参阅CPP的文件。()添加TabSheet类用于实现分页功能。只要将TabSheetcpp和TabSheeth加入到工程中在代码中调用TabSheet类既可实现。––()主窗体添加成员变量mtab列表窗体添加成员变量mlist。添加成员变量是通过类向导实现的单击菜单ViewClassWizard就会弹出类向导选择MemberVariables选项卡类向导对话框如图所示添加成员变量只要单击ConctrolIDs要修改的资源ID会呈现出蓝色被选状态此时“AddVariable”按钮会变成可用状态单击“AddVariable”按钮会弹出如图所示添加变量对话框按照图中的提示添加变量名称选择变量类型单击“OK”按钮即可完成成员变量的添加。图类向导对话框图添加成员变量对话框主要变量列表如表所示(这里没有给出所有成员变量具体请参照程序原代码)。––表主要资源属性设置资源ID类型成员变量描述客户编号IDCEDITCEditmedit企业类型IDCCOMBOCComboBoxmcom(代码分析实现分页机制的TabSheet类的代码如下:在构造函数中定义添加的对话框的个数变量当前对话框索引的变量。CTabSheet::CTabSheet(){mnNumOfPages=存储对话框个数变量mnCurrentPage=存储当前使用着的对话框索引的变量}CTabSheet::~CTabSheet(){}将对话框和Tab控件通过函数相关联。BOOLCTabSheet::AddPage(LPCTSTRtitle,CDialog*pDialog,UINTID){if(MAXPAGE==mnNumOfPages)returnFALSEmnNumOfPagesmpPagesmnNumOfPages=pDialogmIDDmnNumOfPages=IDmTitlemnNumOfPages=titlereturnTRUE}用来设置对话框资源在Tab控件中的位置。voidCTabSheet::SetRect(){CRecttabRect,itemRectintnX,nY,nXc,nYcGetClientRect(tabRect)GetItemRect(,itemRect)nX=itemRectleftnY=itemRectbottomnXc=tabRectrightitemRectleftnYc=tabRectbottomnYmpPages>SetWindowPos(wndTop,nX,nY,nXc,nYc,SWPSHOWWINDOW)for(intnCount=nCount<mnNumOfPagesnCount)––mpPagesnCount>SetWindowPos(wndTop,nX,nY,nXc,nYc,SWPHIDEWINDOW)mnNumOfPages=}用来设置指定对话框资源在Tab控件中的位置。voidCTabSheet::SetRect(intm){CRecttabRect,itemRectintnX,nY,nXc,nYcGetClientRect(tabRect)GetItemRect(,itemRect)nX=itemRectleftnY=itemRectbottomnXc=tabRectrightitemRectleftnYc=tabRectbottomnYfor(intnCount=nCount<mnNumOfPagesnCount)mpPagesnCount>SetWindowPos(wndTop,nX,nY,nXc,nYc,SWPHIDEWINDOW)mpPagesm>SetWindowPos(wndTop,nX,nY,nXc,nYc,SWPSHOWWINDOW)}在Tab控件中显示对话框。voidCTabSheet::Show(){for(inti=i<mnNumOfPagesi){mpPagesi>Create(mIDDi,this)InsertItem(i,mTitlei)}mpPages>ShowWindow(SWSHOW)for(i=i<mnNumOfPagesi)mpPagesi>ShowWindow(SWHIDE)SetRect()}在Tab控件中显示指定对话框。voidCTabSheet::Show(intn){for(inti=i<mnNumOfPagesi){mpPagesi>Create(mIDDi,this)InsertItem(i,mTitlei)}for(i=i<mnNumOfPagesi)mpPagesi>ShowWindow(SWHIDE)––mpPagesn>ShowWindow(SWSHOW)SetRect(n)SetCurSel(n)}用户单击Tab控件时将焦点设置在对话框上。voidCTabSheet::OnLButtonDown(UINTnFlags,CPointpoint){CTabCtrl::OnLButtonDown(nFlags,point)if(mnCurrentPage!=GetCurFocus()){mpPagesmnCurrentPage>ShowWindow(SWHIDE)mnCurrentPage=GetCurFocus()mpPagesmnCurrentPage>ShowWindow(SWSHOW)}}通过Tab控件在窗体中设置选项卡。intCTabSheet::SetCurSel(intnItem){if(nItem<||nItem>=mnNumOfPages)returnintret=mnCurrentPageif(mnCurrentPage!=nItem){mpPagesmnCurrentPage>ShowWindow(SWHIDE)mnCurrentPage=nItemmpPagesmnCurrentPage>ShowWindow(SWSHOW)CTabCtrl::SetCurSel(nItem)}mnNumOfPages=returnret}获得Tab控件当前用户选择的分页项。intCTabSheet::GetCurSel(){returnCTabCtrl::GetCurSel()}联系人信息查询(实现目标实现查询功能可以查询联系人的编号企业的名称联系人的姓名等字段最后将查询出––来的结果显示在列表中程序运行结果如图所示。图联系人信息查询(设计步骤()设计类qlxr基类为CDialog。()定义文本框的成员变量(给资源IDCEDIT加变量)和列表框的成员变量(给资源IDCLIST加变量)。主要成员变量列表如表所示(这里没有给出所有成员变量具体请参照程序原代码)。表主要资源属性设置资源ID类型变量描述查询条件IDCCOMBOCComboBoxmcom查询条件IDCCOMBOCComboBoxmcom输入查询信息IDCEDITCEditmedit显示查询结果IDCLISTCListCtrlmlist(代码分析联系人人信息查询文件Qlxrccp的主要代码如下:对话框的初始化程序代码如下:BOOLqlxr::OnInitDialog(){CDialog::OnInitDialog()this>mcomAddString("联系人编号")this>mcomAddString("企业名称")this>mcomAddString("联系人姓名")this>mcomAddString("联系人性别")this>mcomAddString("年龄")this>mcomAddString("职位")this>mcomAddString("办公电话")this>mcomAddString("电子邮件")––this>mcomAddString("手机")this>mcomAddString("like")this>mcomAddString("=")mlistSetExtendedStyle(LVSEXGRIDLINES|LVSEXFULLROWSELECT|LVSEXHEADERDRAGDROP|LVSEXONECLICKACTIVATE)mlistInsertColumn(,"联系人编号")mlistInsertColumn(,"企业名称")mlistInsertColumn(,"联系人姓名")mlistInsertColumn(,"联系人性别")mlistInsertColumn(,"年龄")mlistInsertColumn(,"职位")mlistInsertColumn(,"办公电话")mlistInsertColumn(,"电子邮件")mlistInsertColumn(,"手机")mlistSetColumnWidth(,)设置列表框列的宽度mlistSetColumnWidth(,)mlistSetColumnWidth(,)mlistSetColumnWidth(,)mlistSetColumnWidth(,)mlistSetColumnWidth(,)mlistSetColumnWidth(,)mlistSetColumnWidth(,)mlistSetColumnWidth(,)this>loadlist()returnTRUEreturnTRUEunlessyousetthefocustoacontrolEXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidqlxr::OnButton(){this>EndDialog(true)}实现查询功能当文本框和选择列表框都为空是出现提示。voidqlxr::OnButton(){mlistDeleteAllItems()adorstCStringsql,edit,com,comthis>meditGetWindowText(edit)this>mcomGetWindowText(com)––this>mcomGetWindowText(com)if(editIsEmpty()){AfxMessageBox("请输入")return}if(comIsEmpty()){AfxMessageBox("请输入")return}if(comIsEmpty()){AfxMessageBox("请输入")return}sqlFormat("select*fromtbClientlxrxxwheress's'",ssel,com,edit)rstOpen(sql,adCmdText)intrecordcount=rstGetRecordCount()intiifor(ii=ii<=recordcountii){mlistInsertItem(ii,"")mlistSetItemText(ii,,rstGetFieldValue("lxrxxid"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxqymc"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxxm"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxxb"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxnl"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxzw"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxbgdh"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxEmail"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxsj"))rstMove(ii)}rstclose()}程序运行中对话框被打开后列表框数据的初始化。voidqlxr::loadlist(){adorstrstOpen("select*fromtbClientlxrxx",adCmdText)intrecordcount=rstGetRecordCount()intii––for(ii=ii<=recordcountii){mlistInsertItem(ii,"")mlistSetItemText(ii,,rstGetFieldValue("lxrxxid"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxqymc"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxxm"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxxb"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxnl"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxzw"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxbgdh"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxEmail"))mlistSetItemText(ii,,rstGetFieldValue("lxrxxsj"))rstMove(ii)}rstclose()}此函数用来将用户在ComboBox控件的选择转换成SQL语句所需的字段名称。voidqlxr::OnSelchangeCombo(){switch(mcomGetCurSel()){case:ssel="lxrxxid"breakcase:ssel="lxrxxqymc"breakcase:ssel="lxrxxxm"breakcase:ssel="lxrxxxb"breakcase:ssel="lxrxxnl"breakcase:ssel="lxrxxzw"breakcase:ssel="lxrxxbgdh"––breakcase:ssel="lxrxxEmail"breakcase:ssel="lxrxxsj"break}}附录A参考文献(《VisualBasic精彩编程例》机械工业出版社赛奎春、高春艳等年月(《VisualBasic数据库开发实例解析》机械工业出版社刘志铭、高春艳等年月(《VisualFoxPro数据库开发实例解析》机械工业出版社王晶莹、王国辉等年月(《PowerBuilder数据库开发实例解析》机械工业出版社华传铭、张振坤等年月(《Delphi数据库开发实例解析》机械工业出版社赛奎春、郑骁鹏等年月(《PowerBuilder精彩编程例》机械工业出版社张振坤、李文立等年月(《VisualFoxPro精彩编程例》机械工业出版社王国辉、董韶华等年月(《ASP数据库开发实例解析》机械工业出版社李严、于亚芳、王国辉年月(《Delphi工程应用与项目实践》机械工业出版社宋坤、赵智勇等年月(《VisualBasic工程应用与项目实践》机械工业出版社高春艳、李俊民等年月(《VisualC工程应用与项目实践》机械工业出版社张雨、阮伟良等年月(《JSP工程应用与项目实践》机械工业出版社陈威、白伟明、李楠年月(《ASP工程应用与项目实践》机械工业出版社王国辉、牛强、李南南年月(《VisualBasic信息系统开发实例精选》机械工业出版社高春艳、李俊民、张耀庭等年月(《ASP信息系统开发实例精选》机械工业出版社王国辉、牛强、李南南等年月––(《Delphi信息系统开发实例精选》机械工业出版社宋坤、赵智勇、刘强等年月(《Visualfoxpro数据库开发关键技术与实例应用》人民邮电出版社周桓、张雨、王国辉年月(《PowerBuilder数据库开发关键技术与实例应用》人民邮电出版社刘志铭、张振坤、冯文萃年月(《Delphi数据库开发关键技术与实例应用》人民邮电出版社赛奎春、陈紫鸿、宋昆年月––附录B数据表由于篇幅有限只给出部分数据表。()tbkhxx(客户信息表)客户信息表主要用于保存客户的详细信息。该数据表的结构如表所示。表客户信息表字段名数据类型长度描述客户编号khxxidvarchar企业名称khxxmcvarchar企业性质khxxqyxzvarchar企业类型khxxqylxvarchar企业资信khxxqyzxvarchar企业地址khxxqydzvarchar所属省份khxxszsfvarchar所属城市khxxszcsvarchar公司邮编khxxgsybvarchar法人代表khxxfrdbvarchar开户银行khxxkhyhvarchar银行帐号khxxyhzhvarchar纳税号khxxnshvarchar客户IC卡号khxxICcardvarchar公司网址khxxgswzvarchar公司电话khxxgsdhvarchar公司传真khxxgsczvarchar主要联系人khxxlxrvarchar联系人电话khxxlxrdhvarchar客户级别khxxkhjbvarchar备注信息khxxbztext()tbuser(用户信息表)用户信息表用于记录操作用户的密码和操作权限。该数据表的结构如表所示。表用户信息表字段名数据类型长度描述操作员编号useridnvarchar––操作员姓名usernamenvarchar操作员密码usermmnvarchar––

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/41

[毕业论文]【vc++】客户管理系统毕业设计论文

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利