freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于crm的進(jìn)銷存管理系統(tǒng)的研究畢業(yè)論文-資料下載頁(yè)

2025-06-23 14:40本頁(yè)面
  

【正文】 、聯(lián)系人、地址、企業(yè)規(guī)模等。對(duì)于每個(gè)客戶,用戶還可以記錄與之相關(guān)的聯(lián)系人、機(jī)會(huì)、活動(dòng)以及客戶類型等。對(duì)于企業(yè)來(lái)說(shuō),識(shí)別重要客戶,留住高利潤(rùn)客戶是利潤(rùn)增加之源泉,所以,管理客戶是一項(xiàng)相對(duì)重要的功能。銷售管理銷售管理主要是對(duì)與客戶之間進(jìn)行的銷售進(jìn)行管理,即對(duì)已經(jīng)銷售成功的案例進(jìn)行管理,同時(shí)記錄相關(guān)的銷售機(jī)會(huì)信息。基于CRM的進(jìn)銷存中的銷售管理,為客戶價(jià)值和區(qū)域價(jià)值等提供了重要的分析依據(jù),另外銷售管理還可以作為企業(yè)內(nèi)部職員之間考核的重要依據(jù)。程序相關(guān)代碼(1)創(chuàng)建左上角的標(biāo)題信息。① 創(chuàng)建白色背景。以背景作父窗體,讓其他的控件作它的子窗體。這里需要在CDlGXSDJ的頭文件中聲明CWhiteFrame對(duì)象。CWhiteFrame m_whiteframe。在OnCreate的成員函數(shù)中創(chuàng)建該對(duì)象對(duì)應(yīng)的窗口。int CDlgXSDJ::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == 1) return 1。 CRect rect。 thisGetClientRect(amp。rect)。 +=10。 = +=10。 =200。 (,WS_CHILD|WS_TABSTOP|WS_VISIBLE,rect,this,700)。 return 0。}② 創(chuàng)建標(biāo)題部分的控件。該部分的控件都以上述的白色背景窗口為父窗口,要注意以下幾點(diǎn):(1) 在這個(gè)背景上創(chuàng)建靜態(tài)文本,且文本背景是白色。對(duì)此,同樣使用CWhiteFrame類,并用該類定義一組靜態(tài)文本對(duì)象,要注意創(chuàng)建文本的位置,使其與相應(yīng)的控件相配合。例如:確保靜態(tài)文本“客戶編號(hào)”與相應(yīng)的編輯框在同一個(gè)水平高度;日期與日期控件在同一個(gè)高度。(2) 由于入庫(kù)與銷售大部分內(nèi)容是相同的,所以,用一個(gè)窗體來(lái)執(zhí)行這兩部分功能。為此,用Bool型的變量m_bXs來(lái)表示這兩種區(qū)別,并在代碼中要適時(shí)修改一些屬性。(3) 改變?cè)O(shè)計(jì)時(shí)添加的控件的父窗體要用到其成員函數(shù)SetParent。方式如下:(amp。m_whiteframe)。(1) 對(duì)于結(jié)算方式下拉列表框和經(jīng)手人下拉列表框,需要從數(shù)據(jù)庫(kù)中取得相應(yīng)的數(shù)據(jù)來(lái)初始化這兩個(gè)窗口,并在最后為這兩個(gè)下拉列表框確定初值。(2) 初始化時(shí)間。CTime m_dateRq = CTime::GetCurrentTime()。 //初始化時(shí)間 this(amp。m_dateRq)。創(chuàng)建和初始化標(biāo)題部分的控件的代碼如下:bool CDlgXSDJ::InitBaseInfo(){ CRect rect。CString str。 wf=new CWhiteFrame[5]。 CString strs[5]。 //該字符串保存靜態(tài)文本 if(m_bXs) //判斷當(dāng)前是銷售登記,還是入庫(kù)登記 { strs[0]=客戶編號(hào):。 strs[1]=客戶名稱:。 } else { thisGetDlgItem(IDC_STATIC_PH)SetWindowText(入庫(kù)登記票號(hào):)。 thisSetWindowText(入庫(kù)登記:)。 strs[0]=供應(yīng)商編號(hào):。 strs[1]=供應(yīng)商名稱:。 } strs[2]=結(jié)算方式:。 strs[3]=經(jīng)手人:。 strs[4]=日期:。 rect=CRect(10,40,80,55)。 //用來(lái)確定靜態(tài)文本的位置 for(int i=0。i5。i++) { //創(chuàng)建靜態(tài)文本 wf[i].Create(strs[i],WS_CHILD|WS_VISIBLE,rect,amp。m_whiteframe)。 wf[i].Invalidate()。 (0,28)。 } (amp。m_whiteframe)。 //改變標(biāo)題控件的父窗口 (amp。m_whiteframe)。 (amp。m_whiteframe)。 (amp。m_whiteframe)。 (amp。m_whiteframe)。 //init time。 CTime m_dateRq = CTime::GetCurrentTime()。 //初始化時(shí)間 this(amp。m_dateRq)。 //init jsr。 //初始化經(jīng)手人下拉列表框 CString sql。 (select yg_name from tabyginfo)。 if(!(sql))return false。 _variant_t value。 while(!adoEOF) //從數(shù)據(jù)庫(kù)取值初始化員工下拉列表框 { value=GetCollect(yg_name)。if(!=VT_NULL) this((char*)(_bstr_t)value)。 MoveNext()。 } //init jsfs。 (select jsfs from tabjsfs)。 this(sql)。 while(!adoEOF) //從數(shù)據(jù)庫(kù)取值初始化經(jīng)手人下拉列表框 { value=GetCollect(jsfs)。 if(!=VT_NULL) this((char*)(_bstr_t)value)。 MoveNext()。 } this(0)。 this(0)。 return true。}③ 為客戶編號(hào)和客戶名稱編輯框連接自動(dòng)提示窗口。對(duì)于客戶信息和供應(yīng)商信息,這兩者信息格式大部分是相同的,并且每次是用到其中的一組數(shù)據(jù)時(shí)都需要用到自動(dòng)提示窗口,所以專門作出一個(gè)類CGeneralEdit來(lái)對(duì)應(yīng)著兩組信息,并包含對(duì)自動(dòng)提示窗口的使用。該類派生自CEdit。功能分析:(1)界面上看,需要有下劃線和白色背景。(2)當(dāng)把焦點(diǎn)移到某個(gè)編輯框上時(shí)原有彈出的自動(dòng)提示窗口消失。(3)當(dāng)在編輯框中進(jìn)行編輯時(shí)引起EN_CHANGE事件時(shí),彈出自動(dòng)提示窗口。(4) 焦點(diǎn)移走時(shí),讓自動(dòng)提示窗口消失;但是如果焦點(diǎn)移動(dòng)到了自動(dòng)提示窗口上,則自動(dòng)提示窗口不消失。(5) 當(dāng)父窗體移動(dòng)時(shí),自動(dòng)提示窗口也跟著移動(dòng)。(6) 當(dāng)在編輯框中進(jìn)行編輯時(shí),按〈↑〉、〈↓〉、〈Page Up〉、〈Page Down〉鍵,自動(dòng)提示窗口會(huì)響應(yīng)這些消息,且此時(shí)焦點(diǎn)還在編輯框中。(7) 當(dāng)用戶在其中一個(gè)編輯框中按〈Enter〉鍵,表示確定了選擇某一個(gè)客戶(編號(hào)或名稱),那么另一個(gè)編輯框中的內(nèi)容也隨之改變。(8) 當(dāng)用戶在其中一個(gè)編輯框中單擊〈Esc〉鍵,表示用戶放棄進(jìn)行編輯,取消自動(dòng)彈出對(duì)話框。為了實(shí)現(xiàn)功能2,寫消息WM_SETFOCUS的消息響應(yīng)函數(shù)OnSetFocus。void CGeneralEdit::OnSetFocus(CWnd* pOldWnd){ ASSERT(thism_poplist!=NULL)。 m_poplistShowWindow(SW_HIDE)。 CEdit::OnSetFocus(pOldWnd)。}對(duì)于功能3,要寫EN_CHANGE消息響應(yīng)函數(shù)OnChange。在編寫EN_CHANGE消息響應(yīng)函數(shù)OnChange時(shí),需要注意:(1) 客戶編號(hào)編輯框和客戶名稱編輯框都是由一個(gè)類定義出來(lái)的,使用資源符號(hào)來(lái)區(qū)分這兩個(gè)對(duì)象,如IDC_EDIT_KHID對(duì)應(yīng)著客戶編號(hào)編輯框,而IDC_EDIT_KHNAME則對(duì)應(yīng)著客戶名稱編輯框?qū)ο蟆#?) 當(dāng)編輯編號(hào)時(shí),直接用當(dāng)前編輯框的字符串來(lái)刷新自動(dòng)提示窗口,當(dāng)編輯名稱時(shí),還需要參考編號(hào)編輯框的值,來(lái)顯示自動(dòng)提示窗口的內(nèi)容。(3) 如果自動(dòng)提示窗口已經(jīng)顯示了,就沒(méi)有必要重復(fù)計(jì)算顯示。代碼如下:void CGeneralEdit::OnChange() { if(m_bSetValue) return。 ASSERT(thism_poplist!=NULL)。 CString str。 thisGetWindowText(str)。 //取得當(dāng)前編輯框的字符串 int iID=thisGetDlgCtrlID()。 //取得當(dāng)前編輯框?qū)ο蟮馁Y源符號(hào)的值 if(iID==IDC_EDIT_KHID) //判斷是編號(hào)對(duì)象,還是名稱對(duì)象 { thism_poplistRefreshListCtrlView(0,str)。 //刷新自動(dòng)提示窗口數(shù)據(jù) } else if(iID==IDC_EDIT_KHNAME) { CString id。 CWnd * editid。 editid=thisGetParent()GetDlgItem(IDC_EDIT_KHID)。 editidGetWindowText(id)。 m_poplistRefreshListCtrlView(1,str,id,0)。 //根據(jù)兩個(gè)字符串刷新自動(dòng)提示窗口 } if(!m_poplistIsWindowVisible()) //如果自動(dòng)提示窗口已顯示,就不用再設(shè)定位置、顯示 { thisGetWindowRect(amp。m_rectWindow)。 thism_poplistSetShowPosition(thism_rectWindow,this)。 m_poplistShowListPop()。 }}對(duì)于功能8,需要編寫預(yù)解釋函數(shù)PreTranslateMessage(MSG* pMsg)和 WM_KILLFOCUS的消息響應(yīng)函數(shù)OnKillFocus,功能分析如下:(1) 編輯框失去焦點(diǎn)的時(shí)候,會(huì)調(diào)用函數(shù)OnKillFocus(CWnd*pNewWnd),此時(shí),需要判斷是否焦點(diǎn)轉(zhuǎn)移到了自動(dòng)提示窗口上,pNewWnd就是焦點(diǎn)轉(zhuǎn)移到的窗口指針,判斷這個(gè)指針是誰(shuí)就行了。(2) 當(dāng)用戶按〈Enter〉鍵,缺省情況下,對(duì)話框處理這個(gè)消息并最終執(zhí)行OnOk函數(shù),關(guān)閉對(duì)話框。需要在預(yù)解釋函數(shù)中處理這個(gè)消息,并把它解釋為WM_KILLFOCUS,并設(shè)定一個(gè)開(kāi)關(guān)變量標(biāo)識(shí)這個(gè)消息,在OnKillFocus函數(shù)中收到并處理這個(gè)消息。(3) 當(dāng)用戶按〈Esc〉鍵時(shí),需要讓自動(dòng)提示窗口消失,同時(shí)將〈Enter〉鍵解釋為無(wú)關(guān)緊要的鍵如〈Ctrl〉鍵。(4) 當(dāng)用戶按〈↑〉、〈↓〉、〈Page Up〉、〈Page Down〉鍵時(shí),將這個(gè)消息原封不動(dòng)地發(fā)送給自動(dòng)提示窗口,自動(dòng)提示窗口會(huì)響應(yīng)這些消息(此時(shí)焦點(diǎn)還在編輯框中)。BOOL CGeneralEdit::PreTranslateMessage(MSG* pMsg) { //TODO: Add your specialized code here and/or call the base class if(pMsgmessage==WM_KEYDOWN) //捕捉鍵盤某個(gè)鍵按下事件 { switch(pMsgwParam) { case 13: //捕捉〈Enter〉鍵 { pMsgmessage=WM_KILLFOCUS。 //將該消息改為WM_KILLFOCUS消息 m_Kill=RETURNKILL。 //設(shè)置開(kāi)關(guān)變量,將在OnKillFocus中使用 break。 } case 27: //捕捉〈Esc〉鍵 { if(m_poplistIsWindowVisible()) //如果自動(dòng)提示窗口處于顯示狀態(tài),隱藏它 { thism_poplistShowWindow(false)。 pMsgwParam=VK_CONTROL。 //將該消息改為〈Ctrl〉鍵 } break。 } case VK_UP: //捕捉〈↑〉、〈↓〉、〈Page Up〉、〈Page Down〉鍵 case VK_DOWN: case VK_NEXT: case VK_PRIOR: { //將這些消息由自動(dòng)提示窗口處理 thism_poplistSendTheUDNPMessage(pMsgwParam)。 pMsgwParam=VK_CONTROL。 //并將該消息解釋為無(wú)用的鍵 break。 } } } return CEdit::PreTranslateMessage(pMsg)。}下面看看自動(dòng)提示窗口是如何處理〈↑〉、〈↓〉、〈Page Up〉、〈Page Down〉鍵的。void CListCtrlPop::SendTheUDNPMessage(UINT KEY){ ::SendMessage(thism_listctrlGetSafeHwnd(),WM_KEYDOWN,KEY,0)。 m_listctrlSetHotItem(m_listctrlGetSelectionMark())。}自動(dòng)提示窗口將這些消息原封不動(dòng)地發(fā)送給了其中的列表控件。調(diào)用完消息與解釋函數(shù)后,消息被預(yù)解釋了,可以處理這些解釋后的消息。void CGeneralEdit::OnKillFocus(CWnd* pNewWnd) { CEdit::OnKillFocus(pNewWnd)。 int iID=thisGetDlgCtrlID()。 //取得當(dāng)前編輯框?qū)ο蟮馁Y源符號(hào)值
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1