⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 querydlg3.cpp

📁 VC做的矢量画图程序!
💻 CPP
字号:
// QueryDlg3.cpp : implementation file
//

#include "stdafx.h"
#include "draw.h"
#include "QueryDlg3.h"
#include "BrowseDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CQueryDlg3 dialog

CQueryDlg3::CQueryDlg3(CWnd* pParent /*=NULL*/)
	: CDialog(CQueryDlg3::IDD, pParent)
{
	m_sqlStr="";
	m_type=((CBrowseDlg *)pParent)->m_type;
	//{{AFX_DATA_INIT(CQueryDlg)
	m_datetime1 = CTime::GetCurrentTime();
	m_datetime2 = CTime::GetCurrentTime();
	m_value1 = _T("");
	m_value2 = _T("");
	//}}AFX_DATA_INIT
}


void CQueryDlg3::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CQueryDlg)
	DDX_Control(pDX, IDC_RADIO1, m_radio_andor);
	DDX_Control(pDX, IDC_COM_OPE2, m_com_ope2);
	DDX_Control(pDX, IDC_COM_FIELD2, m_com_field2);
	DDX_Control(pDX, IDC_COM_OPE1, m_com_ope1);
	DDX_Control(pDX, IDC_COM_FIELD1, m_com_field1);
	DDX_DateTimeCtrl(pDX, IDC_DATETIME1, m_datetime1);
	DDX_DateTimeCtrl(pDX, IDC_DATETIME2, m_datetime2);
	DDX_Text(pDX, IDC_EDIT_VALUE1, m_value1);
	DDX_Text(pDX, IDC_EDIT_VALUE2, m_value2);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CQueryDlg3, CDialog)
	//{{AFX_MSG_MAP(CQueryDlg)
	ON_CBN_SELCHANGE(IDC_COM_FIELD1, OnSelchangeComField1)
	ON_CBN_SELCHANGE(IDC_COM_FIELD2, OnSelchangeComField2)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQueryDlg message handlers

BOOL CQueryDlg3::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
  
	GetDlgItem(IDC_DATETIME1)->ShowWindow(FALSE);
	GetDlgItem(IDC_DATETIME2)->ShowWindow(FALSE);

	
	strField[0]="管道编号";
	strField[1]="埋深";
	strField[2]="管长";
	strField[3]="管沟宽";
	strField[4]="布设时间";
	


	strField1[0]="LINE_NO";
	strField1[1]="MAISHEN";
	strField1[2]="GUANCHANG";
	strField1[3]="GOUKUAN";
	strField1[4]="BUSHESHIJIAN";


	strOperator[0]="<>";
	strOperator[1]="<=";
	strOperator[2]=">=";
	strOperator[3]="=";
	strOperator[4]="<";
	strOperator[5]=">";
	
	//向字段下拉框中添加相关字段

	for(int i=0;i<=4;i++)
	{   
		 m_com_field1.AddString(strField[i]);
		 m_com_field2.AddString(strField[i]);
	}

	//令管线编号字段选中
	m_com_field1.SetCurSel(0);
	
	//给第一个操作符下拉框填加操作符,并置等号选中
	for(i=0;i<=5;i++)
		m_com_ope1.AddString(strOperator[i]);
	 m_com_ope1.SetCurSel(3);
    
	 //使单条件选中
	 m_radio_andor.SetCheck(1);
	
	 return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CQueryDlg3::OnSelchangeComField1() 
{
	// TODO: Add your control notification handler code here

	m_com_ope1.ResetContent();
	for(int i=0;i<=5;i++)
		m_com_ope1.AddString(strOperator[i]);
	if(m_com_field1.GetCurSel()==4)
	{
		GetDlgItem(IDC_DATETIME1)->ShowWindow(true);
		GetDlgItem(IDC_EDIT_VALUE1)->ShowWindow(false);
	}
	else
	{
		GetDlgItem(IDC_DATETIME1)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_VALUE1)->ShowWindow(true);
	}						

}

void CQueryDlg3::OnSelchangeComField2() 
{
	// TODO: Add your control notification handler code here
	
	m_com_ope2.ResetContent();
	for(int i=0;i<=5;i++)
	    m_com_ope2.AddString(strOperator[i]);
	if(m_com_field2.GetCurSel()==4)
	{
		GetDlgItem(IDC_DATETIME2)->ShowWindow(true);
		GetDlgItem(IDC_EDIT_VALUE2)->ShowWindow(false);
	}
	else
	{
		GetDlgItem(IDC_DATETIME2)->ShowWindow(false);
		GetDlgItem(IDC_EDIT_VALUE2)->ShowWindow(true);
	}
}

void CQueryDlg3::OnOK() 
{   
	
	UpdateData(true);
	//判断输入是否有效
	if(QueryValid()==false)
		return;
	//第一个查询条件
	CString str;
    int ncom=m_com_field1.GetCurSel();
    m_sqlStr+=strField1[ncom];
	GetDlgItemText(IDC_COM_OPE1,str);
	m_sqlStr+=str;
	switch(ncom)
	{
	case 0:
	   m_sqlStr+="'"+m_value1+"'";
	   AfxMessageBox(m_sqlStr);
	   break;
	case 1:
	case 2:
	case 3:
	  m_sqlStr+=m_value1;
	  AfxMessageBox(m_sqlStr);
	  break;
	case 4:
	   m_sqlStr+="#"+m_datetime1.Format("%Y-%m-%d")+"#";
	   AfxMessageBox(m_sqlStr);
	   break;
	default:
		break;
	}
	//如果有第二个查询条件则与m_sqlStr相加
	if(((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck()!=1)
	{
        //判断是OR 还是 AND
		if(((CButton *)GetDlgItem(IDC_RADIO2))->GetCheck()==1)
			m_sqlStr+=" and ";
		else if(((CButton *)GetDlgItem(IDC_RADIO3))->GetCheck()==1)
			m_sqlStr+=" or ";
        
		ncom=m_com_field2.GetCurSel();
		m_sqlStr+=strField1[ncom];
		GetDlgItemText(IDC_COM_OPE2,str);
	    m_sqlStr+=str;
	    switch(ncom)
		{
	       case 0:
	          m_sqlStr+="'"+m_value2+"'";
	          AfxMessageBox(m_sqlStr);
	          break;
	       case 1:
	       case 2:
	       case 3:
	          m_sqlStr+=m_value2;
	          AfxMessageBox(m_sqlStr);
	          break;
	       case 4:
	          m_sqlStr+="#"+m_datetime2.Format("%Y-%m-%d")+"#";
	          AfxMessageBox(m_sqlStr);
	          break;
	      default:
		      break;
		}
	}
	
	CDialog::OnOK();
}

bool CQueryDlg3::QueryValid()
{
	
	//判断第一个条件的有效性
	
	if(m_com_ope1.GetCurSel()==CB_ERR)
	{
		AfxMessageBox("请选择操作符!");
        m_com_ope1.SetFocus();
		return false;
	}
			
    if(GetDlgItem(IDC_EDIT_VALUE1)->IsWindowVisible())
	{
		m_value1.TrimLeft();
		m_value1.TrimRight();
		if(m_value1=="")
		{
			AfxMessageBox("请输入查询值!");
            GetDlgItem(IDC_EDIT_VALUE1)->SetFocus();
		     return false;
		}
		if(m_com_field1.GetCurSel()==0)
		{
			 bool bTag=true;
	         for(int i=0;i<m_value1.GetLength();i++)
			 {
		       char ch=m_value1.GetAt(i);
	        	if(ch<'0' || ch>'9')
				{ 
			       bTag=false;
			        break;
				}
			 }
	        if(m_value1.GetLength()!=8 || !bTag)
			{
		        AfxMessageBox("请输入8位数字组成的编号 !");	
		        GetDlgItem(IDC_EDIT_VALUE1)->SetFocus();
             return false;
			}
		}
	}
	//如果有第二个条件则进行验证
	if(((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck()!=1)
	{
		if(m_com_field2.GetCurSel()==CB_ERR)
		{ 
			AfxMessageBox("请选择查询字段!");
            m_com_field2.SetFocus();
		     return false;
		}
		if(m_com_ope2.GetCurSel()==CB_ERR)
		{
	  	    AfxMessageBox("请选择操作符!");
            m_com_ope2.SetFocus();
		    return false;
		}
	    if(GetDlgItem(IDC_EDIT_VALUE2)->IsWindowVisible())
		{
		  m_value2.TrimLeft();
		  m_value2.TrimRight();
		  if(m_value2=="")
		  {
			AfxMessageBox("请输入查询值!");
            GetDlgItem(IDC_EDIT_VALUE2)->SetFocus();
		     return false;
		  }
		  if(m_com_field2.GetCurSel()==0)
		  {
			 bool bTag=true;
	         for(int i=0;i<m_value2.GetLength();i++)
			 {
		       char ch=m_value2.GetAt(i);
	        	if(ch<'0' || ch>'9')
				{ 
			       bTag=false;
			        break;
				}
			 }
	        if(m_value2.GetLength()!=8 || !bTag)
			{
		        AfxMessageBox("请输入8位数字组成的编号 !");	
		        GetDlgItem(IDC_EDIT_VALUE2)->SetFocus();
             return false;
			}
		  }
	   }
	}


	return true;

}

void CQueryDlg3::OnRadio1() 
{
	
		m_com_field2.EnableWindow(FALSE);
	    m_com_ope2.EnableWindow(FALSE);
		GetDlgItem(IDC_DATETIME2)->EnableWindow(FALSE);
		GetDlgItem(IDC_EDIT_VALUE2)->EnableWindow(FALSE);

}

void CQueryDlg3::OnRadio2() 
{
	    m_com_field2.EnableWindow();
	    m_com_ope2.EnableWindow();
		GetDlgItem(IDC_DATETIME2)->EnableWindow();
		GetDlgItem(IDC_EDIT_VALUE2)->EnableWindow();
	
}

void CQueryDlg3::OnRadio3() 
{
        m_com_field2.EnableWindow();
	    m_com_ope2.EnableWindow();
		GetDlgItem(IDC_DATETIME2)->EnableWindow();
		GetDlgItem(IDC_EDIT_VALUE2)->EnableWindow();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -