版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)庫實驗報告醫(yī)院綜合信息管理系統(tǒng)專業(yè)班級組長組員指引教師目錄TOC\o"1-2"\h\z\u一、 需求分析: 21.1人員信息管理系統(tǒng) 21.2門診信息管理系統(tǒng) 31.3收費信息管理系統(tǒng) 3二、系統(tǒng)分析: 32.1系統(tǒng)功能簡介 32.2功能模塊 3三、數(shù)據(jù)庫設計: 43.1E-R圖: 43.2數(shù)據(jù)字典: 6四、前臺設計: 84.1.醫(yī)生信息管理: 84.2.病人信息管理: 84.3.藥物信息管理: 94.4.診斷界面: 104.5.處方界面: 104.6.病人處方查詢: 104.7.收費信息管理: 11五、程序調(diào)試成果: 12六、總結: 22內(nèi)容提綱:本系統(tǒng)是一種基于MYSQL而建立醫(yī)院綜合信息管理系統(tǒng)。用MicrosoftVisualStudio結合MYSQL開發(fā)了3個模塊。涉及有人員信息管理,門診信息管理,收費信息管理。其中人員信息管理其中有醫(yī)生信息管理,病人信息管理和藥物信息管理。門診信息管理其中則具有就診信息管理,病人處方管理。這3模塊基本實現(xiàn)了醫(yī)院綜合信息管理系統(tǒng)需求。【核心詞】:MicrosoftVisualStudio,MYSQL,人員信息管理,門診信息管理,收費信息管理需求分析:整個醫(yī)院綜合信息管理系統(tǒng)可分為三個子系統(tǒng):人員信息管理系統(tǒng),門診信息管理系統(tǒng),收費信息管理系統(tǒng)。1.1人員信息管理系統(tǒng)人員信息管理即對于人和物品管理,人則包括醫(yī)生及醫(yī)護人員,就診病人,尚有藥物等。咱們需要對她們基本信息進行記錄,并且還要具備增長,刪除,修改,查詢等基本功能,因此我建立了一種基本信息管理模塊來專門解決。我也在數(shù)據(jù)庫中相應了三張表:doctor,patient,durg以便對人員信息管理信息進行存儲。1.2門診信息管理系統(tǒng)對于就診信息管理,病人看病后會產(chǎn)生新數(shù)據(jù),例如醫(yī)生對病人診斷信息,以及藥物處方信息。而與其相應則是我做門診信息管理,其中我做了兩個窗口,一種是診斷信息窗口,重要實現(xiàn)對診斷信息儲存;另一種是處方信息窗口,有增長、刪除、修改藥物等功能。然后我另做了一種查詢窗口,以便病人查詢自己處方記錄。相應數(shù)據(jù)庫,我做了兩張表:diagnosis,prescription。1.3收費信息管理系統(tǒng)對于收費信息管理,病人拿處處方后,就會取藥,付款。則我需要對其總價進行計算,再者就是對于藥物庫存進行修改。于是相應規(guī)定我做了一種收費前臺。雖然在數(shù)據(jù)庫中沒有相應相應表??墒撬僮髦匾菍rescription讀取,以及對durg庫存修改。二、系統(tǒng)分析:整個醫(yī)院綜合信息管理系統(tǒng)可分為三個子系統(tǒng):人員信息管理系統(tǒng),門診信息管理系統(tǒng),收費信息管理系統(tǒng)。2.1系統(tǒng)功能簡介2.1.1人員信息管理系統(tǒng)功能對醫(yī)生、病人、藥物基本信息進行增長,刪除,修改,查詢等基本功能2.1.2門診信息管理系統(tǒng)功能對就診信息存儲功能和對處方信息進行增長、刪除、修改藥物等基本功能3.2.3收費信息管理系統(tǒng)對醫(yī)療費用進行總和計算功能和對藥物庫存進行修改功能2.2功能模塊系統(tǒng)重要功能模塊圖如下:醫(yī)院綜合信息管理系統(tǒng)醫(yī)院綜合信息管理系統(tǒng)人員信息管理系統(tǒng)門診信息管理系統(tǒng)收費信息管理系統(tǒng)醫(yī)生信息管理病人信息管理藥物信息管理就診信息管理病人處方管理收費信息管理藥物庫存管理三、數(shù)據(jù)庫設計:3.1E-R圖:3.1.1醫(yī)生信息doctorE-R圖namenamesexageemploynophonedoctor3.1.2病人信息patientE-R圖namenamesexagepatientnonophonepatient3.1.3藥物信息drugE-R圖drugdrugdrugnononamenopricenoinventoryno3.1.4診斷信息diagnosisE-R圖diagnosisdiagnosisdiagnosisnononoemploynonopatientnonoconditionno3.1.5處方信息prescriptionE-Rprescriptionprescriptionprescriptionnononopatientnononamenotimenoaccount3.1.6實體間重要關系E-R圖DDoctorPaitientDurgDiagnosisPrescriptionN11111113.2數(shù)據(jù)字典:表1:doctor:表2:patient表3:durg表4:diagnosis表5:prescription四、前臺設計:4.1.醫(yī)生信息管理:4.2.病人信息管理:4.3.藥物信息管理:4.4.診斷界面:4.5.處方界面:4.6.病人處方查詢:4.7.收費信息管理:五、程序調(diào)試成果:1.主界面:2.添加功能:實當代碼:voidCEmployeeDlg::OnBnClickedOk(){ //TODO:在此添加控件告知解決程序代碼 //CDialogEx::OnOK(); UpdateData(true); if(m_number.IsEmpty()) { MessageBox(CString("編號不能為空”)); return; } if(m_name.IsEmpty()) { MessageBox(CString("名稱不能為空!")); return; } if(m_idcard.IsEmpty()) { MessageBox(CString("省份證號碼不能為空!")); return; } CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); _bstr_tsql; sql="select*fromdoctor"; _RecordsetPtrm_pRecordset;m_pRecordset=m_AdoConn.GetRecordSet(sql); try { m_pRecordset->AddNew();//添加新行 m_pRecordset->PutCollect("employeeno",(_bstr_t)m_number); m_pRecordset->PutCollect("name",(_bstr_t)m_name); m_pRecordset->PutCollect("sex",(_bstr_t)m_sex); m_pRecordset->PutCollect("age",(_bstr_t)m_age); m_pRecordset->PutCollect("native",(_bstr_t)m_native); m_pRecordset->PutCollect("nation",(_bstr_t)m_nation); m_pRecordset->PutCollect("office",(_bstr_t)m_office); m_pRecordset->PutCollect("position",(_bstr_t)m_position); m_pRecordset->PutCollect("idcard",(_bstr_t)m_idcard); m_pRecordset->PutCollect("phone",(_bstr_t)m_phone); m_pRecordset->Update();//更新數(shù)據(jù)庫 m_AdoConn.ExitConnect();//斷開數(shù)據(jù)庫連接 } catch(...) { MessageBox(CString("操作失敗")); return; } MessageBox(CString("保存成功")); m_grid.DeleteAllItems();//刪|除grid中本來數(shù)據(jù) CStringstr; str="select*fromdoctor"; AddToGrid(str);//重新遍歷}2.修改功能:實當代碼:voidCEmployeeDlg::OnBnClickedChange(){ //TODO:在此添加控件告知解決程序代碼 UpdateData(true); CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); CStringtempSql; tempSql.Format(CString("UPDATE`mydb`.`doctor`SET`name`='%s',`sex`='%s',`age`='%s',`native`='%s',`nation`='%s',`office`='%s',`position`='%s',`idcard`='%s',`phone`='%s'WHERE`employeeno`='%s'"),m_name,m_sex,m_age,m_native,m_nation,m_office,m_position,m_idcard,m_phone,m_number); m_AdoConn.ExecuteSQL((_bstr_t)tempSql); m_AdoConn.ExitConnect(); MessageBox(CString("修改成功.")); m_grid.DeleteAllItems();//刪除grid中本來數(shù)據(jù) CStringstr; str="select*fromdoctor"; AddToGrid(str);//重新遍歷}3.刪除功能:代碼實現(xiàn):voidCEmployeeDlg::OnBnClickedDelete(){ //TODO:在此添加控件告知解決程序代碼 UpdateData(true); CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); CStringtempSql; tempSql.Format(CString("deletefromdoctorwhereemployeeno='%s'"),m_number); CStringtenpstr; tenpstr.Format(CString("與否要刪除%s記錄"),m_name); if(MessageBox(tenpstr,CString("提示"),MB_OKCANCEL)==IDOK) { m_AdoConn.ExecuteSQL((_bstr_t)tempSql); m_AdoConn.ExitConnect(); MessageBox(CString("刪除成功.")); m_grid.DeleteAllItems();//刪除grid中本來數(shù)據(jù) CStringstr; str="select*fromdoctor"; AddToGrid(str);//重新遍歷 }}4.查詢功能:實當代碼:voidCEmployeeDlg::OnBnClickedSelect(){ //TODO:在此添加控件告知解決程序代碼 m_grid.DeleteAllItems(); UpdateData(true); CStringstr1,str2; intnum1,num2; num1=m_combo.GetCurSel(); if(0==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2=CString("select*fromdoctorwhereemployeenolike")+CString("'")+str1+CString("'"); AddToGrid(str2);//遍歷功能信息記錄 } if(1==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2=CString("select*fromdoctorwherenamelike")+CString("'")+str1+CString("'"); AddToGrid(str2);//遍歷功能信息記錄 } if(2==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2=CString("select*fromdoctorwhereofficelike")+CString("'")+str1+CString("'"); AddToGrid(str2);//遍歷功能信息記錄 } if(3==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2=CString("select*fromdoctorwherepositionlike")+CString("'")+str1+CString("'"); AddToGrid(str2);//遍歷功能信息記錄 } if(4==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2=CString("select*fromdoctorwhereidcardlike")+CString("'")+str1+CString("'"); AddToGrid(str2);//遍歷功能信息記錄 } if(5==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2="select*fromdoctororderbyemployeenoDESC"; AddToGrid(str2);//遍歷功能信息記錄 }}5.診斷界面:6.處方界面:7.處方查詢:8.付款界面:9.修改庫存:對比圖:付款前:付款后:六、總結:通過這次數(shù)據(jù)庫大作業(yè),咱們熟悉了vs數(shù)據(jù)庫ADO編程。對于它添加,修改,刪除環(huán)節(jié)均有了較大理解。在本次作業(yè)當中遇到兩大問題。一是:數(shù)據(jù)庫連接問題,本來開始準備用access做后臺,可是不懂得為什么我電腦始終連接不上,于是改用了MYAQL連接。二是:在是使用記錄集指針問題_RecordsetPtrm_pRecordset,在實現(xiàn)添加,刪除,修改,查詢等操作時,只能執(zhí)行一次就浮現(xiàn)指針無效成果。最后發(fā)現(xiàn)是在連接數(shù)據(jù)庫時沒有初始化COM,因此導致有指針無效成果。然后,最讓我開心是,是實現(xiàn)總價計算。我是用兩個數(shù)組,amount[20],和price[20]記住數(shù)量和單價,運用for循環(huán)計算總價。然后,就是在vs中字符之間轉換也是咱們應當注意問題??傊?,這次實驗,讓咱們學到了許多課本上學不到知識,也鍛煉了咱們思考問題,解決問題能力。附錄:醫(yī)院綜合信息管理系統(tǒng)源代碼//ADOConn.cpp:實現(xiàn)文獻//#include"stdafx.h"#include"hospital.h"#include"ADOConn.h"http://CADOConnCADOConn::CADOConn(){}CADOConn::~CADOConn(){}//CADOConn成員函數(shù)boolCADOConn::OnInitADOConn(void){ HRESULThr; ::CoInitialize(NULL); try { hr=m_pDBConnection.CreateInstance("ADODB.Connection"); if(SUCCEEDED(hr)) { m_pDBConnection->ConnectionTimeout=3; //設立連接字符串 _bstr_tstrConnection="Driver={MySQLODBC5.2UnicodeDriver};SERVER=127.0.0.1;DATABASE=mydb;UID=root;PASSWORD=123456;PORT=3306"; hr=m_pDBConnection->Open(strConnection,"","",adModeUnknown); } } catch(_com_errore)//捕獲異常 { CStringtemp; temp.Format(CString("連接數(shù)據(jù)庫錯誤信息:%s"),e.ErrorMessage()); ::MessageBox(NULL,temp,CString("提示信息"),NULL); returnfalse; } returnfalse;}//斷開數(shù)據(jù)庫連接voidCADOConn::ExitConnect(void){ if(m_pRecordset!=NULL) m_pRecordset->Close(); m_pDBConnection->Close(); //釋放環(huán)境 ::CoUninitialize();}//獲取記錄集_RecordsetPtr&CADOConn::GetRecordSet(_bstr_tbstrSQL){ try { if(m_pDBConnection==NULL)OnInitADOConn(); m_pRecordset.CreateInstance(__uuidof(Recordset));m_pRecordset->Open(bstrSQL,m_pDBConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); }catch(_com_errore) { CStringtemp; temp.Format(CString("讀取數(shù)據(jù)庫錯誤信息:%s"),e.ErrorMessage()); ::MessageBox(NULL,temp,CString("提示信息"),NULL); } returnm_pRecordset;}//執(zhí)行SQL語句boolCADOConn::ExecuteSQL(_bstr_tbstrSQL){ _variant_tRecordsAffected; try {if(m_pDBConnection==NULL) OnInitADOConn(); m_pDBConnection->Execute(bstrSQL,NULL,adCmdText); returntrue; } catch(_com_errore) { CStringtemp; temp.Format(CString("執(zhí)行SQL語句錯誤信息:%s"),e.Description()); ::MessageBox(NULL,temp,CString("提示信息"),NULL); returnfalse; }}//返回記錄集對象指針SQL執(zhí)行函數(shù)_RecordsetPtrCADOConn::ExcuteSQLObj(_bstr_tbstrSQL){ try {if(m_pDBConnection==NULL) OnInitADOConn();m_pRecordset=m_pDBConnection->Execute(bstrSQL,NULL,adCmdText); } catch(_com_errore) { CStringtemp; m_pRecordset=NULL; temp.Format(CString("執(zhí)行SQL語句錯誤信息:%s"),e.ErrorMessage()); ::MessageBox(NULL,temp,CString("提示信息"),NULL); } returnm_pRecordset;}//PrescriptionDlg.cpp:實現(xiàn)文獻//處方:萬淑妍#include"stdafx.h"#include"hospital.h"#include"PrescriptionDlg.h"#include"afxdialogex.h"#include"ADOConn.h"http://CPrescriptionDlg對話框IMPLEMENT_DYNAMIC(CPrescriptionDlg,CDialogEx)CPrescriptionDlg::CPrescriptionDlg(CWnd*pParent/*=NULL*/) :CDialogEx(CPrescriptionDlg::IDD,pParent){ m_patientno=_T(""); m_amount=_T(""); m_name=_T(""); m_no=0;}CPrescriptionDlg::~CPrescriptionDlg(){}voidCPrescriptionDlg::DoDataExchange(CDataExchange*pDX){ CDialogEx::DoDataExchange(pDX); DDX_Control(pDX,IDC_LIST1,m_grid); DDX_Text(pDX,IDC_PATIENTNO,m_patientno); DDX_Text(pDX,IDC_AMOUNT,m_amount); DDX_Text(pDX,IDC_DURGNAME,m_name); DDX_Control(pDX,IDC_DATETIMEPICKER1,m_time);}BEGIN_MESSAGE_MAP(CPrescriptionDlg,CDialogEx) ON_BN_CLICKED(IDOK,&CPrescriptionDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_CHANGE,&CPrescriptionDlg::OnBnClickedChange) ON_NOTIFY(NM_CLICK,IDC_LIST1,&CPrescriptionDlg::OnNMClickList1) ON_BN_CLICKED(IDC_DELETE,&CPrescriptionDlg::OnBnClickedDelete) ON_BN_CLICKED(IDC_CLEAR,&CPrescriptionDlg::OnBnClickedClear)END_MESSAGE_MAP()//CPrescriptionDlg消息解決程序BOOLCPrescriptionDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); //TODO:在此添加額外初始化 flag=0; returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //異常:OCX屬性頁應返回FALSE}voidCPrescriptionDlg::AddToGrid(CStringstr){ CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); CStringsql; sql.Format(str); _RecordsetPtrm_pRecordset; m_pRecordset=m_AdoConn.GetRecordSet((_bstr_t)sql); while(m_AdoConn.m_pRecordset->adoEOF==0) { m_grid.InsertItem(0,CString("")); m_grid.SetItemText(0,0,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("prescriptionno")); m_grid.SetItemText(0,1,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("patientno")); m_grid.SetItemText(0,2,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("name")); m_grid.SetItemText(0,3,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("amount")); m_grid.SetItemText(0,4,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("time")); m_pRecordset->MoveNext(); } m_AdoConn.ExitConnect(); UpdateData(true);}voidCPrescriptionDlg::OnBnClickedOk(){ //TODO:在此添加控件告知解決程序代碼 //CDialogEx::OnOK(); m_no=1; if(flag==0) { m_grid.SetExtendedStyle(LVS_EX_FLATSB |LVS_EX_FULLROWSELECT |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLICKACTIVATE |LVS_EX_GRIDLINES); m_grid.InsertColumn(0,CString("處方編號"),LVCFMT_LEFT,100,0); m_grid.InsertColumn(1,CString("病人編號"),LVCFMT_LEFT,100,1); m_grid.InsertColumn(2,CString("藥物名稱"),LVCFMT_LEFT,100,2); m_grid.InsertColumn(3,CString("使用數(shù)量"),LVCFMT_LEFT,100,3); m_grid.InsertColumn(4,CString("用藥時間"),LVCFMT_LEFT,100,4); flag=!flag; //自動編號 CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); _bstr_tsql; sql="selectprescriptionnofromprescription"; _RecordsetPtrm_pRecordset; m_pRecordset=m_AdoConn.GetRecordSet((_bstr_t)sql); while(m_AdoConn.m_pRecordset->adoEOF==0) { if(m_no<(int)_ttoi((CString)(char*)(_bstr_t)m_pRecordset->GetCollect("prescriptionno"))) m_no=(int)_ttoi((CString)(char*)(_bstr_t)m_pRecordset->GetCollect("prescriptionno")); m_pRecordset->MoveNext(); } m_AdoConn.ExitConnect(); m_no++; CStringstr,str1; GetDlgItem(IDC_PATIENTNO)->GetWindowText(str1); str=CString("select*fromprescriptionwherepatientnolike")+CString("'")+str1+CString("'"); AddToGrid(str);//遍歷員工信息記錄 } UpdateData(true); if(m_patientno.IsEmpty()) { MessageBox(CString("病人編號不能為空!")); return; } if(m_name.IsEmpty()) { MessageBox(CString("名稱不能為空!")); return; } CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); _bstr_tsql; sql="select*fromprescription"; _RecordsetPtrm_pRecordset;m_pRecordset=m_AdoConn.GetRecordSet(sql); //獲取工作時間 CTimetime; m_time.GetTime(time); COleDateTimeconvert_time; convert_time.SetDate(time.GetYear(),time.GetMonth(),time.GetDay()); try { m_pRecordset->AddNew();//添加新行 m_pRecordset->PutCollect("patientno",(_bstr_t)m_patientno); m_pRecordset->PutCollect("name",(_bstr_t)m_name); m_pRecordset->PutCollect("amount",(_bstr_t)m_amount); m_pRecordset->PutCollect("time",(_variant_t)convert_time); m_pRecordset->PutCollect("prescriptionno",(_bstr_t)m_no); m_pRecordset->Update();//更新數(shù)據(jù)庫 m_AdoConn.ExitConnect();//斷開數(shù)據(jù)庫連接 } catch(...) { MessageBox(CString("操作失敗")); return; } MessageBox(CString("保存成功.")); m_grid.DeleteAllItems();//刪除grid中本來數(shù)據(jù) CStringstr,str1; GetDlgItem(IDC_PATIENTNO)->GetWindowText(str1); str=CString("select*fromprescriptionwherepatientnolike")+CString("'")+str1+CString("'"); AddToGrid(str);//遍歷員工信息記錄}voidCPrescriptionDlg::OnBnClickedChange(){ //TODO:在此添加控件告知解決程序代碼 UpdateData(true); CADOConnm_AdoConn; m_AdoConn.OnInitADOConn();//創(chuàng)立連接 CStringtempSql;//刪除字符類型為CString CStringsextemp; //獲取用藥時間 CTimetime;m_time.GetTime(time); COleDateTimeconvert_time; convert_time.SetDate(time.GetYear(),time.GetMonth(),time.GetDay());CStringtimetemp=convert_time.Format(); tempSql.Format(CString("updatemydb.prescriptionsetname='%s',amount='%s',time='%s'wherename='%s'"),m_patientno,m_amount,timetemp,m_name); m_AdoConn.ExecuteSQL((_bstr_t)tempSql); m_AdoConn.ExitConnect(); MessageBox(CString("修改成功.")); m_grid.DeleteAllItems();//刪除grid中本來數(shù)據(jù) CStringstr; str="select*fromprescription"; AddToGrid(str);//重新遍歷}voidCPrescriptionDlg::OnNMClickList1(NMHDR*pNMHDR,LRESULT*pResult){ LPNMITEMACTIVATEpNMItemActivate=reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); //TODO:在此添加控件告知解決程序代碼 intnItem=0; POSITIONpos=m_grid.GetFirstSelectedItemPosition(); if(pos==NULL) TRACE0("Noitemswereselected!\n"); else { while(pos) { nItem=m_grid.GetNextSelectedItem(pos);//找到被選中行號 TRACE1("Item%dwasselected!\n",nItem); } //讀取被選中行數(shù)據(jù) m_patientno=m_grid.GetItemText(nItem,1); m_name=m_grid.GetItemText(nItem,2); m_amount=m_grid.GetItemText(nItem,3); //解決用藥時間 COleVarianttempTimeStr; CStringtempStr=m_grid.GetItemText(nItem,4); tempTimeStr=tempStr; tempTimeStr.ChangeType(VT_DATE); COleDateTimetempTime; tempTime=tempTimeStr; m_time.SetTime(tempTime); UpdateData(FALSE);//更新對話框 } *pResult=0;}voidCPrescriptionDlg::OnBnClickedDelete(){ //TODO:在此添加控件告知解決程序代碼 UpdateData(true); CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); CStringtempSql; tempSql.Format(CString("deletefromprescriptionwherename='%s'"),m_name); CStringtempstr; tempstr.Format(CString("與否擬定要刪除%s記錄"),m_name); if(MessageBox(tempstr,CString("提示"),MB_OKCANCEL)==IDOK) { m_AdoConn.ExecuteSQL((_bstr_t)tempSql);//執(zhí)行AQL語句,注意改成ADO字符串 m_AdoConn.ExitConnect(); MessageBox(CString("刪除成功.")); m_grid.DeleteAllItems();//刪除grid中本來數(shù)據(jù) CStringstr; str="select*fromprescription"; AddToGrid(str);//重新遍歷 }}voidCPrescriptionDlg::OnBnClickedClear(){ //TODO:在此添加控件告知解決程序代碼 m_amount=_T(""); m_name=_T(""); UpdateData(false);}//PatientDlg.cpp:實現(xiàn)文獻//病人管理:吳婷#include"stdafx.h"#include"hospital.h"#include"PatientDlg.h"#include"afxdialogex.h"#include"ADOConn.h"http://CPatientDlg對話框IMPLEMENT_DYNAMIC(CPatientDlg,CDialogEx)CPatientDlg::CPatientDlg(CWnd*pParent/*=NULL*/) :CDialogEx(CPatientDlg::IDD,pParent){ m_age=_T(""); m_allergy=_T(""); m_content=_T(""); m_idcard=_T(""); m_name=_T(""); m_nation=_T(""); m_native=_T(""); m_phone=_T(""); m_no=_T(""); m_sex=_T("");}CPatientDlg::~CPatientDlg(){}voidCPatientDlg::DoDataExchange(CDataExchange*pDX){ CDialogEx::DoDataExchange(pDX); DDX_Text(pDX,IDC_EDIT_AGE,m_age); DDX_Text(pDX,IDC_EDIT_ALLERGY,m_allergy); DDX_Text(pDX,IDC_EDIT_CONTENT,m_content); DDX_Text(pDX,IDC_EDIT_IDCARD,m_idcard); DDX_Text(pDX,IDC_EDIT_NAME,m_name); DDX_Text(pDX,IDC_EDIT_NATION,m_nation); DDX_Text(pDX,IDC_EDIT_NATIVE,m_native); DDX_Text(pDX,IDC_EDIT_PHONE,m_phone); DDX_Text(pDX,IDC_EDIT_NO,m_no); DDX_Text(pDX,IDC_EDIT_SEX,m_sex); DDX_Control(pDX,IDC_LIST_PATIENT,m_grid); DDX_Control(pDX,IDC_COMBO1,m_combo);}BEGIN_MESSAGE_MAP(CPatientDlg,CDialogEx) ON_BN_CLICKED(IDOK,&CPatientDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_CHANGE,&CPatientDlg::OnBnClickedChange) ON_BN_CLICKED(IDC_DELETE,&CPatientDlg::OnBnClickedDelete) ON_BN_CLICKED(IDC_CLEAR,&CPatientDlg::OnBnClickedClear) ON_BN_CLICKED(IDC_SELECT,&CPatientDlg::OnBnClickedSelect) ON_NOTIFY(NM_CLICK,IDC_LIST_PATIENT,&CPatientDlg::OnNMClickListPatient)END_MESSAGE_MAP()//CPatientDlg消息解決程序BOOLCPatientDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); //TODO:在此添加額外初始化 m_grid.SetExtendedStyle(LVS_EX_FLATSB |LVS_EX_FULLROWSELECT |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLICKACTIVATE |LVS_EX_GRIDLINES); m_grid.InsertColumn(0,CString("病人編號"),LVCFMT_LEFT,100,0); m_grid.InsertColumn(1,CString("姓名"),LVCFMT_LEFT,100,1); m_grid.InsertColumn(2,CString("性別"),LVCFMT_LEFT,100,2); m_grid.InsertColumn(3,CString("年齡"),LVCFMT_LEFT,100,3); m_grid.InsertColumn(4,CString("民族"),LVCFMT_LEFT,100,4); m_grid.InsertColumn(5,CString("籍貫"),LVCFMT_LEFT,100,5); m_grid.InsertColumn(6,CString("身份證號碼"),LVCFMT_LEFT,100,6); m_grid.InsertColumn(7,CString("聯(lián)系電話"),LVCFMT_LEFT,100,7); m_grid.InsertColumn(8,CString("過敏史"),LVCFMT_LEFT,100,8); m_combo.InsertString(0,CString("病人編號")); m_combo.InsertString(1,CString("姓名")); m_combo.InsertString(2,CString("身份證號碼")); m_combo.InsertString(3,CString("所有信息")); m_combo.SetCurSel(3); CStringstr; str="select*frompatient"; AddToGrid(str);//遍歷員工信息記錄 returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //異常:OCX屬性頁應返回FALSE}voidCPatientDlg::AddToGrid(CStringstr){ CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); CStringsql; sql.Format(str); _RecordsetPtrm_pRecordset; m_pRecordset=m_AdoConn.GetRecordSet((_bstr_t)sql); while(m_AdoConn.m_pRecordset->adoEOF==0) { m_grid.InsertItem(0,CString("")); m_grid.SetItemText(0,0,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("patientno")); m_grid.SetItemText(0,1,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("name")); m_grid.SetItemText(0,2,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("sex")); m_grid.SetItemText(0,3,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("age")); m_grid.SetItemText(0,4,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("native")); m_grid.SetItemText(0,5,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("nation")); m_grid.SetItemText(0,6,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("allergy")); m_grid.SetItemText(0,7,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("idcard")); m_grid.SetItemText(0,8,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("phone")); m_pRecordset->MoveNext(); } m_AdoConn.ExitConnect(); UpdateData(true);}voidCPatientDlg::OnBnClickedOk(){ //TODO:在此添加控件告知解決程序代碼 //CDialogEx::OnOK(); UpdateData(true); if(m_no.IsEmpty()) { MessageBox(CString("編號不能為空!")); return; } if(m_name.IsEmpty()) { MessageBox(CString("名稱不能為空!")); return; } if(m_idcard.IsEmpty()) { MessageBox(CString("省份證號碼不能為空!")); return; } CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); _bstr_tsql; sql="select*frompatient"; _RecordsetPtrm_pRecordset;m_pRecordset=m_AdoConn.GetRecordSet(sql); try { m_pRecordset->AddNew();//添加新行 m_pRecordset->PutCollect("patientno",(_bstr_t)m_no); m_pRecordset->PutCollect("name",(_bstr_t)m_name); m_pRecordset->PutCollect("sex",(_bstr_t)m_sex); m_pRecordset->PutCollect("age",(_bstr_t)m_age); m_pRecordset->PutCollect("native",(_bstr_t)m_native); m_pRecordset->PutCollect("nation",(_bstr_t)m_nation); m_pRecordset->PutCollect("allergy",(_bstr_t)m_allergy); m_pRecordset->PutCollect("idcard",(_bstr_t)m_idcard); m_pRecordset->PutCollect("phone",(_bstr_t)m_phone); m_pRecordset->Update();//更新數(shù)據(jù)庫 m_AdoConn.ExitConnect();//斷開數(shù)據(jù)庫連接 } catch(...) { MessageBox(CString("操作失敗")); return; } MessageBox(CString("保存成功.")); m_grid.DeleteAllItems();//刪除grid中本來數(shù)據(jù) CStringstr; str="select*frompatient"; AddToGrid(str);//重新遍歷}voidCPatientDlg::OnBnClickedChange(){ //TODO:在此添加控件告知解決程序代碼 UpdateData(true); CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); CStringtempSql; tempSql.Format(CString("UPDATE`mydb`.`patient`SET`name`='%s',`sex`='%s',`age`='%s',`native`='%s',`nation`='%s',`allergy`='%s',`idcard`='%s',`phone`='%s'WHERE`patientno`='%s'"),m_name,m_sex,m_age,m_native,m_nation,m_allergy,m_idcard,m_phone,m_no); m_AdoConn.ExecuteSQL((_bstr_t)tempSql); m_AdoConn.ExitConnect(); MessageBox(CString("修改成功.")); m_grid.DeleteAllItems();//刪除grid中本來數(shù)據(jù) CStringstr; str="select*frompatient"; AddToGrid(str);//重新遍歷}voidCPatientDlg::OnBnClickedDelete(){ //TODO:在此添加控件告知解決程序代碼 UpdateData(true); CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); CStringtempSql; tempSql.Format(CString("deletefrompatientwherepatientno='%s'"),m_no); CStringtenpstr; tenpstr.Format(CString("與否要刪除%s記錄"),m_name); if(MessageBox(tenpstr,CString("提示"),MB_OKCANCEL)==IDOK) { m_AdoConn.ExecuteSQL((_bstr_t)tempSql); m_AdoConn.ExitConnect(); MessageBox(CString("刪除成功.")); m_grid.DeleteAllItems();//刪除grid中本來數(shù)據(jù) CStringstr; str="select*frompatient"; AddToGrid(str);//重新遍歷 }}voidCPatientDlg::OnBnClickedClear(){ //TODO:在此添加控件告知解決程序代碼 m_age=_T(""); m_no=_T(""); m_idcard=_T(""); m_name=_T(""); m_nation=_T(""); m_native=_T(""); m_allergy=_T(""); m_phone=_T(""); m_sex=_T(""); UpdateData(false);}voidCPatientDlg::OnBnClickedSelect(){ //TODO:在此添加控件告知解決程序代碼 m_grid.DeleteAllItems(); UpdateData(true); CStringstr1,str2; intnum1; num1=m_combo.GetCurSel(); if(0==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2=CString("select*frompatientwherepatientnolike")+CString("'")+str1+CString("'"); AddToGrid(str2);//遍歷功能信息記錄 } if(1==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2=CString("select*frompatientwherenamelike")+CString("'")+str1+CString("'"); AddToGrid(str2);//遍歷功能信息記錄 } if(2==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2=CString("select*frompatientwhereidcardlike")+CString("'")+str1+CString("'"); AddToGrid(str2);//遍歷功能信息記錄 } if(3==num1) { GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1); str2="select*frompatientorderbypatientnoDESC"; AddToGrid(str2);//遍歷功能信息記錄 }}voidCPatientDlg::OnNMClickListPatient(NMHDR*pNMHDR,LRESULT*pResult){ LPNMITEMACTIVATEpNMItemActivate=reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); //TODO:在此添加控件告知解決程序代碼 intnItem=0; POSITIONpos=m_grid.GetFirstSelectedItemPosition(); if(pos==NULL) TRACE0("Noitemswereselected!\n"); else { while(pos) { nItem=m_grid.GetNextSelectedItem(pos);//找到被選中行號 TRACE1("Item%dwasselected!\n",nItem); } //讀取被選中行數(shù)據(jù) m_no=m_grid.GetItemText(nItem,0); m_name=m_grid.GetItemText(nItem,1); m_sex=m_grid.GetItemText(nItem,2); m_age=m_grid.GetItemText(nItem,3); m_native=m_grid.GetItemText(nItem,4); m_nation=m_grid.GetItemText(nItem,5); m_allergy=m_grid.GetItemText(nItem,6); m_idcard=m_grid.GetItemText(nItem,7); m_phone=m_grid.GetItemText(nItem,8); UpdateData(FALSE);//更新對話框 } *pResult=0;}//EmployeeDlg.cpp:實現(xiàn)文獻//人員管理:吳婷#include"stdafx.h"#include"hospital.h"#include"EmployeeDlg.h"#include"afxdialogex.h"#include"ADOConn.h"http://CEmployeeDlg對話框IMPLEMENT_DYNAMIC(CEmployeeDlg,CDialogEx)CEmployeeDlg::CEmployeeDlg(CWnd*pParent/*=NULL*/) :CDialogEx(CEmployeeDlg::IDD,pParent){ m_age=_T(""); m_content=_T(""); m_idcard=_T(""); m_name=_T(""); m_nation=_T(""); m_native=_T(""); m_number=_T(""); m_office=_T(""); m_phone=_T(""); m_position=_T(""); m_sex=_T("");}CEmployeeDlg::~CEmployeeDlg(){}voidCEmployeeDlg::DoDataExchange(CDataExchange*pDX){ CDialogEx::DoDataExchange(pDX); DDX_Text(pDX,IDC_EDIT_AGE,m_age); DDX_Text(pDX,IDC_EDIT_CONTENT,m_content); DDX_Text(pDX,IDC_EDIT_IDCARD,m_idcard); DDX_Text(pDX,IDC_EDIT_NAME,m_name); DDX_Text(pDX,IDC_EDIT_NATION,m_nation); DDX_Text(pDX,IDC_EDIT_NATIVE,m_native); DDX_Text(pDX,IDC_EDIT_NUMBER,m_number); DDX_Text(pDX,IDC_EDIT_OFFICE,m_office); DDX_Text(pDX,IDC_EDIT_PHONE,m_phone); DDX_Text(pDX,IDC_EDIT_POSITION,m_position); DDX_Text(pDX,IDC_EDIT_SEX,m_sex); DDX_Control(pDX,IDC_LIST_EMPLOYEE,m_grid); DDX_Control(pDX,IDC_COMBO1,m_combo);}BEGIN_MESSAGE_MAP(CEmployeeDlg,CDialogEx) ON_BN_CLICKED(IDOK,&CEmployeeDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_CHANGE,&CEmployeeDlg::OnBnClickedChange) ON_BN_CLICKED(IDC_DELETE,&CEmployeeDlg::OnBnClickedDelete) ON_BN_CLICKED(IDC_CLEAR,&CEmployeeDlg::OnBnClickedClear) ON_BN_CLICKED(IDC_SELECT,&CEmployeeDlg::OnBnClickedSelect) ON_NOTIFY(NM_CLICK,IDC_LIST_EMPLOYEE,&CEmployeeDlg::OnNMClickListEmployee)END_MESSAGE_MAP()//CEmployeeDlg消息解決程序BOOLCEmployeeDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); //TODO:在此添加額外初始化 m_grid.SetExtendedStyle(LVS_EX_FLATSB |LVS_EX_FULLROWSELECT |LVS_EX_HEADERDRAGDROP |LVS_EX_ONECLICKACTIVATE |LVS_EX_GRIDLINES); m_grid.InsertColumn(0,CString("人員編號"),LVCFMT_LEFT,100,0); m_grid.InsertColumn(1,CString("姓名"),LVCFMT_LEFT,100,1); m_grid.InsertColumn(2,CString("性別"),LVCFMT_LEFT,100,2); m_grid.InsertColumn(3,CString("年齡"),LVCFMT_LEFT,100,3); m_grid.InsertColumn(4,CString("籍貫"),LVCFMT_LEFT,100,4); m_grid.InsertColumn(5,CString("民族"),LVCFMT_LEFT,100,5); m_grid.InsertColumn(6,CString("從屬科室"),LVCFMT_LEFT,100,6); m_grid.InsertColumn(7,CString("職稱"),LVCFMT_LEFT,100,7); m_grid.InsertColumn(8,CString("身份證號碼"),LVCFMT_LEFT,100,8); m_grid.InsertColumn(9,CString("聯(lián)系電話"),LVCFMT_LEFT,100,9); m_combo.InsertString(0,CString("人員編號")); m_combo.InsertString(1,CString("姓名")); m_combo.InsertString(2,CString("從屬科室")); m_combo.InsertString(3,CString("職稱")); m_combo.InsertString(4,CString("身份證號碼")); m_combo.InsertString(5,CString("所有信息")); m_combo.SetCurSel(5); CStringstr; str="select*fromdoctor"; AddToGrid(str);//遍歷員工信息記錄 returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //異常:OCX屬性頁應返回FALSE}voidCEmployeeDlg::AddToGrid(CStringstr){ CADOConnm_AdoConn; m_AdoConn.OnInitADOConn(); CStringsql; sql.Format(str); _RecordsetPtrm_pRecordset; m_pRecordset=m_AdoConn.GetRecordSet((_bstr_t)sql); while(m_AdoConn.m_pRecordset->adoEOF==0) { m_grid.InsertItem(0,CString("")); m_grid.SetItemText(0,0,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("employeeno")); m_grid.SetItemText(0,1,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("name")); m_grid.SetItemText(0,2,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("sex")); m_grid.SetItemText(0,3,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("age")); m_grid.SetItemText(0,4,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("native")); m_grid.SetItemText(0,5,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("nation")); m_grid.SetItemText(0,6,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("office")); m_grid.SetItemText(0,7,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("position")); m_grid.SetItemText(0,8,(CString)(char*)(_bstr_t)m_pRecordset->GetCollect("idcard")); m_grid.SetItemText(0,9,(CString)(char*)(_bstr_t)m_pReco
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州澍青醫(yī)學高等??茖W?!稄V告策劃與創(chuàng)意》2023-2024學年第一學期期末試卷
- 小學2025-2026學年度第一學期教學工作計劃
- 長春汽車工業(yè)高等??茖W?!毒频旯芾硇畔⑾到y(tǒng)》2023-2024學年第一學期期末試卷
- 食品生產(chǎn)過程中交叉污染預防措施
- 保險入職培訓模板
- 專業(yè)基礎知識(給排水)-2020年注冊公用設備工程師(給水排水)《專業(yè)基礎知識》真題
- 代表愛情的花語
- 統(tǒng)編版五年級語文上冊寒假作業(yè)(九)(有答案)
- 人教版四年級數(shù)學下冊第一次月考綜合卷(含答案)
- 二零二五年特種設備特種買賣合同3篇
- 下套管危害識別和風險評估
- 翼狀胬肉病人的護理
- GB/T 12914-2008紙和紙板抗張強度的測定
- GB/T 1185-2006光學零件表面疵病
- ps6000自動化系統(tǒng)用戶操作及問題處理培訓
- 家庭教養(yǎng)方式問卷(含評分標準)
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設計和原理
- TSG ZF001-2006 安全閥安全技術監(jiān)察規(guī)程
- 部編版二年級語文下冊《蜘蛛開店》
- 鍋爐升降平臺管理
評論
0/150
提交評論