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

上传人:仙*** 文档编号:33651317 上传时间:2021-10-18 格式:DOC 页数:31 大小:646.50KB
收藏 版权申诉 举报 下载
[毕业论文]【vc++】客户管理系统毕业设计论文_第1页
第1页 / 共31页
[毕业论文]【vc++】客户管理系统毕业设计论文_第2页
第2页 / 共31页
[毕业论文]【vc++】客户管理系统毕业设计论文_第3页
第3页 / 共31页
资源描述:

《[毕业论文]【vc++】客户管理系统毕业设计论文》由会员分享,可在线阅读,更多相关《[毕业论文]【vc++】客户管理系统毕业设计论文(31页珍藏版)》请在装配图网上搜索。

1、-1-客户管理系统学 院专 业班 级学 号姓 名指导教师教师职称年月日 2 目录目录摘要0 引言1 系统需求分析2 总体设计1 项目规划2 系统功能结构3 设计目标3 系统设计1 开发及运行环境2 数据库设计4 技术准备1 数据库的封装2 封装 ADO 数据库的代码分析5 主要功能模块设计1 主窗体2 客户信息3 联系人信息4 联系人信息查询附录 A 参考文献附录 B 数据表摘要【摘要】科技的发展、时代的进步,市场经济的竞争也越发激烈与残酷,在竞争中客户作为市场的最最要的资源,早已成为市场营销的核心,企业间谁拥有的客户多,谁就在竞争中占有绝对的优势。在市场经济竞争如此激烈的环境之下,企业要想立

2、于不败之地,就必须和与之生存发展息息相关的客户,建立起良好的关系,在现有客户资源的基础之上,维护好和老客户的关系,并且不断的发展新的客户,用企业高品质的产品、优质的服务、良好的信誉树立企业在客户心目中的良好形象;并以客户需求为己任,不断的创新与发展自身的产品,以满足客户新需求,并规范企业内部的客户资源的管理方式、提升企业的客户服务质量。计算机管理系统满足了企业对自身客户资源管理的新要求,减少了客户资源管理过程中的浪费的大量人力、物力和财力等。【关键词】客户管理系统 0 引言本系统具有完善的基础信息维护和客户信息维护功能,并增置了客户服务模块,满足了客户日常管理的需求;强大的数据查询及图表分析功

3、能,帮助企业能够及时根据分析结果进行新规划和方案,以适应变化万千的消费市场。客户管理系统后台数据库采用 SQL Server 2000 数据库,以保证数据的安全、高效和稳定。前台采用 Microsoft 公司的 Visual C+ 6.0 作为主要的开发工具,其可与 SQL Server 2000 数据库无缝链接。1 系统需求分析通过调查,要求系统需要有以下功能:详细全面记录并管理客户信息和联系人信息。方便实用的数据查询功能。能够根据客户的反馈得出相应的处理方法,做到快速、及时。对客户和企业进行分类,方便管理。设置业务往来的商品数量统计功能。通过计算机控制电话呼叫用户。2 总体设计2.1 项目

4、规划客户管理系统所涉及的信息非常的全面,主要由基础信息维护、客户信息维护、客户服务、信息查询、系统管理和帮助信息等几个功能模块组成,规划系统功能模块如下:基础信息维护模块基础信息维护模块主要包括区域信息设置、企业性质设置、企业类型设置、企业资信设置、客户级别设置和客户满意程度设置 6 部分。客户信息维护模块客户信息维护模块主要包括客户信息、联系人信息、业务往来、客户呼叫中心 4 个部分。客户服务模块客户服务模块主要包括客户反馈、客户投诉 2 个部分。信息查询模块信息查询模块主要包括客户信息查询、联系人信息查询、客户反馈满意度查询和客户投诉满意度查询。系统管理模块系统管理模块主要包括操作员设置、

5、密码修改。帮助信息模块帮助信息模块主要包括关于、帮助 2 个部分。 2 2.2 系统功能结构客户管理系统的功能结构如图 1 所示。图 1 客户管理系统功能架构图2.3 设计目标本系统属于典型的数据库管理系统,是针对中小型企业生产管理开发设计的,实现进一步的计算机化的管理。通过本系统可以达到以下目标:灵活的运用表格批量输入数据,使信息传递更快捷。系统采用良好的人机对话模式,界面设计美观友好,信息查询灵活、方便、快捷、准确,数据存储安全可靠。键盘操作,快速响应。实现各种查询及打印等。操作员可以随时修改自己的口令。管理员可以设置操作员的权限对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错

