📄 selectdialg.cpp
字号:
// SelectDialg.cpp : implementation file
//
#include "stdafx.h"
#include "车友.h"
#include "SelectDialg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSelectDialg dialog
#include "SelectXC.h"
#include "SelectRQ.h"
CSelectDialg::CSelectDialg(CWnd* pParent /*=NULL*/)
: CDialog(CSelectDialg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSelectDialg)
m_strcllx = _T("所有...");
m_strclys = _T("所有...");
m_strczxm = _T("所有...");
m_strcphm = _T("所有...");
m_strczdh = _T("所有...");
m_strczdz = _T("所有...");
m_strbznr = _T("所有...");
m_strFilter = _T("所有...");
m_strSort = _T("所有...");
m_strgjcx = _T("Select * from CarsDataBase Where ...");
//}}AFX_DATA_INIT
}
void CSelectDialg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSelectDialg)
DDX_Control(pDX, IDC_SC_DIZD, m_cdyzd);
DDX_Control(pDX, IDC_SC_DEZD, m_cdezd);
DDX_Control(pDX, IDC_SC_CLXC, m_cclcx);
DDX_Control(pDX, IDC_SC_SCZK, m_csczd);
DDX_Control(pDX, IDC_SC_CCRQ, m_cccrq);
DDX_Control(pDX, IDC_SC_GSYC, m_cgsyc);
DDX_Control(pDX, IDC_SR_JQPP, m_rjqpp);
DDX_Control(pDX, IDC_SR_MHPP, m_rmhpp);
DDX_Control(pDX, IDC_SR_HZZH, m_rhzzh);
DDX_Control(pDX, IDC_SR_BQZH, m_rbqzh);
DDX_CBString(pDX, IDC_SC_CLLX, m_strcllx);
DDX_CBString(pDX, IDC_SC_CLYS, m_strclys);
DDX_CBString(pDX, IDC_SC_CZXM, m_strczxm);
DDX_CBString(pDX, IDC_SC_CPHM, m_strcphm);
DDX_CBString(pDX, IDC_SC_CZDH, m_strczdh);
DDX_CBString(pDX, IDC_SC_CZDZ, m_strczdz);
DDX_CBString(pDX, IDC_SC_BZNR, m_strbznr);
DDX_Text(pDX, IDC_E_GJCX, m_strgjcx);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSelectDialg, CDialog)
//{{AFX_MSG_MAP(CSelectDialg)
ON_BN_CLICKED(IDC_B_MRXX, OnBMrxx)
ON_BN_CLICKED(IDC_SCK_GJCX, OnSckGjcx)
ON_CBN_SELCHANGE(IDC_SC_CCRQ, OnSelchangeScCcrq)
ON_CBN_SELCHANGE(IDC_SC_CLXC, OnSelchangeScCllx)
ON_BN_CLICKED(IDC_SR_BQZH, OnSrBqzh)
ON_BN_CLICKED(IDC_SR_HZZH, OnSrHzzh)
ON_BN_CLICKED(IDC_SR_JQPP, OnSrJqpp)
ON_BN_CLICKED(IDC_SR_MHPP, OnSrMhpp)
ON_CBN_SELCHANGE(IDC_SC_DIZD, OnSelchangeScDizd)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CSelectDialg::GetSelectInfo(CString& strFilter, CString& strSort)
{
strFilter = m_strFilter;
strSort = m_strSort;
}
/////////////////////////////////////////////////////////////////////////////
// CSelectDialg message handlers
void CSelectDialg::OnOK()
{
CString strppms;
CString strzhms;
CString strtemp = _T("");
BOOL bflag = FALSE;
UpdateData(TRUE);
if(CheckString(m_strcllx) || CheckString(m_strclys) || CheckString(m_strczxm) || CheckString(m_strczdh) || CheckString(m_strczdz) || CheckString(m_strbznr) || CheckString(m_strcphm))
{
AfxMessageBox("输入的查询信息中包涵非法字符,请重新输入。\n非法字符包括:[ ] ' % # \" ",MB_OK|MB_ICONSTOP);
return;
}
m_strFilter = _T("");
m_strSort = _T("");
if(m_rmhpp.GetCheck())
{
strppms = _T(" LIKE ");
m_strcllx = "'%%"+m_strcllx+"%%'";
m_strclys = "'%%"+m_strclys+"%%'";
m_strczxm = "'%%"+m_strczxm+"%%'";
m_strczdh = "'%%"+m_strczdh+"%%'";
m_strczdz = "'%%"+m_strczdz+"%%'";
m_strbznr = "'%%"+m_strbznr+"%%'";
m_strcphm = "'%%"+m_strcphm+"%%'";
}
else
{
strppms = _T(" = ");
m_strcllx = "'"+m_strcllx+"'";
m_strclys = "'"+m_strclys+"'";
m_strczxm = "'"+m_strczxm+"'";
m_strczdh = "'"+m_strczdh+"'";
m_strczdz = "'"+m_strczdz+"'";
m_strbznr = "'"+m_strbznr+"'";
m_strcphm = "'"+m_strcphm+"'";
}
strzhms = (m_rbqzh.GetCheck())?(_T(" AND ")):(_T(" OR "));
if((((CComboBox *)GetDlgItem(IDC_SC_CLLX))->GetCurSel() != 0) && (!m_strcllx.IsEmpty()))
{
strtemp = "strtype"+strppms+m_strcllx;
m_strFilter = strtemp;
bflag = TRUE;
}
if(m_cgsyc.GetCurSel() != 0)
{
strtemp.Format("bgs = %s",((m_cgsyc.GetCurSel()==1)?_T("true"):_T("false")));
m_strFilter += bflag?(strzhms+strtemp):strtemp;
bflag = TRUE;
}
if(m_csczd.GetCurSel() != 0)
{
strtemp.Format("bsc = %s",((m_csczd.GetCurSel()==1)?_T("true"):_T("false")));
m_strFilter += bflag?(strzhms+strtemp):strtemp;
bflag = TRUE;
}
if((((CComboBox *)GetDlgItem(IDC_SC_CLYS))->GetCurSel() != 0) && (!m_strclys.IsEmpty()))
{
strtemp = "strcolor"+strppms+m_strclys;
m_strFilter += bflag?(strzhms+strtemp):strtemp;
bflag = TRUE;
}
if((((CComboBox *)GetDlgItem(IDC_SC_CZXM))->GetCurSel() != 0) && (!m_strczxm.IsEmpty()))
{
strtemp = "strczname"+strppms+m_strczxm;
m_strFilter += bflag?(strzhms+strtemp):strtemp;
bflag = TRUE;
}
if((((CComboBox *)GetDlgItem(IDC_SC_CPHM))->GetCurSel() != 0) && (!m_strcphm.IsEmpty()))
{
strtemp = "strnumber"+strppms+m_strcphm;
m_strFilter += bflag?(strzhms+strtemp):strtemp;
bflag = TRUE;
}
if((((CComboBox *)GetDlgItem(IDC_SC_CZDH))->GetCurSel() != 0) && (!m_strczdh.IsEmpty()))
{
strtemp = "strcztel"+strppms+m_strczdh;
m_strFilter += bflag?(strzhms+strtemp):strtemp;
bflag = TRUE;
}
if((((CComboBox *)GetDlgItem(IDC_SC_BZNR))->GetCurSel() != 0) && (!m_strbznr.IsEmpty()))
{
strtemp = "strbz"+strppms+m_strbznr;
m_strFilter += bflag?(strzhms+strtemp):strtemp;
bflag = TRUE;
}
if((((CComboBox *)GetDlgItem(IDC_SC_CZDZ))->GetCurSel() != 0) && (!m_strczdz.IsEmpty()))
{
strtemp = "strczdz"+strppms+m_strczdz;
m_strFilter += bflag?(strzhms+strtemp):strtemp;
bflag = TRUE;
}
if(m_cclcx.GetCurSel() != 0)
{
m_strFilter += bflag?(strzhms+m_strxc):m_strxc;
}
if(m_cccrq.GetCurSel() != 0)
{
m_strFilter += bflag?(strzhms+m_strtime):m_strtime;
}
if(m_cdyzd.GetCurSel() != 0)
{
TCHAR * strzd[] = { _T(""),_T("[strnumber]"),_T("[strtype]"),_T("[bgs]"),_T("[strcolor]"),_T("[strczname]"),_T("[strcztel]"),_T("[strczdz]"),_T("[ixc]") };
m_strSort = strzd[m_cdyzd.GetCurSel()];
m_strSort += (m_cdezd.GetCurSel())?_T(" DESC"):_T(" ASC");
}
CDialog::OnOK();
}
void CSelectDialg::OnBMrxx()
{
m_strFilter = _T("");
m_strSort = _T("");
((CComboBox*)GetDlgItem(IDC_SC_CLLX))->SetCurSel(0);
((CComboBox*)GetDlgItem(IDC_SC_CLYS))->SetCurSel(0);
((CComboBox*)GetDlgItem(IDC_SC_CZXM))->SetCurSel(0);
((CComboBox*)GetDlgItem(IDC_SC_CPHM))->SetCurSel(0);
((CComboBox*)GetDlgItem(IDC_SC_CZDH))->SetCurSel(0);
((CComboBox*)GetDlgItem(IDC_SC_CZDZ))->SetCurSel(0);
((CComboBox*)GetDlgItem(IDC_SC_BZNR))->SetCurSel(0);
m_cccrq.SetCurSel(0);
m_cclcx.SetCurSel(0);
m_cdezd.SetCurSel(0);
m_cdyzd.SetCurSel(0);
m_cgsyc.SetCurSel(0);
m_csczd.SetCurSel(0);
m_rmhpp.SetCheck(TRUE);
m_rjqpp.SetCheck(FALSE);
m_rbqzh.SetCheck(TRUE);
m_rhzzh.SetCheck(FALSE);
GetDlgItem(IDC_SC_DEZD)->EnableWindow(FALSE);
}
void CSelectDialg::OnSckGjcx()
{
AfxMessageBox("对不起,本软件在免费版本中未提供该功能。",MB_OK|MB_ICONINFORMATION);
}
void CSelectDialg::OnSelchangeScCcrq()
{
int s = m_cccrq.GetCurSel();
switch(s)
{
case 0:
m_strtime.Empty();
break;
case 1:
{
CSelectRQ dlg;
if(dlg.DoModal() == IDOK)
{
dlg.GetTimeInfo(m_strtime);
}
else
{
m_strxc.Empty();
m_cccrq.SetCurSel(0);
}
}
break;
}
}
void CSelectDialg::OnSelchangeScCllx()
{
int s = m_cclcx.GetCurSel();
switch(s)
{
case 0:
m_strxc.Empty();
break;
case 1:
m_strxc = _T("ixc < 10000.00");
break;
case 2:
m_strxc = _T("ixc > 10000.00 AND ixc < 20000.00");
break;
case 3:
m_strxc = _T("ixc > 20000.00");
break;
case 4:
{
CSelectXC dlg;
if(dlg.DoModal() == IDOK)
{
dlg.GetSelectInfo(m_strxc);
}
else
{
m_strxc.Empty();
m_cclcx.SetCurSel(0);
}
}
break;
}
}
BOOL CSelectDialg::OnInitDialog()
{
CDialog::OnInitDialog();
m_cccrq.SetCurSel(0);
m_cclcx.SetCurSel(0);
m_cdezd.SetCurSel(0);
m_cdyzd.SetCurSel(0);
m_cgsyc.SetCurSel(0);
m_csczd.SetCurSel(0);
m_rmhpp.SetCheck(TRUE);
m_rjqpp.SetCheck(FALSE);
m_rbqzh.SetCheck(TRUE);
m_rhzzh.SetCheck(FALSE);
GetDlgItem(IDC_SC_DEZD)->EnableWindow(FALSE);
return TRUE;
}
void CSelectDialg::OnSrBqzh()
{
m_rhzzh.SetCheck(FALSE);
m_rbqzh.SetCheck(TRUE);
}
void CSelectDialg::OnSrHzzh()
{
m_rbqzh.SetCheck(FALSE);
m_rhzzh.SetCheck(TRUE);
}
void CSelectDialg::OnSrJqpp()
{
m_rmhpp.SetCheck(FALSE);
m_rjqpp.SetCheck(TRUE);
}
void CSelectDialg::OnSrMhpp()
{
m_rjqpp.SetCheck(FALSE);
m_rmhpp.SetCheck(TRUE);
}
void CSelectDialg::OnSelchangeScDizd()
{
GetDlgItem(IDC_SC_DEZD)->EnableWindow(m_cdyzd.GetCurSel());
}
BOOL CSelectDialg::CheckString(CString& str)
{
char badchar[] = "[]'\"#%";
int i;
for(i=0;i<6;i++)
{
if(str.Find(badchar[i]) != -1)
return TRUE;
}
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -