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

正文內(nèi)容

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

2025-06-23 14:40本頁面
  

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