版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 說 明 書</p><p><b> 數據庫大型實驗周</b></p><p><b> 設計目的</b></p><p><b> 1.1實驗目的</b></p><p> 將所學知識應用于實踐中,通過和小組隊員合作完成一款軟件,
2、培養(yǎng)團隊合作精神,為以后從事計算機相關工作奠定良好的基礎。</p><p><b> 1.1軟件設計目的</b></p><p> 為方便醫(yī)院工作人員管理藥品,減輕操作人員的負擔,增加工作效率。利用計算機對藥品進行檢索、管理、記錄信息,有著手工操作無法比擬的優(yōu)勢。</p><p><b> 設計內容</b></
3、p><p><b> 2.1主要的數據表</b></p><p> 藥品信息表、庫存量表、銷售記錄表、更新信息表、過期藥品處理表、供貨商信息表、職工表、賬號密碼表</p><p><b> 2.1主要功能模塊</b></p><p> 實現登陸界面和主界面的超級搜索功能</p>&
4、lt;p> 出售藥品、更新藥品、過期藥品登記功能</p><p> 實現銷售記錄、更新記錄、過期藥品處理記錄查詢</p><p> 提供供貨商信息和職工信息的添加、修改、刪除功能</p><p> 提供庫存信息查詢和數據備份功能</p><p> 3.開發(fā)和運行環(huán)境介紹</p><p> 操作系統(tǒng):
5、Microsoft Windows </p><p> 數據庫管理系統(tǒng): Microsoft SQL Server Management Studio Express</p><p> 語言:C++MFC ODBC</p><p> 編譯環(huán)境:VS2008</p><p> 運行環(huán)境:裝有SQL Ser
6、ver 2005以上版本的Windows系統(tǒng)</p><p> 4.需求分析(以下項目根據實際情況自定)</p><p><b> 4.1功能需求</b></p><p> 基本的數據信息的存儲</p><p> 用報表形式輸出數據庫信息</p><p> 銷售管理、更新管理、過期藥品管
7、理</p><p> 銷售、更新、登記的記錄</p><p><b> 藥品信息檢索</b></p><p> 供貨商信息及職工信息的管理</p><p> 庫存量直接管理及數據的備份</p><p><b> 4.2 體驗需求</b></p><
8、;p><b> 美觀大方的界面</b></p><p> 每個功能模塊都要考慮到用戶的感受</p><p> 窗口中每個區(qū)域都要充分利用而且不要冗余</p><p> 不添加不適用功能,每個功能都要讓用戶感覺非常有用</p><p> 為常用模塊增加快捷鍵或雙擊搜索到的信息直達功能模塊</p>
9、<p> 每個功能模塊都要經過嚴格的測試和改進才可發(fā)布</p><p> 不要擁有用戶不能忍受的等待時間的功能</p><p> 發(fā)布前我們會對每個模塊進行上百次的操作以保證穩(wěn)定性和易操作性</p><p><b> 4.3 詳細數據表</b></p><p> 藥品信息(批準文號,名稱,規(guī)格,功
10、效,成分,用量,售價)</p><p> 銷售記錄(銷售時間,藥品文號,銷售數量,銷售總金額,銷售員ID)</p><p> 更新信息(更新時間,藥品文號,更新數量,更新后庫存,更新價格,記錄員ID,更新標記)</p><p> 過期藥品處理(處理時間,藥品文號,過期時間,處理數量,總金額,備注,處理員ID)</p><p> 庫存(
11、藥品文號,藥品庫存量)</p><p> 供貨商信息(供貨商編號,公司名字,地址,電話,備注)</p><p> 職工信息(工號,名字,職位,電話)</p><p> 賬號密碼(工號,密碼)</p><p><b> 4.4 定義視圖</b></p><p><b> 藥品詳情
12、</b></p><p><b> 更新詳情</b></p><p><b> 過期藥品處理詳情</b></p><p><b> 銷售詳情</b></p><p><b> 5.系統(tǒng)設計與實現</b></p><p
13、> 5.1 模塊功能描述</p><p> 主界面:搜索引擎實現了藥品批準文號,名稱,功效同時模糊搜索,而且還可以用空格分隔關鍵詞模糊搜索,搜索結果在主界面列表框中呈現。</p><p> 出售界面:以只讀形式顯示藥品詳細信息,以及庫存量等信息,只留銷售數量編輯框,打開時默認全選銷售數量,輸入銷售數目動態(tài)計算藥品總金額,單擊確定提示消息框中給出銷售數量庫存剩余數量。</p
14、><p> 更新藥品信息:更新藥品信息對話框實現了修改藥品信息,添加新藥品動態(tài)顯示等功能。單擊全選,實時計算,功能非常強大。</p><p> 過期藥品登記:模糊輸入藥品文號,動態(tài)查找藥品,只讀顯示查找到藥品的詳細信息,動態(tài)計算銷毀總金額和剩余庫存,有備注功能,還有過期時間的輸入等。</p><p> 銷售記錄:可以選擇或輸入某個時間段來查找銷售記錄,可以在任意時
15、間段查找指定藥品的銷售記錄,有所有記錄,上月記錄,上周記錄,昨日記錄4個單選按鈕,還有銷售條數和銷售總金額的實時計算和顯示。</p><p> 更新記錄:和銷售記錄功能類似,但是顯示的內容需要更詳盡,而且需要標記是修改的藥品信息還是添加的藥品信息。</p><p> 過期藥品處理記錄:上面兩個類似不過動態(tài)計算、相信顯示、快捷查詢等。</p><p> 職工信息
16、:和記錄一樣用報表方式顯示職工的工號、姓名、職位、聯(lián)系方式,提供獨立的添加、修改、刪除職工信息功能。</p><p> 供貨商信息:提供編號、公司名、地址、聯(lián)系方式、備注顯示,有添加修改刪除功能,直接操作數據庫中對應的表和職工信息模塊功能類似。</p><p> 庫存信息:可通過藥品文號進行模糊查詢,報表顯示藥品的詳細信息和庫存,提供所有庫存、庫存不足、庫存正常、庫存冗余,三個單選按鈕
17、快捷查詢,庫存不足以庫存升序排列,庫存冗余以降序排列。</p><p> 數據備份:數據備份框,只讀模式顯示備份到文件的相信路徑,單擊備份即可備份,不過得確保數據庫已經擁有修改文件夾內容的權限。</p><p><b> 5.2 分工</b></p><p> 張政楨:整體架構設計協(xié)調,界面設計以及 1、2、3、4功能模塊</p&
18、gt;<p> 龍毅:5、6、7 功能模塊</p><p> 蘭奇:8、9功能模塊</p><p> 魏強:10、11功能模塊</p><p><b> 5.3 軟件實現</b></p><p><b> 張政楨</b></p><p
19、><b> 登錄</b></p><p> // CLoginDlg 消息處理程序</p><p><b> // 外部變量</b></p><p> CString login_ID = _T("");</p><p> void CLoginDlg::OnBn
20、ClickedButtonLogin()</p><p><b> {</b></p><p> // TODO: 在此添加控件通知處理程序代碼</p><p> UpdateData(TRUE);</p><p> CIDkeySet setID;</p><p> setID.m_s
21、trFilter.Format(_T("ID='%s'"), m_ID);</p><p> if (!setID.Open())</p><p> MessageBox(_T("連接數據庫時錯誤"), _T("提示"), MB_OK);</p><p> if (!setID.IsE
22、OF())</p><p><b> {</b></p><p> setID.m_PASSWORD.TrimRight();</p><p> if (setID.m_PASSWORD == m_key)</p><p><b> {</b></p><p> l
23、ogin_ID = m_ID;</p><p><b> OnOK();</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> M
24、essageBox(_T("密碼有誤!"), _T("提示"), MB_OK);</p><p> GetDlgItem(IDC_EDIT_KEY)->SetFocus();</p><p> SendDlgItemMessage(IDC_EDIT_KEY, EM_SETSEL, 0, -1);</p><p>&l
25、t;b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> MessageBox(_T("賬號不存在!"), _T("提
26、示"), MB_OK);</p><p> GetDlgItem(IDC_EDIT_ID)->SetFocus();</p><p> SendDlgItemMessage(IDC_EDIT_ID, EM_SETSEL, 0, -1);</p><p><b> }</b></p><p> se
27、tID.Close();</p><p><b> }</b></p><p><b> 主界面搜索和顯示</b></p><p> void CBeginDlg::OnBnClickedBeginSearch()</p><p><b> {</b></p>
28、;<p> // TODO: 在此添加控件通知處理程序代碼</p><p> UpdateData(TRUE);</p><p> // 超強模糊查詢源于此,與百度匹敵</p><p> m_search.Replace(_T(" "), _T("%"));</p><p> s
29、etDrug.m_strFilter = _T("name like '%");</p><p> setDrug.m_strFilter += m_search;</p><p> setDrug.m_strFilter += _T("%'"); </p><p> setDrug.m_strFilte
30、r += _T(" or ");</p><p> setDrug.m_strFilter += _T("code like '%");</p><p> setDrug.m_strFilter += m_search;</p><p> setDrug.m_strFilter += _T("%'
31、;"); </p><p> setDrug.m_strFilter += _T(" or ");</p><p> setDrug.m_strFilter += _T("efficacy like '%");</p><p> setDrug.m_strFilter += m_search;</
32、p><p> setDrug.m_strFilter += _T("%'"); </p><p> setDrug.m_strFilter += _T(" or ");</p><p> setDrug.m_strFilter += _T("ingredient like '%");<
33、;/p><p> setDrug.m_strFilter += m_search;</p><p> setDrug.m_strFilter += _T("%'"); </p><p> if (!setDrug.Open())</p><p> MessageBox(_T("連接數據庫時錯誤&quo
34、t;), _T("提示"), MB_OK);</p><p> m_list.DeleteAllItems();</p><p> if(setDrug.IsEOF()) </p><p> MessageBox(_T("無庫存信息"), </p><
35、;p> _T("提示"), MB_OK);</p><p><b> else</b></p><p><b> {</b></p><p> CString str;</p><p> for(int i=0; !setDrug.IsEOF();i++,setD
36、rug.MoveNext())</p><p><b> {</b></p><p> setDrug.m_code.TrimRight();</p><p> m_list.InsertItem(i, setDrug.m_code);</p><p> setDrug.m_name.TrimRight();&l
37、t;/p><p> m_list.SetItemText(i, 1, setDrug.m_name);</p><p> setDrug.m_efficacy.TrimRight();</p><p> m_list.SetItemText(i, 2, setDrug.m_efficacy);</p><p> str.Format(_T
38、("%.2f"), setDrug.m_selPrice);</p><p> m_list.SetItemText(i, 3, str);</p><p><b> }</b></p><p><b> }</b></p><p> setDrug.Close();&l
39、t;/p><p> GetDlgItem(IDE_BEGIN_SEARCH)->SetFocus();</p><p> SendDlgItemMessage(IDE_BEGIN_SEARCH, EM_SETSEL, 0, -1);</p><p> // 把搜索框文字選中方便下次操作</p><p><b> }<
40、/b></p><p><b> 出售藥品</b></p><p> BOOL CSellDlg::OnInitDialog()</p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p> //
41、TODO: 在此添加額外的初始化</p><p> CDtlDrugSet setDtl;</p><p> setDtl.m_strFilter = m_csOp;</p><p> if (!setDtl.Open())</p><p> MessageBox(_T("連接數據庫時錯誤"), _T("
42、;提示"), MB_OK);</p><p> setDtl.m_code.TrimRight();</p><p> m_code = setDtl.m_code;</p><p> setDtl.m_name.TrimRight();</p><p> m_name = setDtl.m_name;</p>
43、<p> setDtl.m_specification.TrimRight();</p><p> m_specification = setDtl.m_specification;</p><p> setDtl.m_efficacy.TrimRight();</p><p> m_efficacy = setDtl.m_efficacy;&l
44、t;/p><p> setDtl.m_ingredient.TrimRight();</p><p> m_ingredient = setDtl.m_ingredient;</p><p> setDtl.m_dosage.TrimRight();</p><p> m_dosage = setDtl.m_dosage;</p&g
45、t;<p> m_selPrice = setDtl.m_selPrice;</p><p> m_counts = setDtl.m_counts;</p><p> setDtl.Close();</p><p> UpdateData(FALSE);</p><p> return TRUE; </p>
46、;<p><b> }</b></p><p> void CSellDlg::OnEnUpdateSellNum()</p><p><b> {</b></p><p> UpdateData(TRUE);</p><p> if (m_num > (UINT)m_
47、counts)</p><p><b> {</b></p><p> MessageBox(_T("庫存不足"), _T("提示"), MB_OK);</p><p> m_num = 0;</p><p> m_totalPrice = m_selPrice * m_n
48、um;</p><p> UpdateData(FALSE);</p><p> SendDlgItemMessage(IDE_SELL_NUM, EM_SETSEL, 0, -1);</p><p><b> return;</b></p><p><b> }</b></p>
49、<p> m_totalPrice = m_selPrice * m_num;</p><p> CString tcs;</p><p> GetDlgItem(IDE_SELL_NUM)->GetWindowText(tcs);</p><p> if (tcs == _T(""))// 上下一大堆只為實現把編
50、輯框內容全選,以便操作員使用</p><p><b> {</b></p><p> m_num = 0;</p><p> UpdateData(FALSE);</p><p> GetDlgItem(IDE_SELL_NUM)->SetFocus();</p><p> Sen
51、dDlgItemMessage(IDE_SELL_NUM, EM_SETSEL, 0, -1);</p><p><b> return;</b></p><p><b> }</b></p><p> UpdateData(FALSE);</p><p><b> }</b
52、></p><p> void CSellDlg::OnBnClickedOk()</p><p><b> {</b></p><p> // TODO: 在此添加控件通知處理程序代碼</p><p> CString cs;</p><p> cs.Format(_T(&quo
53、t;《%s》售出%d 剩余%d"), m_name, m_num, m_counts-m_num);</p><p> if (IDOK != MessageBox(cs, _T("提示"),MB_OKCANCEL))</p><p><b> {</b></p><p> GetDlgItem(IDE_SE
54、LL_NUM)->SetFocus();</p><p> SendDlgItemMessage(IDE_SELL_NUM, EM_SETSEL, 0, -1);</p><p><b> return;</b></p><p><b> }</b></p><p> CDatabas
55、e db;</p><p> if (!db.Open(_T("醫(yī)藥進銷存數據庫")))</p><p> MessageBox(_T("連接數據庫時錯誤"), _T("提示"), MB_OK);</p><p> UpdateData(TRUE);</p><p> cs.
56、Format(_T("update 庫存量set counts='%d' where code='%s'"),</p><p> m_counts-m_num, m_code);</p><p> db.ExecuteSQL(cs);</p><p> db.Close();</p><p
57、> if (m_num > 0)</p><p> AddSellRecord();</p><p><b> OnOK();</b></p><p><b> }</b></p><p><b> // 添加銷售記錄</b></p><
58、;p> extern CString login_ID;</p><p> void CSellDlg::AddSellRecord()</p><p><b> {</b></p><p> CDatabase db;</p><p> if (!db.Open(_T("醫(yī)藥進銷存數據庫&qu
59、ot;)))</p><p> MessageBox(_T("連接數據庫時錯誤"), _T("提示"), MB_OK);</p><p> COleDateTime date;</p><p> date = COleDateTime::GetCurrentTime();</p><p> CS
60、tring time;</p><p> time.Format(_T("%d-%d-%d %d:%d:%d"), </p><p> date.GetYear(), date.GetMonth(), date.GetDay(),</p><p> date.GetHour(), date.GetMinute(), date.GetSeco
61、nd());</p><p> //MessageBox(time);</p><p> CString cs;</p><p> UpdateData(TRUE);</p><p> //MessageBox(login_ID);</p><p> cs.Format(_T("insert int
62、o 銷售記錄values('%s', '%s', '%d', '%.2f', '%s')"),</p><p> time, m_code, m_num, m_totalPrice, login_ID);</p><p> db.ExecuteSQL(cs);</p><p&g
63、t; db.Close();</p><p><b> }</b></p><p><b> 更新藥品</b></p><p> void CUpdateDlg::OnEnUpdateUpdateSearch()</p><p><b> {</b></p>
64、;<p> UpdateData(TRUE);</p><p> CDtlDrugSet setDtl;</p><p> setDtl.m_strFilter = _T("code like '%");</p><p> setDtl.m_strFilter += m_search;</p><
65、p> setDtl.m_strFilter += _T("%'");</p><p> if (!setDtl.Open())</p><p> MessageBox(_T("連接數據庫時錯誤"), _T("提示"), MB_OK);</p><p> if (!setDtl.IsEO
66、F() && m_search != _T(""))// 因為是模糊搜索所以搜索框不能為空</p><p><b> {</b></p><p> setDtl.m_code.TrimRight();</p><p> m_code = setDtl.m_code;</p><p&
67、gt; setDtl.m_name.TrimRight();</p><p> m_name = setDtl.m_name;</p><p> setDtl.m_specification.TrimRight();</p><p> m_specification = setDtl.m_specification;</p><p>
68、 setDtl.m_efficacy.TrimRight();</p><p> m_efficacy = setDtl.m_efficacy;</p><p> setDtl.m_ingredient.TrimRight();</p><p> m_ingredient = setDtl.m_ingredient;</p><p>
69、 setDtl.m_dosage.TrimRight();</p><p> m_dosage = setDtl.m_dosage;</p><p> m_selPrice = setDtl.m_selPrice;</p><p> m_counts = setDtl.m_counts;</p><p> m_ifUpdate =
70、 TRUE;// 數據庫中有數據</p><p> m_tmpCounts = m_counts;// 保存原有的信息</p><p> m_tmpPrice = m_selPrice;</p><p><b> }</b></p><p><b> else</b></p>
71、;<p><b> {</b></p><p> m_code = _T("");</p><p> m_name = _T("");</p><p> m_specification = _T("");</p><p> m_effic
72、acy = _T("");</p><p> m_ingredient = _T("");</p><p> m_dosage = _T("");</p><p> m_selPrice = 0;</p><p> m_tmpPrice = 0;</p><
73、;p> m_counts = 0;</p><p> m_tmpCounts = 0;</p><p> m_num = _T("");</p><p> m_ifUpdate = FALSE;// 數據庫中無此文號</p><p> UpdateData(FALSE);</p><
74、p><b> }</b></p><p> setDtl.Close();</p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> void CUpdateDlg::OnBnClickedOk()</p><
75、p><b> {</b></p><p> if (m_search == _T("") || m_search == _T("批準文號"))</p><p><b> {</b></p><p> if (IDOK != MessageBox(_T("\n
76、 無更新!\n"), _T("提示"),MB_OKCANCEL))</p><p><b> {</b></p><p> GetDlgItem(IDE_UPDATE_SEARCH)->SetFocus();</p><p> SendDlgItemMessage(IDE_UPDATE_SE
77、ARCH, EM_SETSEL, 0, -1);</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><
78、;p><b> //OnOK();</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> CString cs;</p><
79、;p> UpdateData(TRUE);</p><p> if (m_ifUpdate)// 如果是更新的信息則先刪除此條數據庫再加入</p><p><b> {</b></p><p> cs.Format(_T("原文號“%s”新文號“%s”\n\n《%s》更新數量%s 更新后庫存%d\n\n原價%.2f
80、現價%.2f"), </p><p> m_code, m_newCode, m_name, m_num, m_counts, m_tmpPrice, m_selPrice);</p><p> if (IDOK != MessageBox(cs, _T("提示"),MB_OKCANCEL))</p><p><b>
81、{</b></p><p> GetDlgItem(IDE_UPDATE_NUM)->SetFocus();</p><p> SendDlgItemMessage(IDE_UPDATE_NUM, EM_SETSEL, 0, -1);</p><p><b> return;</b></p><p&g
82、t;<b> }</b></p><p> CDatabase db;</p><p> if (!db.Open(_T("醫(yī)藥進銷存數據庫")))</p><p> MessageBox(_T("連接數據庫時錯誤"), _T("提示"), MB_OK);</p>
83、<p> cs.Format(_T("delete from 庫存量where code = '%s'"),</p><p><b> m_code);</b></p><p> db.ExecuteSQL(cs);</p><p> CString m_tmpCs = m_code;/
84、/ 臨時保留m_code 信息,下面修改藥品信息還會用到</p><p> if (m_newCode!=_T("修改新文號") && m_newCode!=_T(""))</p><p><b> {</b></p><p> m_code = m_newCode;</p&g
85、t;<p><b> }</b></p><p> cs.Format(_T("insert into 庫存量values('%s', '%d')"),</p><p> m_code, m_counts);</p><p> db.ExecuteSQL(cs);<
86、/p><p> m_code = m_tmpCs;</p><p> cs.Format(_T("delete from 藥品信息where code = '%s'"),</p><p><b> m_code);</b></p><p> db.ExecuteSQL(cs);&l
87、t;/p><p> if (m_newCode!=_T("修改新文號") && m_newCode!=_T(""))</p><p> m_code = m_newCode;</p><p> cs.Format(_T("insert into 藥品信息values('%s',
88、39;%s', '%s', '%s', '%s', '%s', '%.2f')"),</p><p> m_code, m_name, m_specification, m_efficacy, m_ingredient, m_dosage, m_selPrice);</p><p> db
89、.ExecuteSQL(cs);</p><p> // m_code = m_tmpCs; // 這里不能回復m_code 如果已經更新則已新編號加入更新記錄,在下面</p><p> db.Close();</p><p><b> }</b></p><p><b> else </b>
90、;</p><p><b> {</b></p><p> cs.Format(_T("添加新藥品《%s》%s 件更新后庫存%d\n\n報價%.2f 元"), </p><p> m_name, m_num, m_counts, m_selPrice);</p><p> if (IDOK !
91、= MessageBox(cs, _T("請確保文號正確"),MB_OKCANCEL))</p><p><b> {</b></p><p> GetDlgItem(IDE_UPDATE_NUM)->SetFocus();</p><p> SendDlgItemMessage(IDE_UPDATE_NUM,
92、EM_SETSEL, 0, -1);</p><p><b> return;</b></p><p><b> }</b></p><p> CDatabase db;</p><p> if (!db.Open(_T("醫(yī)藥進銷存數據庫")))</p>
93、<p> MessageBox(_T("連接數據庫時錯誤"), _T("提示"), MB_OK);</p><p> // 要注意這里m_search 為搜索框的文號,code為搜索框后面的文號,添加新藥品必須為搜索框內容</p><p> cs.Format(_T("insert into 藥品信息values('
94、%s', '%s', '%s', '%s', '%s', '%s', '%.2f')"),</p><p> m_search, m_name, m_specification, m_efficacy, m_ingredient, m_dosage, m_selPrice);</p>
95、<p> db.ExecuteSQL(cs);</p><p> cs.Format(_T("insert into 庫存量values('%s', '%d')"),</p><p> m_search, m_counts);</p><p> db.ExecuteSQL(cs);</p&g
96、t;<p> db.Close();</p><p><b> }</b></p><p> // 上面已經判定是否真的更新,這里加上反而會出現提示不符</p><p> AddUpdateRecord();</p><p> MessageBox(_T("更新成功"), _T
97、("提示"), MB_OK);</p><p> // 更新完后用戶有可能繼續(xù)更新為了用戶方便重新初始化</p><p> m_search = _T("");</p><p> m_code = _T("");</p><p> m_name = _T("&quo
98、t;);</p><p> m_specification = _T("");</p><p> m_efficacy = _T("");</p><p> m_ingredient = _T("");</p><p> m_dosage = _T("")
99、;</p><p> m_selPrice = 0;</p><p> m_tmpPrice = 0;</p><p> m_counts = 0;</p><p> m_tmpCounts = 0;</p><p> m_num = _T("");</p><p>
100、; m_newCode = _T("修改新文號");</p><p> m_ifUpdate = FALSE;// 數據庫中無此文號</p><p> UpdateData(FALSE);</p><p> GetDlgItem(IDE_UPDATE_SEARCH)->SetFocus();</p><p&g
101、t; SendDlgItemMessage(IDE_UPDATE_SEARCH, EM_SETSEL, 0, -1);</p><p><b> }</b></p><p> extern CString login_ID;</p><p> void CUpdateDlg::AddUpdateRecord()</p>&
102、lt;p><b> {</b></p><p> CDatabase db;</p><p> if (!db.Open(_T("醫(yī)藥進銷存數據庫")))</p><p> MessageBox(_T("連接數據庫時錯誤"), _T("提示"), MB_OK);</
103、p><p> COleDateTime date;</p><p> date = COleDateTime::GetCurrentTime();</p><p> CString time;</p><p> time.Format(_T("%d-%d-%d %d:%d:%d"), </p><p
104、> date.GetYear(), date.GetMonth(), date.GetDay(),</p><p> date.GetHour(), date.GetMinute(), date.GetSecond());</p><p> //MessageBox(time);</p><p> CString cs;</p><
105、p> //UpdateData(TRUE);</p><p> // 判斷是修改還是新增藥品</p><p> if (m_ifUpdate)</p><p><b> {</b></p><p> cs.Format(_T("insert into 更新信息values('%s'
106、;, '%s', '%d', '%d', '%.2f', '%s', '修')"),</p><p> time, m_code, m_tmpNum, m_counts, m_selPrice, login_ID);</p><p><b> }</b><
107、;/p><p><b> else</b></p><p><b> {</b></p><p> cs.Format(_T("insert into 更新信息values('%s', '%s', '%d', '%d', '%.2f'
108、;, '%s', '新')"),</p><p> time, m_search, m_tmpNum, m_counts, m_selPrice, login_ID);</p><p><b> }</b></p><p> db.ExecuteSQL(cs);</p><p&
109、gt; db.Close();</p><p><b> }</b></p><p> void CUpdateDlg::OnEnUpdateUpdateNum()</p><p><b> {</b></p><p> // TODO: 在此添加控件通知處理程序代碼</p>
110、<p> UpdateData(TRUE);</p><p> m_tmpNum = 0;</p><p> m_tmpNum = _wtoi(m_num);// 使用的UNICODE字符</p><p> // 庫存永遠不能為負,所以下面一段防止庫存出現負數情況</p><p> if (m_tmpNum+m_tm
111、pCounts < 0) </p><p><b> {</b></p><p> m_num = _T("");</p><p> m_counts = m_tmpCounts;</p><p> UpdateData(FALSE);</p><p><b
112、> return;</b></p><p><b> }</b></p><p> m_counts = m_tmpCounts;</p><p> m_counts += m_tmpNum;</p><p> UpdateData(FALSE);</p><p>&l
113、t;b> }</b></p><p><b> 過期藥品登記</b></p><p> void CPastDrugDlg::OnBnClickedOk()</p><p><b> {</b></p><p> // TODO: 在此添加控件通知處理程序代碼</p
114、><p> CString cs;</p><p> cs.Format(_T("處理《%s》%d件剩余%d"), m_name, m_num, m_counts-m_num);</p><p> if (IDOK != MessageBox(cs, _T("提示"),MB_OKCANCEL))</p><
115、;p><b> {</b></p><p> GetDlgItem(IDE_SELL_NUM)->SetFocus();</p><p> SendDlgItemMessage(IDE_SELL_NUM, EM_SETSEL, 0, -1);</p><p><b> return;</b></p
116、><p><b> }</b></p><p> CDatabase db;</p><p> if (!db.Open(_T("醫(yī)藥進銷存數據庫")))</p><p> UpdateData(TRUE);</p><p> cs.Format(_T("upd
117、ate 庫存量set counts='%d' where code='%s'"),</p><p> m_counts-m_num, m_code);</p><p> db.ExecuteSQL(cs);</p><p> db.Close();</p><p> if (m_num >
118、; 0)</p><p><b> {</b></p><p> AddSellRecord();</p><p> MessageBox(_T("處理成功"), _T("提示"), MB_OK);</p><p> // 更新完后用戶有可能繼續(xù)更新為了用戶方便重新初始化&
119、lt;/p><p> m_search = _T("");</p><p> m_code = _T("");</p><p> m_name = _T("");</p><p> m_specification = _T("");</p>&l
120、t;p> m_efficacy = _T("");</p><p> m_ingredient = _T("");</p><p> m_dosage = _T("");</p><p> m_selPrice = 0;</p><p> m_counts = 0;&
121、lt;/p><p> m_mark = _T("");</p><p> m_num = 0;</p><p> m_ifUpdate = FALSE;// 數據庫中無此文號</p><p> UpdateData(FALSE);</p><p> GetDlgItem(IDE_PAST_
122、SEARCH)->SetFocus();</p><p> SendDlgItemMessage(IDE_PAST_SEARCH, EM_SETSEL, 0, -1);</p><p><b> }</b></p><p><b> else</b></p><p><b>
123、 {</b></p><p> MessageBox(_T("無處理"), _T("提示"), MB_OK);</p><p> GetDlgItem(IDE_PAST_NUM)->SetFocus();</p><p> SendDlgItemMessage(IDE_PAST_NUM, EM_SETS
124、EL, 0, -1);</p><p><b> }</b></p><p><b> //OnOK();</b></p><p><b> }</b></p><p> extern CString login_ID;</p><p> vo
125、id CPastDrugDlg::AddSellRecord()</p><p><b> {</b></p><p> UpdateData(TRUE);</p><p> CDatabase db;</p><p> if (!db.Open(_T("醫(yī)藥進銷存數據庫")))</p&
126、gt;<p> MessageBox(_T("連接數據庫時錯誤"), _T("提示"), MB_OK);</p><p> COleDateTime date;</p><p> date = COleDateTime::GetCurrentTime();</p><p> CString time, p
127、Time;// 現在時間和過期時間</p><p> time.Format(_T("%d-%d-%d %d:%d:%d"), </p><p> date.GetYear(), date.GetMonth(), date.GetDay(),</p><p> date.GetHour(), date.GetMinute(), date.
128、GetSecond());</p><p> pTime.Format(_T("%d-%d-%d %d:%d:%d"), </p><p> m_pastTime.GetYear(), m_pastTime.GetMonth(), m_pastTime.GetDay(),</p><p> m_pastTime.GetHour(), m_p
129、astTime.GetMinute(), m_pastTime.GetSecond());</p><p> CString cs;</p><p> cs.Format(_T("insert into 過期藥品處理values('%s', '%s', '%s', '%d', '%.2f',
130、39;%s', '%s')"),</p><p> time, m_code, pTime, m_num, m_totalPrice, m_mark, login_ID);</p><p> db.ExecuteSQL(cs);</p><p> db.Close();</p><p><b>
131、; }</b></p><p><b> 龍毅</b></p><p><b> 銷售記錄</b></p><p> BOOL CRecordSellDlg::OnInitDialog()</p><p><b> {</b></p><
132、;p> CDialog::OnInitDialog();</p><p> // TODO: 在此添加額外的初始化</p><p> m_list.InsertColumn(0, _T("銷售時間"), LVCFMT_CENTER, 105);</p><p> m_list.InsertColumn(1, _T("批準
133、文號"), LVCFMT_CENTER, 80);</p><p> m_list.InsertColumn(2, _T("藥品名稱"), LVCFMT_CENTER, 110);</p><p> m_list.InsertColumn(3, _T("藥品規(guī)格"), LVCFMT_CENTER, 100);</p>&l
134、t;p> m_list.InsertColumn(4, _T("銷售數量"), LVCFMT_CENTER, 65);</p><p> m_list.InsertColumn(5, _T("銷售金額"), LVCFMT_CENTER, 65);</p><p> m_list.InsertColumn(6, _T("銷售員ID
135、"), LVCFMT_CENTER, 65);</p><p> //m_list.SetBkColor(RGB(26, 231, 151));</p><p> //m_list.SetTextBkColor(RGB(26, 231, 151));</p><p> m_list.SetExtendedStyle(LVS_EX_GRIDLINES)
136、;</p><p> OnBnClickedSellAll();</p><p> GetDlgItem(IDE_SELL)->SetFocus();</p><p> SendDlgItemMessage(IDE_SELL, EM_SETSEL, 0, -1);</p><p> return TRUE; // return
137、 TRUE unless you set the focus to a control</p><p> // 異常: OCX 屬性頁應返回FALSE</p><p><b> }</b></p><p> void CRecordSellDlg::ListTheInfo()</p><p><b>
138、{</b></p><p> // 采用時間降序排列,更貼心</p><p> set.m_strSort.Format(_T("sellTime desc"));</p><p> if (!set.Open())</p><p> MessageBox(_T("連接數據庫時錯誤"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數據庫課程設計--醫(yī)院藥品進銷存系統(tǒng)
- 藥品進銷存管理系統(tǒng)數據庫課程設計
- 進銷存管理數據庫課程設計
- 超市進銷存系統(tǒng)課程設計報告
- 網站進銷存數據庫課程設計報告
- 數據庫課程設計--商品進銷存管理系統(tǒng)
- 數據庫進銷存管理系統(tǒng)設計
- 數據庫課程設計--進銷存管理系統(tǒng)需求分析與設計
- 藥品進銷存系統(tǒng)數據流程圖.doc
- 數據庫原理與應用課程設計--商店進銷存管理系統(tǒng)
- 某家具城進銷存管理系統(tǒng)數據庫課程設計
- 數據庫課程設計--- 百貨進銷存信息管理系統(tǒng)
- 數據庫應用技術課程設計--超市進銷存管理
- 畢業(yè)設計---基于vb系統(tǒng)藥品進銷存系統(tǒng)設計
- cs企業(yè)進銷存系統(tǒng)
- 【數據庫課程設計】基于javahibernate、spring和sqlserver2000的藥品進銷存管理系統(tǒng)
- 課程設計---vs2008+microsoft sql server進銷存系統(tǒng)設計
- 酒店進銷存系統(tǒng)——論文
- jsp商品進銷存系統(tǒng)
- 數據庫系統(tǒng)課程設計--工廠零件進銷存及工程管理系統(tǒng)
評論
0/150
提交評論