// DetailsDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "Medical.h"
#include "DetailsDlg.h"
// CDetailsDlg 对话框
IMPLEMENT_DYNAMIC(CDetailsDlg, CDialog)
CDetailsDlg::CDetailsDlg(CWnd* pParent /*=NULL*/)
: CResizableDialog(CDetailsDlg::IDD, pParent)
, m_szRecord(_T(""))
, m_szDate(_T(""))
, m_szCheckNo(_T(""))
, m_szName(_T(""))
, m_szGzdw(_T(""))
, m_szGzdz(_T(""))
, m_szAddress(_T(""))
, m_szZyh(_T(""))
{
bValueChange=FALSE;
szRes=_T("UNK");
m_szBedNo=_T("0000");
m_szRecord=szRes; //病历号格式:科室拼音缩写+住院日期+床号
}
CDetailsDlg::~CDetailsDlg()
{
}
void CDetailsDlg::DoDataExchange(CDataExchange* pDX)
{
CResizableDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SPIN_BUTTON, m_spinButton);
DDX_Control(pDX, IDC_EDIT_RECEIVABLES, m_edtReceivables);
DDX_Control(pDX, IDC_EDIT_ACTUALPAYMENT, m_edtActualpayment);
DDX_Control(pDX, IDC_EDIT_CONTACTPHONE, m_edtContactphone);
DDX_Control(pDX, IDC_EDIT_ZIPCODE, m_edtZipcode);
DDX_Control(pDX, IDC_EDIT_AGE, m_edtAge);
DDX_Text(pDX, IDC_EDIT_RECORD, m_szRecord);
DDX_Control(pDX, IDC_COMBO_DEPARTMENT, m_cboDepartment);
DDX_Control(pDX, IDC_DATETIMEPICKER1, m_ctlDate);
DDX_Control(pDX, IDC_EDIT_BEDNO, m_edtBedNo);
DDX_Text(pDX, IDC_EDIT_CHECKNUMBER, m_szCheckNo);
DDX_Text(pDX, IDC_EDIT_NAME, m_szName);
DDX_Control(pDX, IDC_CBO_BRZS, m_cboBrzs);
DDX_Control(pDX, IDC_CBO_JWBS, m_cboJwbs);
DDX_Control(pDX, IDC_CBO_YYQK, m_cboYyqk);
DDX_Control(pDX, IDC_CBO_LCZD, m_cboLczd);
DDX_Control(pDX, IDC_CBO_BZJC, m_cboBzjc);
DDX_Control(pDX, IDC_CBO_BLZD, m_cboBlzd);
DDX_Control(pDX, IDC_CBO_MARITAL, m_cboMarital);
DDX_Control(pDX, IDC_CBO_CFZ, m_cboCfz);
DDX_Control(pDX, IDC_CBO_FB, m_cboFb);
DDX_Control(pDX, IDC_CBO_XB, m_cboXb);
DDX_Control(pDX, IDC_CBO_SQYS, m_cboSqys);
DDX_Control(pDX, IDC_JZYS, m_cboJzys);
DDX_Control(pDX, IDC_CBO_JCS, m_cboJcs);
DDX_Text(pDX, IDC_EDIT_GZDW, m_szGzdw);
DDX_Text(pDX, IDC_EDIT_DWDZ, m_szGzdz);
DDX_Text(pDX, IDC_EDIT_ADDRESS, m_szAddress);
DDX_Control(pDX, IDC_CBO_JCBW, m_cboJcbw);
DDX_Text(pDX, IDC_EDIT_ZYH, m_szZyh);
}
BEGIN_MESSAGE_MAP(CDetailsDlg, CResizableDialog)
ON_WM_SETTINGCHANGE()
ON_BN_CLICKED(IDCOK, &CDetailsDlg::OnBnClickedCok)
ON_BN_CLICKED(IDCANCEL, &CDetailsDlg::OnBnClickedCancel)
ON_CBN_SELCHANGE(IDC_COMBO_DEPARTMENT, &CDetailsDlg::OnCbnSelchangeComboDepartment)
ON_WM_CTLCOLOR()
ON_EN_CHANGE(IDC_EDIT_BEDNO, &CDetailsDlg::OnEnChangeEditBedno)
ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER1, &CDetailsDlg::OnDtnDatetimechangeDatetimepicker1)
ON_WM_DESTROY()
ON_BN_CLICKED(IDC_RESET_DATA, &CDetailsDlg::OnBnClickedResetData)
ON_CBN_EDITCHANGE(IDC_COMBO_DEPARTMENT, &CDetailsDlg::OnCbnEditchangeComboDepartment)
END_MESSAGE_MAP()
// CDetailsDlg 消息处理程序
BOOL CDetailsDlg::OnInitDialog()
{
CResizableDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
//tooltip
m_tooltip.Create(this);
m_tooltip.SetNotify();
//
m_spinButton.SetBuddy((CWnd *)GetDlgItem(IDC_EDIT_AGE));
m_spinButton.SetRange(0,200);
m_spinButton.SetPos(0);
m_spinButton.SetBase(10);
//maskedit
m_edtReceivables.EnableMask(_T("dd ddd dd "), // The mask string
_T("__,___.__ CNY"), // Literal, "_" char = character entry
_T('0'));
m_edtReceivables.SetValidChars(NULL);
m_edtReceivables.SetWindowText(_T("00,000.00 CNY"));
m_edtActualpayment.EnableMask(_T("dd ddd dd "), // The mask string
_T("__,___.__ CNY"), // Literal, "_" char = character entry
_T('0'));
m_edtActualpayment.SetValidChars(NULL);
m_edtActualpayment.SetWindowText(_T("00,000.00 CNY"));
m_edtContactphone.EnableMask(_T(" dddd ddd dddd"), // The mask string
_T("(____) ___-____"), // Literal, "_" char = character entry
_T(' '));
m_edtContactphone.SetValidChars(NULL); // Valid string characters
m_edtContactphone.SetWindowText(_T("(0000) 000-0000"));
m_edtZipcode.EnableMask(_T("dddddd"), // The mask string
_T("______"), // Literal, "_" char = character entry
_T(' '));
m_edtZipcode.SetValidChars(NULL); // Valid string characters
m_edtZipcode.SetWindowText(_T("000000"));
m_edtAge.EnableMask(_T("ddd"), // The mask string
_T("___"), // Literal, "_" char = character entry
_T(' '));
m_edtAge.SetValidChars(NULL); // Valid string characters
m_edtAge.SetWindowText(_T("0"));
m_edtBedNo.SetLimitText(4);
AddAnchor(IDC_EDITOR,TOP_LEFT,BOTTOM_RIGHT);
InitData();
OnEnChangeEditBedno();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CDetailsDlg::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
{
CResizableDialog::OnSettingChange(uFlags, lpszSection);
bValueChange=TRUE;
}
void CDetailsDlg::OnBnClickedCok()
{
CRect rect;
UpdateData();
GetDlgItem(IDC_EDIT_NAME)->GetWindowRect(&rect);
CPoint pt = rect.BottomRight();
m_tooltip.SetDirection(PPTOOLTIP_LEFTEDGE_TOP);
if (m_szName.IsEmpty())
{
m_tooltip.ShowHelpTooltip(&pt, _T("<center><h2>检查输入</h2><br><hr color=blue></center><br>姓名不能为空"));
return;
}
///save
SaveData();
bValueChange=TRUE;
}
void CDetailsDlg::OnBnClickedCancel()
{
if(bValueChange)
{
int retVal = AfxMessageBox(_T("您已经对资料作了更改,是否保存?"),MB_YESNOCANCEL|MB_ICONQUESTION);
switch(retVal){
case IDYES:
//save
break;
case IDCANCEL:
return;
break;
}
}
OnCancel();
}
void CDetailsDlg::OnCbnSelchangeComboDepartment()
{
UpdateData();
CString szTmp;
int nIndex=m_cboDepartment.GetCurSel();
if (CB_ERR != nIndex)
{
m_cboDepartment.GetLBText(nIndex,szTmp);
//科室拼音缩写
szRes=GetFirstLetter(szTmp);
m_szRecord =szRes;
//
CTime time;
m_ctlDate.GetTime(time);
m_szDate = time.Format(_T("%Y%m%d"));
//
m_edtBedNo.GetWindowText(m_szBedNo);
szTmp.Format(_T("%04s"),m_szBedNo);
m_szRecord += m_szDate;
m_szRecord += _T("-");
m_szRecord += szTmp;
}
UpdateData(FALSE);
}
HBRUSH CDetailsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CResizableDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
switch (nCtlColor)
{
case CTLCOLOR_DLG:
pDC->SetBkColor( RGB(225,225,225) );
return (HBRUSH)GetStockObject( WHITE_BRUSH );
case CTLCOLOR_STATIC:
pDC->SetBkMode(TRANSPARENT); return HBRUSH(GetStockObject(HOLLOW_BRUSH));
default:
return CResizableDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
void CDetailsDlg::OnEnChangeEditBedno()
{
UpdateData();
CTime time;
m_ctlDate.GetTime(time);
m_szDate = time.Format(_T("%Y%m%d"));
m_edtBedNo.GetWindowText(m_szBedNo);
m_szRecord =szRes;
m_szRecord += m_szDate;
m_szRecord += _T("-");
CString szTmp;
szTmp.Format(_T("%04s"),m_szBedNo);
m_szRecord += szTmp;
UpdateData(FALSE);
}
void CDetailsDlg::OnDtnDatetimechangeDatetimepicker1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMDATETIMECHANGE pDTChange = reinterpret_cast<LPNMDATETIMECHANGE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
UpdateData();
CTime time;
m_ctlDate.GetTime(time);
m_szDate = time.Format(_T("%Y%m%d"));
m_edtBedNo.GetWindowText(m_szBedNo);
m_szRecord =szRes;
m_szRecord += m_szDate;
m_szRecord += _T("-");
CString szTmp;
szTmp.Format(_T("%04s"),m_szBedNo);
m_szRecord += szTmp;
UpdateData(FALSE);
*pResult = 0;
}
BOOL CDetailsDlg::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
//todo:
return CResizableDialog::PreTranslateMessage(pMsg);
}
void CDetailsDlg::OnDestroy()
{
CResizableDialog::OnDestroy();
m_tooltip.HideTooltip();
// TODO: 在此处添加消息处理程序代码
}
//初始化界面数据
void CDetailsDlg::InitData()
{
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//init data
CString sql;
sql.Format(_T("select * from tbOther