📄 search.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 + -