6、误。数据保密性强,为每个用户设置权限级别。系统运行稳定、安全可靠。3 系统设计3.1 开发及运行环境系统开发平台:Visual C+ 6.0。数据库管理系统软件:SQL Server 2000。运行平台:Windows xp/ Windows 2000。分辨率:最佳效果 800*600。3.2 数据库设计本系统数据库采用 SQL Server 2000 数据库,系统数据库名称为 db_SCGL。数据库 3 db_SCGL 中包含 19 张数据表。下面分别给出数据表概要说明和主要数据表的结构。1数据表概要说明从读者角度出发,使读者对本系统后台的数据库中数据表有一个更清晰的认识,在此特设计一个数据

7、库中数据表列表,该数据表列表包含系统所有数据表,如图 2 所示。图 2 数据表列表2主要数据表的结构数据库中的数据表请参见附录 B。4 技术准备4.1 数据库的封装调用数据库的方式有很多,主要有 DAO、ODBC、ADO,但使用起来比较灵活的是 ADO,直接引用 ADO 的方法是在头文件 StdAfx.h 中加入如下代码:#import E:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EOF,adoEOF)rename(BOF,adoBOF)然后在要用的 ADO 的类中加入两个指针的定义就可以应用 ADO

8、了_ConnectionPtr m_pConnection;_RecordsetPtr m_pRecordset;4.2 封装 ADO 数据库的代码分析对 ADO 的封装主要是将引用 ADO 的代码加到自定义的类中,并引用头文件 StdAfx.h 即可,对 ADO 进行封装的代码如下:头文件 ADO.H 声明如下:#import C:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EOF ,adoEOF)class adopublic: 4 _ConnectionPtr m_pConnection;_Recor

9、dsetPtr m_pRecordset;public:ado();virtual ado();void close();bool MovePrevious();/向上移动bool MoveLast();/最后一条bool MoveNext();/向下移动bool MoveFirst();/最后一条int GetRecordCount();/获得记录个数 bool Open(CString srecordset, UINT adCmd);void GetErrors(_com_error eErrors);/获得错误信息CString GetFieldValue(CString Field);

10、/获得字段值bool Move(int nRecordNum);/移动记录void ExecuteSQL(CString SQL);/执行SQL语句void rstOpen(CString TSQL);/打开记录集;实现文件 ADO.CPP 原代码如下:构造函数,直接实现数据库的连接。ado:ado() :CoInitialize(NULL); / ADO是基于COM技术要进行初始化trym_pConnection.CreateInstance(_uuidof(Connection);_bstr_t strConnect=Provider=SQLOLEDB;SERVER=127.0.0.1;D

11、atabase=db_client;uid=sa;pwd=;m_pConnection-Open(strConnect,0);catch(_com_error e)AfxMessageBox(e.Description();利用连接指针打开数据库,这样的方式打开的记录集,无法回滚,可以打开空记录集。bool ado:Open(CString srecordset, UINT adCmd)try 5 m_pRecordset=m_pConnection-Execute(_bstr_t)srecordset,NULL,adCmd);catch(_com_error&e)this-GetErrors

12、(e);return false;return true;用于返回记录集的个数。int ado:GetRecordCount()int nCount=0;trym_pRecordset-MoveFirst();catch(.)return 0;if(m_pRecordset-adoEOF)return 0;while (!m_pRecordset-adoEOF)m_pRecordset-MoveNext();nCount=nCount+1;m_pRecordset-MoveFirst();return nCount;这个函数用来获取执行 SQL 语句时的出错信息。void ado:GetErr

13、ors(_com_error eErrors)ErrorsPtr pErrors=m_pConnection-GetErrors();if (pErrors-GetCount()=0)MessageBox(NULL,eErrors.ErrorMessage(),错 误,MB_OK|MB_ICONEXCLAMATION);elsefor (int i=0;iGetCount();i+)/如果有多条语句,将用这个循环输出所有错误 6 _bstr_t desc=pErrors-GetItem(long)i)-GetDescription();MessageBox(NULL,desc,错 误,MB_O

14、K|MB_ICONEXCLAMATION);用记录的指针打开一个记录集,但打开空记录集时返回错误,如果出错就转向用连接打开记录集。void ado:rstOpen(CString TSQL)try _bstr_t bstrSQL=TSQL.AllocSysString();m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset-Open(bstrSQL,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);catch(_com_error e)m_p

15、Recordset=m_pConnection-Execute(_bstr_t)TSQL,NULL,adCmdText);获取记录集指定列的值。CString ado:GetFieldValue(CString Field) _variant_t Thevalue;CString temp; Thevalue=m_pRecordset-GetCollect(_bstr_t)Field);if(Thevalue.vt=VT_EMPTY |Thevalue.vt=VT_NULL)temp=;elsetemp=(char*)(_bstr_t)Thevalue;temp.TrimRight();tem

16、p.TrimLeft();return temp; 7 指向记录集的游标向上移一条。bool ado:MovePrevious()trym_pRecordset-MovePrevious(); catch(_com_error e)AfxMessageBox(e.Description();return false;return true;指向记录集的游标移到指定行处。bool ado:Move(int nRecordNum)tryif(!m_pRecordset-BOF)m_pRecordset-MoveFirst();m_pRecordset-Move(nRecordNum);catch(

17、_com_error e)AfxMessageBox(e.Description();return false;return true;指向记录集的游标向下移一条。bool ado:MoveNext()trym_pRecordset-MoveNext(); 8 catch(_com_error e)AfxMessageBox(e.Description();return false;return true;将指向记录集的游标移到顶部。bool ado:MoveFirst()trym_pRecordset-MoveFirst();catch(_com_error e)AfxMessageBox(

18、e.Description();return false;return true;将指向记录集的游标移到尾部。bool ado:MoveLast()trym_pRecordset-MoveLast();catch(_com_error e)AfxMessageBox(e.Description();return false;return true;用指向连接的指针执行 SQL 语句,如果 SQL 语句有语法错误,就返回响应的错误。void ado:ExecuteSQL(CString TSQL)trym_pConnection-Execute(_bstr_t)TSQL,NULL,adCmdTe

19、xt); 9 catch(_com_error e)AfxMessageBox(e.Description();关闭指针连接。void ado:close()m_pRecordset-Close();m_pConnection-Close();m_pRecordset=NULL;m_pConnection=NULL;:CoUninitialize();5 主要功能模块设计5.1 主窗体主窗体主要是对客户管理系统的各个模块进行调用,主要有菜单调用和工具栏调用两种,如图 3 所示。图 3 主窗体运行效果 10 1菜单设计(1)首先要用到工作区窗口,默认情况下工作区窗体是打开的,如果没打开可以从菜单

20、中选择 View/Workspace 此时工作区窗体会弹出,具体如图 4 所示。图 4 工作区窗口(2)工作区选项卡有三个选项卡,如图 4 所示。资源选项卡是 VC 的资源管理器,它的功能是可以实现添加或删除 Windows 的位图、图标、对话框等资源,要用资源选项卡,请单击资源选项卡。(3)添加菜单,可以鼠标右键单击 Menu 文件夹,出现菜单后选择 Insert Menu 就会出现菜单编辑器,要想在菜单内添加文字就双击如图 4 所示的虚线框,弹出如图 5 所示菜单属性对话框(Menu Item Properties)。工作区窗口 11 图 4 工作区选项卡及菜单编辑器图 5 菜单属性窗口(

21、4)设置菜单文本,可以在 Caption(标题)编辑框内输入即可,关闭属性窗体后一个菜单项就生成了。所有的菜单项都是照这样的方法重复完成的。最后生成如图 6 所示的系统执行时的菜单。还有另一种生成菜单的方法,主要是利用 WindowApi 函数进行文本编辑,具体方法请参照Windows98 程序设计一书。图 6 系统执行时的菜单效果2工具栏设计工具栏资源可以利用 VC 自带的 ToolBar 编辑器生成,也可以采用 MFC 提供的CToolBarCtrl 类动态生成,这里我们用语句动态生成。工具栏的生成将主要用到 CToolBarCtrl 类的 Create 方法来创建工具栏,其原型如下:BO

22、OL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );文件选项卡资源选项卡类选项卡菜单编辑器虚线框在这里输入汉字 12 dwStyle 是工具栏的风格和样式,主要有 WS_CHILD(子窗体) , WS_VISIBLE(可见) 和WS_DISABLED(不可见) ,还有以 CCS 开头 8 种样式,但在这 8 种样式中最长常用到的只有CCS_TOP(把工具栏放在顶部) ,其它请参考 MSDN。下面给出一个在程序中用到生成工具栏的实例代码。toolbar.Create(WS_CHILD|WS_VISIBL

23、E,CRect(0,0,0,0),this,ID_TOOLBAR);this 是指向其父窗体的指针,ID_TOOLBAR是在Resource.h 中定义的资源标识。工具栏上的按钮主要是对数据结构 TBBUTTON 进行赋值来实现的,下面给出一个具体赋值的代码。button0.dwData=0;button0.fsState=TBSTATE_ENABLED;button0.fsStyle=TBSTYLE_BUTTON;button0.idCommand=ID_ADD;button0.iString =toolbar.AddStrings(pString); fsState 确定按钮的状态,fsS

24、tyle 确定按钮的风格,dwData 可以是用户定义的数据,idCommand 是按下按钮后要执行命令的标识,通常是菜单项的 ID 值,iString 是在按钮上显示文字,主要是通过 CtoolBarCtrl 类的 AddStrings 方法加入的,pString 是 TCHAR 的指针,iBitmap是在按钮上显示的图片的编号,通常是图形列表(CImageList)的序号。这里应该提示大家:button数组开始编号是基于 0 的。iBitmap 选择图形列表的标号也是基于 0 的。如果要在工具栏中添加分隔符,就要使 button0.fsStyle=TBSTYLE_SEP,因为分隔符也是一个

25、按钮,并且此时 button0.idCommand 必须为 0。工具栏中的按钮图片是通过 CimageList 类的进行导入的,CimageList 类的 Create 方法原形如下:BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );由于 CimageList 类比较简单,一些参数请参照 MSDN,我这里只给一个具体实例。在程序中的图象列表是通过如下代码实现的。imagelist.Create(32,32,ILC_COLOR32|ILC_MASK,0,0);创建了类对象还不行,还要往类中导入图片,实现的方法主

26、要是通过全局函数 LoadIcon 将图标加载到程序中,其主要参数只有一个就是图标文件,这里就不在多说了。ILC_COLOR32 是设置图标的颜色深度,ILC_MASK 是设置是否非图标区使用透明色。3状态条的设计状态栏主要使用 CStatusBarCtrl 类来生成,该类 Create 方法原型为:BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );在程序中可以编写如下的语句创建状态条:statebar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this

27、,ID_STATU);WS_CHILD 和 WS_VISIBLE 是一般窗体控件通用的样式,使用的次数很多。程序中经常使用工具栏和状态栏,下面给出在对话框初始化函数中生成工具栏和状态栏的代码,具体代码如下:BOOL khmain:OnInitDialog() CDialog:OnInitDialog(); 13 int weith2;weith1=150;weith0=500;statebar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_STATU);statebar.SetParts(3,&weith0);statebar.SetTex

