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

📄 search.cpp

📁 去年暑假帮朋友企业写的仓库管理软件
💻 CPP
字号:
// 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_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_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)
	ON_CBN_SELCHANGE(IDC_COMB_SEARCH_NAME, OnSelchangeCombSearchName)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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

void CSearch::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(true);

	int index;
	
	if ( !m_sNamechecked && !m_sSpecchecked && !m_sTimechecked)
	{
		AfxMessageBox(_T("请选择查询条件!"), MB_ICONEXCLAMATION);
		return;
	}

	m_sFromYear.TrimRight(" ");
	m_sFromMonth.TrimRight(" ");
	m_sToYear.TrimRight(" ");
	m_sToMonth.TrimRight(" ");

	if ( m_sNamechecked ) 
	{
		index = ((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_NAME))->GetCurSel();
		((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_NAME))->GetLBText(index,m_sName);
	}
	else
		m_sName="%";
	
	if ( m_sSpecchecked ) 
	{
		index = ((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->GetCurSel();
		((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->GetLBText(index,m_sSpec);	
	}
	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 ProductStock where ProductName like '"+m_sName+"' and MapID like '"+m_sSpec+\
			"' and CDate between '"+m_From+"' and '"+m_To+"' and State='"+theApp.inorout+"'";
		CMaterial_MISView* p = (CMaterial_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
		p->RefreshIn(strQuery);
	}
	else
	{
		strQuery = "select * from ProductStock where ProductName like '"+m_sName+"' and MapID like '"+m_sSpec+\
				"' and CDate between '"+m_From+"' and '"+m_To+"' and State='"+theApp.inorout+"'";
		CMaterial_MISView* p = (CMaterial_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
		p->RefreshIn(strQuery);
	}
	CDialog::OnOK();
}

BOOL CSearch::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO: Add extra initialization here
	_variant_t strQuery, Holder;
	int count,count2,j;
	CString strName;

	//产品入库查询
	if (m_sType)
	{
	    // 初始化下拉列表
		SetWindowText(_T("产品入库查询"));
		m_sTime=(_T("入库时间:"));

		strQuery = "select distinct ProductName from ProductStock where State='"+theApp.inorout+"'";
		theApp.ADOExecute(theApp.m_pADOSet,strQuery);

		count = theApp.m_pADOSet->GetRecordCount();
		if(count>0)
		{
			theApp.m_pADOSet->MoveFirst();
			Holder = theApp.m_pADOSet->GetCollect("ProductName");
			strName = Holder.bstrVal;

			theApp.m_pADOSet->MoveFirst();
			for(j = 0;j<count;j++)
			{
				Holder = theApp.m_pADOSet->GetCollect("ProductName");
				((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_NAME))->InsertString(j,Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
				theApp.m_pADOSet->MoveNext();
			}
			((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_NAME))->SetCurSel(0);

			strQuery = "select * from ProductStock where ProductName='"+strName+"'and State='"+theApp.inorout+"'";
			theApp.ADOExecute(theApp.m_pADOSet,strQuery);

			count2 = theApp.m_pADOSet->GetRecordCount();
			theApp.m_pADOSet->MoveFirst();
			for(j = 0;j<count2;j++)
			{
				Holder = theApp.m_pADOSet->GetCollect("MapID");
				((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->InsertString(j,Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
				theApp.m_pADOSet->MoveNext();
			}
			((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->SetCurSel(0);
		}


		strQuery = "select distinct datepart(yy,CDate) from ProductStock where State='"+theApp.inorout+"'";
	    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 ProductName from ProductStock where State='"+theApp.inorout+"'";
		theApp.ADOExecute(theApp.m_pADOSet,strQuery);

		count = theApp.m_pADOSet->GetRecordCount();
		if(count>0)
		{
			theApp.m_pADOSet->MoveFirst();
			Holder = theApp.m_pADOSet->GetCollect("ProductName");
			strName = Holder.bstrVal;

			theApp.m_pADOSet->MoveFirst();
			for(j = 0;j<count;j++)
			{
				Holder = theApp.m_pADOSet->GetCollect("ProductName");
				((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_NAME))->InsertString(j,Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
				theApp.m_pADOSet->MoveNext();
			}
			((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_NAME))->SetCurSel(0);

			strQuery = "select * from ProductStock where ProductName='"+strName+"' and State='"+theApp.inorout+"'";
			theApp.ADOExecute(theApp.m_pADOSet,strQuery);

			count2 = theApp.m_pADOSet->GetRecordCount();
			theApp.m_pADOSet->MoveFirst();
			for(j = 0;j<count2;j++)
			{
				Holder = theApp.m_pADOSet->GetCollect("MapID");
				((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->InsertString(j,Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
				theApp.m_pADOSet->MoveNext();
			}
			((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->SetCurSel(0);
		}


		strQuery = "select distinct datepart(yy,CDate) from ProductStock where State='"+theApp.inorout+"'";
	    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
}

void CSearch::OnSelchangeCombSearchName() 
{
	// TODO: Add your control notification handler code here


	int i,index,count,count2;
	CString strText;
	_variant_t strQuery,Holder;

	index = ((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_NAME))->GetCurSel();
	if(index != CB_ERR)
	{
		((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_NAME))->GetLBText(index,strText);
		count2 = ((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->GetCount();
		for(i=0;i<count2;i++)
		{
			((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->DeleteString(0);
		}
		// 产品入库;
		if(m_sType)
		{
			strQuery = "select * from ProductStock where ProductName='"+strText+"'and State='"+theApp.inorout+"'";
			theApp.ADOExecute(theApp.m_pADOSet,strQuery);

			count = theApp.m_pADOSet->GetRecordCount();
			theApp.m_pADOSet->MoveFirst();
			for(i=0;i<count;i++)
			{
				Holder = theApp.m_pADOSet->GetCollect("MapID");
				((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->InsertString(i,Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
				theApp.m_pADOSet->MoveNext();
			}
			((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->SetCurSel(0);
		}
		// 产品出库;
		else
		{
			strQuery = "select * from ProductStock where ProductName='"+strText+"'and State='"+theApp.inorout+"'";
			theApp.ADOExecute(theApp.m_pADOSet,strQuery);

			count = theApp.m_pADOSet->GetRecordCount();
			theApp.m_pADOSet->MoveFirst();
			for(i=0;i<count;i++)
			{
				Holder = theApp.m_pADOSet->GetCollect("MapID");
				((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->InsertString(i,Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
				theApp.m_pADOSet->MoveNext();
			}
			((CComboBox*)GetDlgItem(IDC_COMB_SEARCH_SPEC))->SetCurSel(0);
		}
	}

}

⌨️ 快捷键说明

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