客户管理系统毕业设计论文

上传人:z*** 文档编号:82056124 上传时间:2022-04-28 格式:DOC 页数:31 大小:646.50KB
返回 下载 相关 举报
客户管理系统毕业设计论文_第1页
第1页 / 共31页
客户管理系统毕业设计论文_第2页
第2页 / 共31页
客户管理系统毕业设计论文_第3页
第3页 / 共31页
点击查看更多>>
资源描述
吉林省明日科技有限公司监制客户管理系统学 院专 业班 级学 号姓 名指导教师教师职称年月日目录目录摘要0 引言1 系统需求分析2 总体设计1 项目规划2 系统功能结构3 设计目标3 系统设计1 开发及运行环境2 数据库设计4 技术准备1 数据库的封装2 封装ADO数据库的代码分析5 主要功能模块设计1 主窗体2 客户信息3 联系人信息4 联系人信息查询附录A 参考文献附录B 数据表 3 吉林省明日科技有限公司监制摘要【摘要】科技的发展、时代的进步,市场经济的竞争也越发激烈与残酷,在竞争中客户作为市场的最最要的资源,早已成为市场营销的核心,企业间谁拥有的客户多,谁就在竞争中占有绝对的优势。在市场经济竞争如此激烈的环境之下,企业要想立于不败之地,就必须和与之生存发展息息相关的客户,建立起良好的关系,在现有客户资源的基础之上,维护好和老客户的关系,并且不断的发展新的客户,用企业高品质的产品、优质的服务、良好的信誉树立企业在客户心目中的良好形象;并以客户需求为己任,不断的创新与发展自身的产品,以满足客户新需求,并规范企业内部的客户资源的管理方式、提升企业的客户服务质量。计算机管理系统满足了企业对自身客户资源管理的新要求,减少了客户资源管理过程中的浪费的大量人力、物力和财力等。【关键词】客户管理系统 39 0 引言本系统具有完善的基础信息维护和客户信息维护功能,并增置了客户服务模块,满足了客户日常管理的需求;强大的数据查询及图表分析功能,帮助企业能够及时根据分析结果进行新规划和方案,以适应变化万千的消费市场。客户管理系统后台数据库采用SQL Server 2000数据库,以保证数据的安全、高效和稳定。前台采用Microsoft公司的Visual C+ 6.0作为主要的开发工具,其可与SQL Server 2000数据库无缝链接。1 系统需求分析通过调查,要求系统需要有以下功能:q 详细全面记录并管理客户信息和联系人信息。q 方便实用的数据查询功能。q 能够根据客户的反馈得出相应的处理方法,做到快速、及时。q 对客户和企业进行分类,方便管理。q 设置业务往来的商品数量统计功能。q 通过计算机控制电话呼叫用户。2 总体设计2.1 项目规划客户管理系统所涉及的信息非常的全面,主要由基础信息维护、客户信息维护、客户服务、信息查询、系统管理和帮助信息等几个功能模块组成,规划系统功能模块如下:q 基础信息维护模块基础信息维护模块主要包括区域信息设置、企业性质设置、企业类型设置、企业资信设置、客户级别设置和客户满意程度设置6部分。q 客户信息维护模块客户信息维护模块主要包括客户信息、联系人信息、业务往来、客户呼叫中心4个部分。q 客户服务模块客户服务模块主要包括客户反馈、客户投诉2个部分。q 信息查询模块信息查询模块主要包括客户信息查询、联系人信息查询、客户反馈满意度查询和客户投诉满意度查询。q 系统管理模块系统管理模块主要包括操作员设置、密码修改。q 帮助信息模块帮助信息模块主要包括关于、帮助2个部分。2.2 系统功能结构客户管理系统的功能结构如图1所示。图1 客户管理系统功能架构图2.3 设计目标本系统属于典型的数据库管理系统,是针对中小型企业生产管理开发设计的,实现进一步的计算机化的管理。通过本系统可以达到以下目标:q 灵活的运用表格批量输入数据,使信息传递更快捷。q 系统采用良好的人机对话模式,界面设计美观友好,信息查询灵活、方便、快捷、准确,数据存储安全可靠。q 键盘操作,快速响应。q 实现各种查询及打印等。q 操作员可以随时修改自己的口令。q 管理员可以设置操作员的权限q 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。q 数据保密性强,为每个用户设置权限级别。q 系统运行稳定、安全可靠。3 系统设计3.1 开发及运行环境系统开发平台:Visual C+ 6.0。数据库管理系统软件:SQL Server 2000。运行平台:Windows xp/ Windows 2000。分辨率:最佳效果800*600。3.2 数据库设计本系统数据库采用SQL Server 2000数据库,系统数据库名称为db_SCGL。数据库db_SCGL中包含19张数据表。下面分别给出数据表概要说明和主要数据表的结构。1数据表概要说明从读者角度出发,使读者对本系统后台的数据库中数据表有一个更清晰的认识,在此特设计一个数据库中数据表列表,该数据表列表包含系统所有数据表,如图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了_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:_ConnectionPtr m_pConnection;_RecordsetPtr 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);/获得字段值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;Database=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 m_pRecordset=m_pConnection-Execute(_bstr_t)srecordset,NULL,adCmd);catch(_com_error&e)this-GetErrors(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:GetErrors(_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+)/如果有多条语句,将用这个循环输出所有错误_bstr_t desc=pErrors-GetItem(long)i)-GetDescription();MessageBox(NULL,desc,错 误,MB_OK|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_pRecordset=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();temp.TrimLeft();return temp;指向记录集的游标向上移一条。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(_com_error e)AfxMessageBox(e.Description();return false;return true;指向记录集的游标向下移一条。bool ado:MoveNext()trym_pRecordset-MoveNext();catch(_com_error e)AfxMessageBox(e.Description();return false;return true;将指向记录集的游标移到顶部。bool ado:MoveFirst()trym_pRecordset-MoveFirst();catch(_com_error e)AfxMessageBox(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,adCmdText);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 主窗体运行效果1菜单设计(1)首先要用到工作区窗口,默认情况下工作区窗体是打开的,如果没打开可以从菜单中选择View/Workspace此时工作区窗体会弹出,具体如图4所示。工作区窗口图4 工作区窗口(2)工作区选项卡有三个选项卡,如图4所示。资源选项卡是VC的资源管理器,它的功能是可以实现添加或删除Windows的位图、图标、对话框等资源,要用资源选项卡,请单击资源选项卡。(3)添加菜单,可以鼠标右键单击Menu文件夹,出现菜单后选择Insert Menu就会出现菜单编辑器,要想在菜单内添加文字就双击如图4所示的虚线框,弹出如图5所示菜单属性对话框(Menu Item Properties)。菜单编辑器虚线框文件选项卡资源选项卡类选项卡图4 工作区选项卡及菜单编辑器在这里输入汉字图5 菜单属性窗口(4)设置菜单文本,可以在Caption(标题)编辑框内输入即可,关闭属性窗体后一个菜单项就生成了。所有的菜单项都是照这样的方法重复完成的。最后生成如图6所示的系统执行时的菜单。还有另一种生成菜单的方法,主要是利用WindowApi函数进行文本编辑,具体方法请参照Windows98程序设计一书。图6 系统执行时的菜单效果2工具栏设计工具栏资源可以利用VC自带的ToolBar编辑器生成,也可以采用MFC提供的CToolBarCtrl类动态生成,这里我们用语句动态生成。工具栏的生成将主要用到CToolBarCtrl类的Create方法来创建工具栏,其原型如下:BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );dwStyle是工具栏的风格和样式,主要有WS_CHILD(子窗体),WS_VISIBLE(可见) 和WS_DISABLED(不可见),还有以CCS开头8种样式,但在这8种样式中最长常用到的只有CCS_TOP(把工具栏放在顶部),其它请参考MSDN。下面给出一个在程序中用到生成工具栏的实例代码。toolbar.Create(WS_CHILD|WS_VISIBLE,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确定按钮的状态,fsStyle确定按钮的风格,dwData可以是用户定义的数据,idCommand是按下按钮后要执行命令的标识,通常是菜单项的ID值,iString是在按钮上显示文字,主要是通过 CtoolBarCtrl类的AddStrings方法加入的,pString是TCHAR的指针,iBitmap是在按钮上显示的图片的编号,通常是图形列表(CImageList)的序号。这里应该提示大家:button数组开始编号是基于0的。iBitmap选择图形列表的标号也是基于0的。如果要在工具栏中添加分隔符,就要使button0.fsStyle=TBSTYLE_SEP,因为分隔符也是一个按钮,并且此时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);创建了类对象还不行,还要往类中导入图片,实现的方法主要是通过全局函数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,ID_STATU);WS_CHILD和WS_VISIBLE是一般窗体控件通用的样式,使用的次数很多。程序中经常使用工具栏和状态栏,下面给出在对话框初始化函数中生成工具栏和状态栏的代码,具体代码如下:BOOL khmain:OnInitDialog() CDialog:OnInitDialog();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.SetText(长春市明日科技有限公司,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(),MAKEINTRESOURCE(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_CHILD|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.iBitmap=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;CString s;TCHAR *pString;/这个指针取得生成工具栏按钮的字符串for(i=0;iSetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);for( 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-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-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);m_pPagesn-ShowWindow(SW_SHOW);SetRect(n);SetCurSel(n);用户单击Tab控件时,将焦点设置在对话框上。void CTabSheet:OnLButtonDown(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_nNumOfPages)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:GetCurSel();5.3 联系人信息查询1实现目标实现查询功能,可以查询联系人的编号,企业的名称,联系人的姓名等字段,最后将查询出来的结果显示在列表中,程序运行结果如图12所示。图12. 联系人信息查询2设计步骤(1)设计类qlxr,基类为CDialog。(2)定义文本框的成员变量(给资源IDC_EDIT1加变量)和列表框的成员变量(给资源IDC_LIST1加变量)。主要成员变量列表如表2所示(这里没有给出所有成员变量,具体请参照程序原代码)。表2 主要资源属性设置资源ID类型变量描述IDC_COMBO1CComboBoxm_com1查询条件IDC_COMBO2CComboBoxm_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.AddString(年龄);this-m_com1.AddString(职位);this-m_com1.AddString(办公电话);this-m_com1.AddString(电子邮件);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.InsertColumn(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,100);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: 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);this-m_com1.GetWindowText(com1);if(edit1.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.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);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,rst.GetFieldValue(lxrxx_sj);rst.Move(ii);rst.close();程序运行中对话框被打开后,列表框数据的初始化。void qlxr:loadlist()ado rst;rst.Open(select * from tb_Client_lxrxx,adCmdText);int recordcount=rst.GetRecordCount();int ii;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);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,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=lxrxx_zw;break;case 6:ssel=lxrxx_bgdh;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数据库开发实例解析机械工业出版社 赛奎春、郑骁鹏等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工程应用与项目实践机械工业出版社 陈威、白伟明、李楠2005年2月13ASP工程应用与项目实践机械工业出版社 王国辉、牛强、李南南2005年4月
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


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

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


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