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

📄 seachpage.cpp

📁 完整的汽配查询软件
💻 CPP
字号:
// SeachPage.cpp : implementation file
//

#include "stdafx.h"
#include "TProd.h"
#include "SeachPage.h"

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

extern CTProdApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CSeachPage dialog


CSeachPage::CSeachPage(CWnd* pParent /*=NULL*/)
	: CDialog(CSeachPage::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSeachPage)
	//}}AFX_DATA_INIT
	m_nCurrentSel = -1;
}


void CSeachPage::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSeachPage)
	DDX_Control(pDX, IDC_SEARCHOENO, m_666);
	DDX_Control(pDX, IDC_SEARCHOE, m_555);
	DDX_Control(pDX, IDC_SEARCHARTICLE, m_333);
	DDX_Control(pDX, IDC_SEARCHAPP, m_222);
	DDX_Control(pDX, IDC_SEARCHTPNO, m_111);
	DDX_Control(pDX, IDC_SEARCH, m_searchbt);
	DDX_Control(pDX, IDC_ITEMCOUNT, m_scItemCount);
	DDX_Control(pDX, IDC_SLIST, m_SList);
	DDX_Control(pDX, IDOK, m_sok);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSeachPage, CDialog)
	//{{AFX_MSG_MAP(CSeachPage)
	ON_BN_CLICKED(IDC_SEARCH, OnSearch)
	ON_NOTIFY(NM_DBLCLK, IDC_SLIST, OnDblclkSlist)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_SLIST, OnItemchangedUserlist)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSeachPage message handlers