28、t(长春市明日科技有限公司,0,0);imagelist2.Create(32,32,ILC_COLOR32|ILC_MASK,0,0);imagelist2.Add(:LoadIcon(:AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON12);/ Add函数是向图象列表中添加图表imagelist2.Add(:LoadIcon(:AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON13);imagelist2.Add(:LoadIcon(:AfxGetResourceHandle(),MAKEINTRES

29、OURCE(IDI_ICON14);imagelist2.Add(:LoadIcon(:AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON15);imagelist2.Add(:LoadIcon(:AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON16);imagelist2.Add(:LoadIcon(:AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON20);toolbar2.EnableAutomation();toolbar2.Create(WS_CHIL

30、D|WS_VISIBLE,CRect(0,0,0,0),this,ID_TOOLBAR2);toolbar2.SetImageList(&imagelist2);int i;/以下就是对TBBUTTON结构进行赋值,赋值完成后工具栏的按钮就实现了for(i=0;i7;i+)buttoni.dwData=0;buttoni.fsState=TBSTATE_ENABLED;buttoni.fsStyle=TBSTYLE_BUTTON;button0.idCommand=ID_KHXX;button0.iBitmap=0;button1.idCommand=ID_lxrxx;button1.iBit

31、map=1;button2.idCommand=ID_KHHJ;button2.iBitmap=2;button3.idCommand=ID_KHFK;button3.iBitmap=3;button4.idCommand=ID_KHTS;button4.iBitmap=4;button5.idCommand=ID_EXITSYS;button5.iBitmap=5; 14 CString s;TCHAR *pString;/这个指针取得生成工具栏按钮的字符串for(i=0;iSetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);for

32、( int nCount=1; nCount SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);m_nNumOfPages = 0;用来设置指定对话框资源在 Tab 控件中的位置。void CTabSheet:SetRect(int m)CRect tabRect, itemRect;int nX, nY, nXc, nYc;GetClientRect(&tabRect);GetItemRect(0, &itemRect);nX=itemRect.left;nY=itemRect.bottom+1;nXc=tabRect.right

33、-itemRect.left-2;nYc=tabRect.bottom-nY-2;for( int nCount=0; nCount SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);m_pPagesm-SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);在 Tab 控件中显示对话框。void CTabSheet:Show()for( int i=0; i Create( m_IDDi, this );InsertItem( i, m_Titlei );m_pPages0-

34、ShowWindow(SW_SHOW);for( i=1; i ShowWindow(SW_HIDE);SetRect();在 Tab 控件中显示指定对话框。void CTabSheet:Show(int n)for( int i=0; i Create( m_IDDi, this );InsertItem( i, m_Titlei );for( i=0; i ShowWindow(SW_HIDE); 19 m_pPagesn-ShowWindow(SW_SHOW);SetRect(n);SetCurSel(n);用户单击 Tab 控件时,将焦点设置在对话框上。void CTabSheet:O

35、nLButtonDown(UINT nFlags, CPoint point) CTabCtrl:OnLButtonDown(nFlags, point);if(m_nCurrentPage != GetCurFocus()m_pPagesm_nCurrentPage-ShowWindow(SW_HIDE);m_nCurrentPage=GetCurFocus();m_pPagesm_nCurrentPage-ShowWindow(SW_SHOW);通过 Tab 控件在窗体中设置选项卡。int CTabSheet:SetCurSel(int nItem)if( nItem = m_nNumOf

36、Pages)return -1;int ret = m_nCurrentPage;if(m_nCurrentPage != nItem ) m_pPagesm_nCurrentPage-ShowWindow(SW_HIDE);m_nCurrentPage = nItem;m_pPagesm_nCurrentPage-ShowWindow(SW_SHOW);CTabCtrl:SetCurSel(nItem);m_nNumOfPages = 0;return ret;获得 Tab 控件当前用户选择的分页项。int CTabSheet:GetCurSel() return CTabCtrl:GetC

37、urSel();5.3 联系人信息查询1实现目标实现查询功能,可以查询联系人的编号,企业的名称,联系人的姓名等字段,最后将查询 20 出来的结果显示在列表中,程序运行结果如图 12 所示。图 12. 联系人信息查询2设计步骤(1)设计类 qlxr,基类为 CDialog。(2)定义文本框的成员变量(给资源 IDC_EDIT1 加变量)和列表框的成员变量(给资源IDC_LIST1 加变量) 。主要成员变量列表如表 2 所示(这里没有给出所有成员变量,具体请参照程序原代码) 。表 2 主要资源属性设置资源 ID类型变量描述IDC_COMBO1CComboBoxm_com1查询条件IDC_COMBO

38、2CComboBoxm_com2查询条件IDC_EDIT1CEditm_edit1输入查询信息IDC_LIST1CListCtrlm_list显示查询结果3代码分析联系人人信息查询文件 Qlxr.ccp 的主要代码如下:对话框的初始化程序代码如下:BOOL qlxr:OnInitDialog() CDialog:OnInitDialog();this-m_com1.AddString(联系人编号);this-m_com1.AddString(企业名称);this-m_com1.AddString(联系人姓名);this-m_com1.AddString(联系人性别);this-m_com1.A

39、ddString(年龄);this-m_com1.AddString(职位);this-m_com1.AddString(办公电话);this-m_com1.AddString(电子邮件); 21 this-m_com1.AddString(手机);this-m_com2.AddString(like);this-m_com2.AddString(=);m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE);m_list.Insert

40、Column(0,联系人编号);m_list.InsertColumn(1,企业名称);m_list.InsertColumn(2,联系人姓名);m_list.InsertColumn(3,联系人性别);m_list.InsertColumn(4,年龄);m_list.InsertColumn(5,职位);m_list.InsertColumn(6,办公电话);m_list.InsertColumn(7,电子邮件);m_list.InsertColumn(8,手机);m_list.SetColumnWidth(0,100);/设置列表框列的宽度m_list.SetColumnWidth(1,1

41、00);m_list.SetColumnWidth(2,100);m_list.SetColumnWidth(3,100);m_list.SetColumnWidth(4,100);m_list.SetColumnWidth(5,100);m_list.SetColumnWidth(6,100);m_list.SetColumnWidth(7,100);m_list.SetColumnWidth(8,100);this-loadlist();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION:

42、 OCX Property Pages should return FALSEvoid qlxr:OnButton2() this-EndDialog(true);实现查询功能,当文本框和选择列表框都为空是,出现提示。void qlxr:OnButton1() m_list.DeleteAllItems();ado rst;CString sql,edit1,com1,com2;this-m_edit.GetWindowText(edit1);this-m_com2.GetWindowText(com2); 22 this-m_com1.GetWindowText(com1);if(edit1

43、.IsEmpty()AfxMessageBox(请输入);return;if(com1.IsEmpty()AfxMessageBox(请输入);return;if(com2.IsEmpty()AfxMessageBox(请输入);return;sql.Format(select * from tb_Client_lxrxx where %s %s %s,ssel,com2,edit1);rst.Open(sql,adCmdText);int recordcount=rst.GetRecordCount();int ii;for(ii=1;ii=recordcount;ii+)m_list.In

44、sertItem(ii-1,);m_list.SetItemText(ii-1,0,rst.GetFieldValue(lxrxx_id);m_list.SetItemText(ii-1,1,rst.GetFieldValue(lxrxx_qymc);m_list.SetItemText(ii-1,2,rst.GetFieldValue(lxrxx_xm);m_list.SetItemText(ii-1,3,rst.GetFieldValue(lxrxx_xb);m_list.SetItemText(ii-1,4,rst.GetFieldValue(lxrxx_nl);m_list.SetIt

45、emText(ii-1,5,rst.GetFieldValue(lxrxx_zw);m_list.SetItemText(ii-1,6,rst.GetFieldValue(lxrxx_bgdh);m_list.SetItemText(ii-1,7,rst.GetFieldValue(lxrxx_Email);m_list.SetItemText(ii-1,8,rst.GetFieldValue(lxrxx_sj);rst.Move(ii);rst.close();程序运行中对话框被打开后,列表框数据的初始化。void qlxr:loadlist()ado rst;rst.Open(select

46、 * from tb_Client_lxrxx,adCmdText);int recordcount=rst.GetRecordCount();int ii; 23 for(ii=1;ii=recordcount;ii+)m_list.InsertItem(ii-1,);m_list.SetItemText(ii-1,0,rst.GetFieldValue(lxrxx_id);m_list.SetItemText(ii-1,1,rst.GetFieldValue(lxrxx_qymc);m_list.SetItemText(ii-1,2,rst.GetFieldValue(lxrxx_xm);

47、m_list.SetItemText(ii-1,3,rst.GetFieldValue(lxrxx_xb);m_list.SetItemText(ii-1,4,rst.GetFieldValue(lxrxx_nl);m_list.SetItemText(ii-1,5,rst.GetFieldValue(lxrxx_zw);m_list.SetItemText(ii-1,6,rst.GetFieldValue(lxrxx_bgdh);m_list.SetItemText(ii-1,7,rst.GetFieldValue(lxrxx_Email);m_list.SetItemText(ii-1,8

48、,rst.GetFieldValue(lxrxx_sj);rst.Move(ii);rst.close();此函数用来将用户在 ComboBox 控件的选择转换成 SQL 语句所需的字段名称。void qlxr:OnSelchangeCombo1() switch(m_com1.GetCurSel()case 0:ssel=lxrxx_id;break;case 1:ssel=lxrxx_qymc;break;case 2:ssel=lxrxx_xm;break;case 3:ssel=lxrxx_xb;break;case 4:ssel=lxrxx_nl;break;case 5:ssel=

49、lxrxx_zw;break;case 6:ssel=lxrxx_bgdh; 24 break;case 7:ssel=lxrxx_Email;break;case 8:ssel=lxrxx_sj;break;附录 A 参考文献1Visual Basic精彩编程200例机械工业出版社 赛奎春、高春艳等2003年1月2Visual Basic数据库开发实例解析机械工业出版社 刘志铭、高春艳等2003年8月3Visual FoxPro数据库开发实例解析机械工业出版社王晶莹、王国辉等2003年9月4Power Builder数据库开发实例解析机械工业出版社华传铭、张振坤等2003年9月5Delphi

50、数据库开发实例解析机械工业出版社 赛奎春、郑骁鹏等2004年2月6PowerBuilder 精彩编程200例机械工业出版社 张振坤、李文立等2004年9月7Visual FoxPro 精彩编程200例机械工业出版社 王国辉、董韶华等2004年9月8ASP数据库开发实例解析机械工业出版社 李严、于亚芳、王国辉2004年12月9Delphi工程应用与项目实践机械工业出版社 宋坤、赵智勇等2005年1月10Visual Basic工程应用与项目实践机械工业出版社 高春艳、李俊民等 2005年1月11Visual C工程应用与项目实践机械工业出版社 张雨、阮伟良等 2005年1月12JSP工程应用与项

51、目实践机械工业出版社 陈威、白伟明、李楠2005年2月13ASP工程应用与项目实践机械工业出版社 王国辉、牛强、李南南2005年4月14Visual Basic 信息系统开发实例精选机械工业出版社 高春艳、李俊民、张耀庭等2005年7月15ASP 信息系统开发实例精选机械工业出版社 王国辉、牛强、李南南等 2005年7月 25 16Delphi 信息系统开发实例精选机械工业出版社 宋坤、赵智勇、刘强等2005年7月17Visual foxpro数据库开发关键技术与实例应用人民邮电出版社 周桓、张雨、王国辉2004年5月18Power Builder数据库开发关键技术与实例应用人民邮电出版社 刘

52、志铭、张振坤、冯文萃 2004年5月19Delphi数据库开发关键技术与实例应用人民邮电出版社 赛奎春、陈紫鸿、宋昆2004年5月 26 附录 B 数据表由于篇幅有限,只给出部分数据表。(1)tb_khxx(客户信息表)客户信息表主要用于保存客户的详细信息。该数据表的结构如表 3 所示。表 3 客户信息表字段名数据类型长度描述khxx_idvarchar30客户编号khxx_mcvarchar50企业名称khxx_qyxzvarchar30企业性质khxx_qylxvarchar30企业类型khxx_qyzxvarchar30企业资信khxx_qydzvarchar50企业地址khxx_szs

53、fvarchar30所属省份khxx_szcsvarchar30所属城市khxx_gsybvarchar6公司邮编khxx_frdbvarchar20法人代表khxx_khyhvarchar50开户银行khxx_yhzhvarchar50银行帐号khxx_nshvarchar50纳税号khxx_ICcardvarchar50客户 IC 卡号khxx_gswzvarchar50公司网址khxx_gsdhvarchar20公司电话khxx_gsczvarchar20公司传真khxx_lxrvarchar30主要联系人khxx_lxrdhvarchar20联系人电话khxx_khjbvarchar20客户级别khxx_bztext16备注信息(2)tb_user(用户信息表)用户信息表,用于记录操作用户的密码和操作权限。该数据表的结构如表 16 所示。表 4 用户信息表字段名数据类型长度描述user_idnvarchar20操作员编号 27 user_namenvarchar50操作员姓名user_mmnvarchar30操作员密码

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