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