BOOL CSeachPage::OnInitDialog() 
{
	CDialog::OnInitDialog();
	ListInit();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSeachPage::ListInit()
{
		//设置颜色
	const COLORREF BGColor = RGB(250, 250,250);
	const COLORREF BGTColor = RGB(0, 100, 50);
	const COLORREF BGTBColor = RGB(250,250, 250);
	m_SList.SetBkColor(BGColor);
	m_SList.SetTextColor(BGTColor);
	m_SList.SetTextBkColor(BGTBColor);
	//设表格表题
	m_SList.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_SList.InsertColumn(0,_T("TUOPU NO."),LVCFMT_IMAGE|LVCFMT_LEFT);
	m_SList.InsertColumn(1,_T("ARTICLE"));
	m_SList.InsertColumn(2,_T("O.E.NO."));
	m_SList.InsertColumn(3,_T("MAKER"));
	m_SList.InsertColumn(4,_T("APPLICATION"));
	m_SList.InsertColumn(5,_T("SIZE"));
	m_SList.InsertColumn(6,_T("QTY"));
	m_SList.InsertColumn(7,_T("KGS"));
	//列的宽度
	m_SList.SetColumnWidth(0,66);
	m_SList.SetColumnWidth(1,180);
	m_SList.SetColumnWidth(2,96);
	m_SList.SetColumnWidth(3,100);
	m_SList.SetColumnWidth(4,150);
	m_SList.SetColumnWidth(5,70);
	m_SList.SetColumnWidth(6,40);
	m_SList.SetColumnWidth(7,55);
}

void CSeachPage::OnSearch() 
{
	m_SList.DeleteAllItems();
	int nItem,i=0;//i 是用来查询数目计数之用
	_variant_t var;
	CString SQLstr,selectStr,andStr,orderStr,condStr1,condStr2,condStr3,condStr4,condStr5;
	CString condStr11,condStr22,condStr33,condStr44,condStr55;
	CString strtpno,strprodname,stroeno,strappname,stroename;
	CString sLabel;
	//取得各个输入值
	GetDlgItem(IDC_SEARCHTPNO)->GetWindowText(strtpno);
	GetDlgItem(IDC_SEARCHARTICLE)->GetWindowText(strprodname);
	GetDlgItem(IDC_SEARCHOENO)->GetWindowText(stroeno);
	GetDlgItem(IDC_SEARCHAPP)->GetWindowText(strappname);
	GetDlgItem(IDC_SEARCHOE)->GetWindowText(stroename);


	condStr1="\'%%"+strtpno+"%%\'";
	condStr11="tpno like "+condStr1;
	condStr2="\'%%"+strprodname+"%%\'";
	condStr22="prodname like "+condStr2;
	condStr3="\'%%"+stroeno+"%%\'";
	condStr33="oeno like "+condStr3;
	condStr4="\'%%"+strappname+"%%\'";
	condStr44="appname like "+condStr4;
	condStr5="\'%%"+stroename+"%%\'";
	condStr55="oename like "+condStr5;

	selectStr="SELECT * FROM prodinfo where ";
	andStr=" and ";
	orderStr=" order by oeno";
	//产生查询语句
	if (strtpno=="" && strprodname=="" && stroeno=="" && strappname=="" && stroename=="")
	{
		MessageBox("         You input none information.\nAnd it will show all the item in the database!");
		SQLstr="SELECT * FROM prodinfo"+orderStr;
	}
	else
	{
		if (strtpno!="")
		{
			SQLstr=selectStr+condStr11+orderStr;
			if(strprodname!="")
				SQLstr=selectStr+condStr11+andStr+condStr22+orderStr;
			if(stroeno!="")
				SQLstr=selectStr+condStr11+andStr+condStr22+andStr+condStr33+orderStr;
			if(strappname!="")
				SQLstr=selectStr+condStr11+andStr+condStr22+andStr+condStr33+andStr+condStr44+orderStr;
			if(stroename!="")
				SQLstr=selectStr+condStr11+andStr+condStr22+andStr+condStr33+andStr+condStr44+andStr+condStr55+orderStr;
		}
		else
		{
			if (strprodname!="")
			{
				SQLstr=selectStr+condStr22+orderStr;
				if(stroeno!="")
					SQLstr=selectStr+condStr22+andStr+condStr33+orderStr;
				if(strappname!="")
					SQLstr=selectStr+condStr22+andStr+condStr33+andStr+condStr44+orderStr;
				if(stroename!="")
					SQLstr=selectStr+condStr22+andStr+condStr33+andStr+condStr44+andStr+condStr55+orderStr;
			}
			else
			{
				if(stroeno!="")
				{
					SQLstr=selectStr+condStr33+orderStr;
				if(strappname!="")
					SQLstr=selectStr+condStr33+andStr+condStr44+orderStr;
				if(stroename!="")
					SQLstr=selectStr+condStr33+andStr+condStr44+andStr+condStr55+orderStr;
				}
				else
				{
					if(strappname!="")
					{
						SQLstr=selectStr+condStr44+orderStr;
						if(stroename!="")
							SQLstr=selectStr+condStr44+andStr+condStr55+orderStr;
					}
					else
					{
						if(stroename!="")
						SQLstr=selectStr+condStr55+orderStr;
					}
				}
			}
		}
	}
	checkSearch="YES";//检查是否进行了搜索
	try
	{
		m_pRecordsetSearch.CreateInstance("ADODB.Recordset");
		m_pRecordsetSearch->Open(_bstr_t(SQLstr),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		m_bSuccess = TRUE;
		while(!m_pRecordsetSearch->adoEOF)
		{

			var = m_pRecordsetSearch->GetCollect("tpno");
			if(var.vt != VT_NULL)
				vTpno = (LPCSTR)_bstr_t(var);
			else vTpno=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetSearch->GetCollect("prodname");
			if(var.vt != VT_NULL)
				vProdname = (LPCSTR)_bstr_t(var);
			else vProdname=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetSearch->GetCollect("oename");
			if(var.vt != VT_NULL)
				vOename = (LPCSTR)_bstr_t(var);
			else vOename=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetSearch->GetCollect("oeno");
			if(var.vt != VT_NULL)
				vOeno = (LPCSTR)_bstr_t(var);
			else vOeno=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetSearch->GetCollect("appname");
			if(var.vt != VT_NULL)
				vAppname = (LPCSTR)_bstr_t(var);
			else vAppname=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetSearch->GetCollect("size");
			if(var.vt != VT_NULL)
				vSize = (LPCSTR)_bstr_t(var);
			else vSize=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetSearch->GetCollect("qty");
			if(var.vt != VT_NULL)
				vQty = (LPCSTR)_bstr_t(var);
			else vQty=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetSearch->GetCollect("kgs");
			if(var.vt != VT_NULL)
				vKgs = (LPCSTR)_bstr_t(var);
			else vKgs=(LPCSTR)_bstr_t("NULL");

			nItem=m_SList.InsertItem(0xffff,(_bstr_t)vTpno);
			m_SList.SetItem(nItem,1,1,(_bstr_t)vProdname,NULL,0,0,0);
			m_SList.SetItem(nItem,2,1,(_bstr_t)vOeno,NULL,0,0,0);
			m_SList.SetItem(nItem,3,1,(_bstr_t)vOename,NULL,0,0,0);
			m_SList.SetItem(nItem,4,1,(_bstr_t)vAppname,NULL,0,0,0);
			m_SList.SetItem(nItem,5,1,(_bstr_t)vSize,NULL,0,0,0);
			m_SList.SetItem(nItem,6,1,(_bstr_t)vQty,NULL,0,0,0);
			m_SList.SetItem(nItem,7,1,(_bstr_t)vKgs,NULL,0,0,0);
			i++;
			UpdateData(false);
			m_pRecordsetSearch->MoveNext();
		}
	}
	catch(_com_error e)///捕捉异常
	{
		AfxMessageBox("Read Database Fail!");///显示错误信息
	}
	sLabel.Format(  _T( "%d Items found in the " )
				_T( "database." ), i );	
	m_scItemCount.SetWindowText( sLabel );	//显示查找结果数目

}
void CSeachPage::OnItemchangedUserlist(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	if(pNMListView->uNewState&LVIS_SELECTED)
	{
	m_nCurrentSel = pNMListView->iItem;

	}
	*pResult = 0;
}

void CSeachPage::OnDblclkSlist(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	if(checkSearch == "YES")
	{
		LoadProInfo();
		vInfo.DoModal();
	}
	*pResult = 0;
}


void CSeachPage::LoadProInfo()
{
	m_pRecordsetSearch->Move(m_nCurrentSel,_variant_t((long)adBookmarkFirst));
	
		_variant_t var;
	try
	{
		var = m_pRecordsetSearch->GetCollect("tpno");
			if(var.vt != VT_NULL)
			{
				vInfo.m_tpno=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_tpno=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetSearch->GetCollect("prodname");
			if(var.vt != VT_NULL)
			{
				vInfo.m_prodname=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_prodname=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetSearch->GetCollect("oeno");
			if(var.vt != VT_NULL)
			{
				vInfo.m_oeno=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_oeno=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetSearch->GetCollect("appname");
			if(var.vt != VT_NULL)
			{
				vInfo.m_appname=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_appname=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetSearch->GetCollect("size");
			if(var.vt != VT_NULL)
			{
				vInfo.m_size=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_size=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetSearch->GetCollect("kgs");
			if(var.vt != VT_NULL)
			{
				vInfo.m_kgs=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_kgs=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetSearch->GetCollect("qty");
			if(var.vt != VT_NULL)
			{
				vInfo.m_qty=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_qty=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetSearch->GetCollect("picname");
			if(var.vt != VT_NULL)
			{
				vInfo.m_picname=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_picname=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetSearch->GetCollect("oename");
			if(var.vt != VT_NULL)
			{
				vInfo.m_oe=(LPCSTR)_bstr_t(var);
			}
			else vInfo.m_oe=(CString)(LPCSTR)_bstr_t("NULL");
	}
	catch(_com_error e)///捕捉异常
	{
		AfxMessageBox("Read Database Fail!");///显示错误信息
	}
}

⌨️ 快捷键说明

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