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

📄 querybasicdlg.cpp

📁 小型图书管理系统
💻 CPP
字号:
// QueryBasicDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Library_5.h"
#include "QueryBasicDlg.h"

#include "BookRS.h"
#include "QueryAdvancedDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CQueryBasicDlg dialog


CQueryBasicDlg::CQueryBasicDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CQueryBasicDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CQueryBasicDlg)
	m_strbookName = _T("");
	//}}AFX_DATA_INIT
}


void CQueryBasicDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CQueryBasicDlg)
	DDX_Control(pDX, IDC_LIST_RESULT, m_listResult);
	DDX_Control(pDX, IDC_LIST_DETAIL, m_listDetail);
	DDX_Text(pDX, IDC_BOOK_NAME, m_strbookName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CQueryBasicDlg, CDialog)
	//{{AFX_MSG_MAP(CQueryBasicDlg)
	ON_BN_CLICKED(IDOK, OnQuery)
	ON_LBN_SELCHANGE(IDC_LIST_RESULT, OnSelchangeListResult)
	ON_BN_CLICKED(IDC_QUERY_ADVANCED, OnQueryAdvanced)
	ON_BN_CLICKED(IDC_QUERY, OnQuery)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQueryBasicDlg message handlers


void CQueryBasicDlg::OnQuery() 
{
	UpdateData();

	m_listResult.ResetContent();
	if(!m_bookSet.IsOpen())
	{
		m_bookSet.Open();
	}
	CString strFilter;
	strFilter.Format("title = '%s'",m_strbookName);
	m_bookSet.m_strFilter=strFilter;
	m_bookSet.Requery();

	if(m_bookSet.IsEOF())
	{
		AfxMessageBox("查无此书");
		return ;
	}

	while(!m_bookSet.IsEOF())
	{
		m_listResult.AddString(m_bookSet.m_title);
		m_bookSet.MoveNext();
	}

	// TODO: Add your control notification handler code here
	
}

void CQueryBasicDlg::OnSelchangeListResult() 
{

	CString aColCaption[9];
	aColCaption[0]="书号:          ";
	aColCaption[1]="种类:          ";
	aColCaption[2]="书名:          ";
	aColCaption[3]="出版社:        ";
	aColCaption[4]="出版日期:     ";
	aColCaption[5]="作者:           ";
	aColCaption[6]="价格:           ";
	aColCaption[7]="藏书总量:     ";
	aColCaption[8]="当前库存量:  ";

	m_listDetail.ResetContent();
	
	int curSel;
	CString strDetail;
	CString strLine;
	curSel=m_listResult.GetCurSel();
	m_bookSet.SetAbsolutePosition(curSel+1);
	
	for(int i=0;i<m_bookSet.m_nFields;i++)
	{
		m_bookSet.GetFieldValue(i,strDetail);
		strLine.Empty();
		strLine+=aColCaption[i];
		strLine+=strDetail;
		m_listDetail.AddString(strLine);
	}


	// TODO: Add your control notification handler code here
	

}

void CQueryBasicDlg::OnQueryAdvanced() 
{
	int i,flag;
	CQueryAdvancedDlg advancedQuery;
	advancedQuery.DoModal();
	UpdateData();

	CString str;
	CString strFilter;

	CString *astrKeyWord[9];
	CString *aAndOr[7];
	
	aAndOr[1]=&advancedQuery.m_andOr1;
	aAndOr[2]=&advancedQuery.m_andOr2;
	aAndOr[3]=&advancedQuery.m_andOr3;
	aAndOr[4]=&advancedQuery.m_andOr4;
	aAndOr[5]=&advancedQuery.m_andOr5;
	aAndOr[6]=&advancedQuery.m_andOr6;

	
	astrKeyWord[1]=&advancedQuery.m_bookName;
	astrKeyWord[2]=&advancedQuery.m_subject;
	astrKeyWord[3]=&advancedQuery.m_press;
	astrKeyWord[4]=&advancedQuery.m_author;
	astrKeyWord[5]=&advancedQuery.m_pressdateFrom;
	astrKeyWord[6]=&advancedQuery.m_pressdateTo;
	astrKeyWord[7]=&advancedQuery.m_priceFrom;
	astrKeyWord[8]=&advancedQuery.m_priceTo;

	i=1;
	flag=0;
	while(i<9)
	{
		if(!astrKeyWord[i]->IsEmpty())
		{
			if(flag!=0)
			{
				strFilter+=" ";
				str.Format(" %s ",*aAndOr[flag]);
				strFilter+=str;
				flag=0;
			}

			if(i==5)
			{
				str.Format(" pub_date between  %s ",*astrKeyWord[i]);
				strFilter+=str;
			}
			if(i==6)
			{
				str.Format("and %s ",*astrKeyWord[i]);
				strFilter+=str;
				flag=5;
			}

			if(i==7)
			{
				str.Format(" price between  %s ",*astrKeyWord[i]);
				strFilter+=str;
			}
			if(i==8)
			{			
				str.Format("and %s ",*astrKeyWord[i]);
				strFilter+=str;
				flag=6;
			}

			if(i==1)
			{
				str.Format("title =  '%s' ",*astrKeyWord[i]);
				strFilter+=str;
				flag=1;
			}

			if(i==2)
			{
				str.Format("subject = '%s' ",*astrKeyWord[i]);
				strFilter+=str;
				flag=2;
			}
			if(i==3)
			{
				str.Format("press = '%s' ",*astrKeyWord[i]);
				strFilter+=str;
				flag=3;
			}
			if(i==4)
			{
				str.Format("authors = '%s' ",*astrKeyWord[i]);
				strFilter+=str;
				flag=4;
			}
		}
		i++;
	}

	m_bookSet.m_strFilter=strFilter;
	if(! m_bookSet.IsOpen())
	{
		m_bookSet.Open();
	}

	m_bookSet.Requery();
	m_listResult.ResetContent();
	m_listDetail.ResetContent();
	if(m_bookSet.IsEOF())
	{
		AfxMessageBox("查无此书");
		return ;
	}

	while(!m_bookSet.IsEOF())
	{
		m_listResult.AddString(m_bookSet.m_title);
		m_bookSet.MoveNext();
	}


	// TODO: Add your control notification handler code here
	
}

⌨️ 快捷键说明

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