📄 queryname.cpp
字号:
// QueryName.cpp : implementation file
//
#include "stdafx.h"
#include "bxt.h"
#include "QueryName.h"
#include "bxtDlg.h"
#include "Query.h"
#include "queryorder.h"
#include "RecordFile.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// QueryName dialog
QueryName::QueryName(CWnd* pParent /*=NULL*/)
: CDialog(QueryName::IDD, pParent)
{
//{{AFX_DATA_INIT(QueryName)
m_name = _T("");
m_sex = _T("");
m_age1 = _T("");
m_age2 = _T("");
m_age3 = _T("");
m_class = _T("");
m_id = _T("");
m_hospid = _T("");
m_illname = _T("");
m_checkpos = _T("");
m_check = _T("");
m_iQueryWay = -1;
//}}AFX_DATA_INIT
m_pCfg = ((CBxtApp *)(AfxGetApp()))->GetConfig();
m_iQueryWay = (m_pCfg->iUiType == UI_TYPE_SIMPLE) ? (1) : (0);
}
void
QueryName::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(QueryName)
DDX_Text(pDX, IDC_EDIT1, m_name);
DDX_Text(pDX, IDC_EDIT2, m_sex);
DDX_Text(pDX, IDC_EDIT3, m_age1);
DDX_Text(pDX, IDC_EDIT4, m_age2);
DDX_Text(pDX, IDC_EDIT5, m_age3);
DDX_Text(pDX, IDC_EDIT6, m_class);
DDX_Text(pDX, IDC_EDIT7, m_id);
DDX_Text(pDX, IDC_EDIT8, m_hospid);
DDX_Text(pDX, IDC_EDIT9, m_illname);
DDX_Text(pDX, IDC_EDIT10, m_checkpos);
DDX_Text(pDX, IDC_EDIT11, m_check);
DDX_Radio(pDX, IDC_RADIO_QUERY_CD, m_iQueryWay);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(QueryName, CDialog)
//{{AFX_MSG_MAP(QueryName)
ON_BN_CLICKED(IDC_BUTTON_QUERY, OnButtonQuery)
//}}AFX_MSG_MAP
ON_MESSAGE(WX_SETRESTRICT, UmSetRestrict)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// QueryName message handlers
BOOL
QueryName::OnInitDialog()
{
CDialog::OnInitDialog();
m_btnQuery.SubclassDlgItem(IDC_BUTTON_QUERY, this);
m_btnQuery.SetIcon(IDI_ICON_QUERY, 96, 32);
m_btnQuery.SetMouseOnColor(RGB(255, 0, 255));
m_btnQuery.SetPressColor(RGB(0, 0, 255));
m_btnQuery.SetWindowText("");
if (m_pCfg->iUiType == UI_TYPE_SIMPLE)
{
GetDlgItem(IDC_STATIC_FRAME)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO_QUERY_CD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_RADIO_QUERY_DATABASE)->ShowWindow(SW_HIDE);
}
return (TRUE);
}
void
QueryName::OnButtonQuery()
{
UpdateData(TRUE);
if (m_pCfg->iUiType == UI_TYPE_SIMPLE || m_iQueryWay == 0)
{
SimpleQuery();
}
else
{
NormalQuery();
}
}
BOOL
QueryName::MakeWhere()
{
CString sDateWhere = ((CBxtDlg *)AfxGetMainWnd())->querytime->MakeDataSQL();
CString sWhere;
INT age1;
INT age2;
INT age3;
INT baselen;
CHAR buf[10];
// -> Make Where
sWhere += "WHERE ";
baselen = sWhere.GetLength();
if (!sDateWhere.IsEmpty())
{
sWhere += sDateWhere;
sWhere += " AND ";
}
UpdateData(TRUE);
// 年龄大于
if (!m_age1.IsEmpty())
{
age1 = atoi(m_age1);
m_age1 = itoa(age1,buf,10);
sWhere += " AGE>";
sWhere += m_age1;
sWhere += " AND ";
}
// 年龄等于
if (!m_age2.IsEmpty())
{
age2 = atoi(m_age2);
m_age2 = itoa(age2,buf,10);
sWhere += " AGE=";
sWhere += m_age2;
sWhere += " AND ";
}
// 年龄小于
if (!m_age3.IsEmpty())
{
age3 = atoi(m_age3);
m_age3 = itoa(age3,buf,10);
sWhere += " AGE<";
sWhere += m_age3;
sWhere += " AND ";
}
// 临床诊断
if (!m_check.IsEmpty())
{
sWhere += " CHECK='";
sWhere += m_check;
sWhere += "' AND ";
}
// 检查部位
if (!m_checkpos.IsEmpty())
{
sWhere += " CHECKPOS='";
sWhere += m_checkpos;
sWhere += "' AND ";
}
// 科别
if (!m_class.IsEmpty())
{
sWhere += " CLASS='";
sWhere += m_class;
sWhere += "' AND ";
}
// 住院号
if (!m_hospid.IsEmpty())
{
sWhere += " HOSPID='";
sWhere += m_hospid;
sWhere += "' AND ";
}
// CT编号
if (!m_id.IsEmpty())
{
sWhere += " ID='";
sWhere += m_id;
sWhere += "' AND ";
}
// 病名
if (!m_illname.IsEmpty())
{
sWhere += " ILLNAME='";
sWhere += m_illname;
sWhere += "' AND ";
}
// 姓名
if (!m_name.IsEmpty())
{
sWhere += " NAME='";
sWhere += m_name;
sWhere += "' AND ";
}
// 性别
if (!m_sex.IsEmpty())
{
sWhere += " SEX='";
sWhere += m_sex;
sWhere += "'";
sWhere += " AND ";
}
// <- Make Where
UpdateData(FALSE);
if (sWhere.GetLength() == baselen)
sWhere = sWhere.Left(sWhere.GetLength() - 6); // Get Rid Of "WHERE "
else
sWhere = sWhere.Left(sWhere.GetLength() - 4); // Get Rid Of "AND ";
m_sWhere = sWhere;
return (TRUE);
}
BOOL
QueryName::MakeOrder()
{
CString sOrder;
sOrder = (((CBxtDlg *)AfxGetMainWnd())->queryorder)->MakeSortSQL();
if (!sOrder.IsEmpty())
sOrder = "ORDER BY " + sOrder;
m_sOrder = sOrder;
return (TRUE);
}
BOOL
QueryName::SimpleQuery()
{
CWnd *pWnd = ((CBxtDlg *)AfxGetMainWnd())->query;
pWnd->SendMessage(WX_QUERY, (WPARAM)(FALSE), (LPARAM)(this));
return (FALSE);
}
BOOL
QueryName::NormalQuery()
{
CWnd *pWnd = ((CBxtDlg *)AfxGetMainWnd())->query;
MakeWhere();
MakeOrder();
pWnd->SendMessage(WX_SETORDER, 0, (LPARAM)(m_sOrder.GetBuffer(m_sOrder.GetLength())));
pWnd->SendMessage(WX_SETWHERE, 0, (LPARAM)(m_sWhere.GetBuffer(m_sWhere.GetLength())));
pWnd->SendMessage(WX_QUERY, (WPARAM)(TRUE), 0);
return (TRUE);
}
BOOL
QueryName::UmSetRestrict(WPARAM wParam, LPARAM lParam)
{
CRecordFile* pRf = (CRecordFile *)(lParam);
CHAR buf[10];
UpdateData(TRUE);
pRf->ResetRestrict();
if (!m_name.IsEmpty())
{
pRf->m_Restrict.m_bResName = TRUE;
strcpy(pRf->m_Restrict.m_Record.m_sName, TO_CHAR(m_name));
}
if (!m_sex.IsEmpty())
{
pRf->m_Restrict.m_bResSex = TRUE;
strcpy(pRf->m_Restrict.m_Record.m_sSex, TO_CHAR(m_sex));
}
if (!m_age1.IsEmpty())
{
pRf->m_Restrict.m_bResAgeMin = TRUE;
pRf->m_Restrict.m_iAgeMin = atoi(m_age1);
m_age1 = itoa(pRf->m_Restrict.m_iAgeMin, buf, 10);
}
if (!m_age2.IsEmpty())
{
pRf->m_Restrict.m_bResAgeEqu = TRUE;
pRf->m_Restrict.m_Record.m_iAge = atoi(m_age2);
m_age2 = itoa(pRf->m_Restrict.m_Record.m_iAge, buf, 10);
}
if (!m_age3.IsEmpty())
{
pRf->m_Restrict.m_bResAgeMax = TRUE;
pRf->m_Restrict.m_iAgeMax = atoi(m_age3);
m_age3 = itoa(pRf->m_Restrict.m_iAgeMax, buf, 10);
}
if (!m_class.IsEmpty())
{
pRf->m_Restrict.m_bResClass = TRUE;
strcpy(pRf->m_Restrict.m_Record.m_sClass, TO_CHAR(m_class));
}
if (!m_id.IsEmpty())
{
pRf->m_Restrict.m_bResID = TRUE;
strcpy(pRf->m_Restrict.m_Record.m_sID, TO_CHAR(m_id));
}
if (!m_hospid.IsEmpty())
{
pRf->m_Restrict.m_bResHospID = TRUE;
strcpy(pRf->m_Restrict.m_Record.m_sHospID, TO_CHAR(m_hospid));
}
if (!m_illname.IsEmpty())
{
pRf->m_Restrict.m_bResIllName = TRUE;
strcpy(pRf->m_Restrict.m_Record.m_sIllName, TO_CHAR(m_illname));
}
if (!m_checkpos.IsEmpty())
{
pRf->m_Restrict.m_bResCheckPos = TRUE;
strcpy(pRf->m_Restrict.m_Record.m_sCheckPos, TO_CHAR(m_checkpos));
}
if (!m_check.IsEmpty())
{
pRf->m_Restrict.m_bResCheck = TRUE;
strcpy(pRf->m_Restrict.m_Record.m_sCheck, TO_CHAR(m_check));
}
UpdateData(FALSE);
return (TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -