www.gusucode.com > VC+MSSQL物资管理系统源码程序 > VC+MSSQL物资管理系统源码程序\code\Code\Search.cpp

    //Download by http://www.NewXing.com
// Search.cpp : implementation file
//

#include "stdafx.h"
#include "Material_MIS.h"
#include "Search.h"
#include "Material_MISView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSearch dialog


CSearch::CSearch(CWnd* pParent /*=NULL*/)
	: CDialog(CSearch::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSearch)
	m_sFromMonth = _T("");
	m_sFromYear = _T("");
	m_sName = _T("");
	m_sSpec = _T("");
	m_sToMonth = _T("");
	m_sToYear = _T("");
	m_sSpecchecked = FALSE;
	m_sNamechecked = FALSE;
	m_sTimechecked = FALSE;
	m_sTime = _T("");
	//}}AFX_DATA_INIT
}


void CSearch::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSearch)
	DDX_CBString(pDX, IDC_SEARCH_FROMMONTH, m_sFromMonth);
	DDX_CBString(pDX, IDC_SEARCH_FROMYEAR, m_sFromYear);
	DDX_Text(pDX, IDC_SEARCH_NAME, m_sName);
	DDX_Text(pDX, IDC_SEARCH_SPEC, m_sSpec);
	DDX_CBString(pDX, IDC_SEARCH_TOMONTH, m_sToMonth);
	DDX_CBString(pDX, IDC_SEARCH_TOYEAR, m_sToYear);
	DDX_Check(pDX, IDC_CHECK_SPEC, m_sSpecchecked);
	DDX_Check(pDX, IDC_CHECK_NAME, m_sNamechecked);
	DDX_Check(pDX, IDC_CHECK_TIME, m_sTimechecked);
	DDX_Text(pDX, IDC_STATIC_TIME, m_sTime);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSearch, CDialog)
	//{{AFX_MSG_MAP(CSearch)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSearch message handlers

void CSearch::OnOK() 
{
	// TODO: Add extra validation here
		UpdateData(true);
	
	if ( !m_sNamechecked && !m_sSpecchecked && !m_sTimechecked)
	{
		AfxMessageBox(_T("请选择查询条件!"), MB_ICONEXCLAMATION);
		return;
	}
	m_sName.TrimRight(" ");
	m_sSpec.TrimRight(" ");
	m_sFromYear.TrimRight(" ");
	m_sFromMonth.TrimRight(" ");
	m_sToYear.TrimRight(" ");
	m_sToMonth.TrimRight(" ");

	if ( m_sNamechecked ) 
	{
		if ( ""==m_sName ) 
		{
			AfxMessageBox(_T("物资名称不能为空!"), MB_ICONEXCLAMATION);
			return;
		}
		
	} 
	else m_sName="%";
	
	
	if ( m_sSpecchecked ) 
	{
		if ( ""==m_sSpec ) 
		{
			AfxMessageBox(_T("物资型号不能为空!"), MB_ICONEXCLAMATION);
			return;
		}
		
	} 
	else m_sSpec="%";

	int m_fToMonth=int(atof(m_sToMonth));


	
	if(m_sTimechecked)
	{
		if(1==m_fToMonth || 3==m_fToMonth ||5==m_fToMonth ||7==m_fToMonth ||\
			8==m_fToMonth ||10==m_fToMonth ||12==m_fToMonth)
		{
			m_From=m_sFromYear+"-"+m_sFromMonth+"-1";
			m_To=m_sToYear+"-"+m_sToMonth+"-31";
		}
		else if(2==m_fToMonth)
		{
			m_From=m_sFromYear+"-"+m_sFromMonth+"-1";
			m_To=m_sToYear+"-"+m_sToMonth+"-28";
		}
		else
		{
			m_From=m_sFromYear+"-"+m_sFromMonth+"-1";
			m_To=m_sToYear+"-"+m_sToMonth+"-30";
		}

	}
	else
	{	
		m_From="2002-1-1";
		m_To="2100-1-1";
	}

	_variant_t strQuery;
	if(m_sType)
	{	
		strQuery = "select * from msave where rkname like '"+m_sName+"' and rkspec like '"+m_sSpec+\
			"' and rkdate between '"+m_From+"' and '"+m_To+"'";
		CMaterial_MISView* p = (CMaterial_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
		p->RefreshIn(strQuery);
	}
	else
	{
		strQuery = "select * from muse where lyname like '"+m_sName+"' and lyspec like '"+m_sSpec+\
				"' and lydate between '"+m_From+"' and '"+m_To+"'";
		CMaterial_MISView* p = (CMaterial_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
		p->RefreshOut(strQuery);
	}
	CDialog::OnOK();
}

BOOL CSearch::OnInitDialog() 
{
	CDialog::OnInitDialog();
	((CEdit*)GetDlgItem(IDC_SEARCH_NAME))->SetLimitText(50);
	((CEdit*)GetDlgItem(IDC_SEARCH_SPEC))->SetLimitText(50);
	// TODO: Add extra initialization here
		_variant_t strQuery, Holder;
	//物资入库查询
	if (m_sType)
	{
	    // 初始化下拉列表
		SetWindowText(_T("物资入库查询"));
		m_sTime=(_T("入库时间:"));
		strQuery = "select distinct datepart(yy,rkdate) from msave";
	    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	    int iCount = theApp.m_pADOSet->GetRecordCount();
		theApp.m_pADOSet->MoveFirst();
		for (int i=0; i<iCount; i++)
		{
		    Holder=theApp.m_pADOSet->GetFields()->GetItem(long(0))->GetValue();
			((CComboBox*)GetDlgItem(IDC_SEARCH_FROMYEAR))->InsertString(i, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
			//((CComboBox*)GetDlgItem(IDC_SEARCH_FROMYEAR))->InsertString(i, m_sFromMonth);
			theApp.m_pADOSet->MoveNext();
		}
		((CComboBox*)GetDlgItem(IDC_SEARCH_FROMYEAR))->SetCurSel(0);
		((CComboBox*)GetDlgItem(IDC_SEARCH_FROMMONTH))->SetCurSel(0);

		theApp.m_pADOSet->MoveFirst();
		for ( i=0; i<iCount; i++)
		{
		    Holder=theApp.m_pADOSet->GetFields()->GetItem(long(0))->GetValue();
			((CComboBox*)GetDlgItem(IDC_SEARCH_TOYEAR))->InsertString(i, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
			theApp.m_pADOSet->MoveNext();
		}
		((CComboBox*)GetDlgItem(IDC_SEARCH_TOYEAR))->SetCurSel(0);
		((CComboBox*)GetDlgItem(IDC_SEARCH_TOMONTH))->SetCurSel(0);
		
	}
	//物资出库查询
	else 
	{
		// 初始化下拉列表
		SetWindowText(_T("物资领用查询"));
		m_sTime=(_T("领用时间:"));
		strQuery = "select distinct datepart(yy,lydate) from muse";
	    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	    int iCount = theApp.m_pADOSet->GetRecordCount();
		theApp.m_pADOSet->MoveFirst();
		for (int i=0; i<iCount; i++)
		{
		    Holder=theApp.m_pADOSet->GetFields()->GetItem(long(0))->GetValue();
			((CComboBox*)GetDlgItem(IDC_SEARCH_FROMYEAR))->InsertString(i, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
			//((CComboBox*)GetDlgItem(IDC_SEARCH_FROMYEAR))->InsertString(i, m_sFromMonth);
			theApp.m_pADOSet->MoveNext();
		}
		((CComboBox*)GetDlgItem(IDC_SEARCH_FROMYEAR))->SetCurSel(0);
		((CComboBox*)GetDlgItem(IDC_SEARCH_FROMMONTH))->SetCurSel(0);

		theApp.m_pADOSet->MoveFirst();
		for ( i=0; i<iCount; i++)
		{
		    Holder=theApp.m_pADOSet->GetFields()->GetItem(long(0))->GetValue();
			((CComboBox*)GetDlgItem(IDC_SEARCH_TOYEAR))->InsertString(i, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
			theApp.m_pADOSet->MoveNext();
		}
		((CComboBox*)GetDlgItem(IDC_SEARCH_TOYEAR))->SetCurSel(0);
		((CComboBox*)GetDlgItem(IDC_SEARCH_TOMONTH))->SetCurSel(0);
	}
	UpdateData(false);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}