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

📄 badpage.cpp

📁 bookman电子图书馆
💻 CPP
字号:
// BadPage.cpp : implementation file
//

#include "stdafx.h"
#include "bookMan.h"
#include "BadPage.h"
#include "bookManView.h"
#include "MainFrm.h"
#include "AdoBind.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBadPage dialog


CBadPage::CBadPage(CWnd* pParent /*=NULL*/)
	: CDialog(CBadPage::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBadPage)

	//}}AFX_DATA_INIT
	InitData();
	pRst=NULL;
}

CBadPage::~CBadPage()
{
	if(pRst->GetState()==adStateOpen)
		pRst->Close();
}

void CBadPage::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBadPage)
	DDX_Control(pDX, IDC_BAD_COMBO_NAME, m_ctrlBookName);
	DDX_Control(pDX, IDC_BAD_COMBO_BADTYPE, m_badType);
	DDX_Control(pDX, IDC_BAD_LIST_EXIST, m_exist);
	DDX_CBIndex(pDX, IDC_BAD_COMBO_BADTYPE, m_nBigType);
	DDX_CBIndex(pDX, IDC_BAD_COMBO_DOTYPE, m_nDoType);
	DDX_CBString(pDX, IDC_BAD_COMBO_TYPE, m_strType);
	DDV_MaxChars(pDX, m_strType, 10);
	DDX_DateTimeCtrl(pDX, IDC_BAD_DATETIMEPICKER_BADDATE, m_badDate);
	DDX_DateTimeCtrl(pDX, IDC_BAD_DATETIMEPICKER_BAOFEIDATE, m_baofeiDate);
	DDX_DateTimeCtrl(pDX, IDC_BAD_DATETIMEPICKER_BUYDATE, m_buyDate);
	DDX_Text(pDX, IDC_BAD_EDIT_AUTHOR, m_strAuthor);
	DDV_MaxChars(pDX, m_strAuthor, 10);
	DDX_Text(pDX, IDC_BAD_EDIT_FROM, m_strFrom);
	DDV_MaxChars(pDX, m_strFrom, 20);
	DDX_Text(pDX, IDC_BAD_EDIT_ISBN, m_strIsbn);
	DDV_MaxChars(pDX, m_strIsbn, 15);
	DDX_Text(pDX, IDC_BAD_EDIT_PRICE, m_fPrice);
	DDX_CBString(pDX, IDC_BUYSELF_COMBO_PRESS2, m_strPress);
	DDV_MaxChars(pDX, m_strPress, 30);
	DDX_CBIndex(pDX, IDC_BAD_COMBO_NAME, m_nBookName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBadPage, CDialog)
	//{{AFX_MSG_MAP(CBadPage)
	ON_WM_CTLCOLOR()
	ON_CBN_SELCHANGE(IDC_BAD_COMBO_DOTYPE, OnSelchangeBadComboDotype)
	ON_CBN_SELCHANGE(IDC_BAD_COMBO_NAME, OnSelchangeBadComboName)
	ON_BN_CLICKED(IDC_BAD_BUTTON_BAD, OnBadButtonBad)
	ON_NOTIFY(NM_CLICK, IDC_BAD_LIST_EXIST, OnClickBadListExist)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBadPage message handlers

HBRUSH CBadPage::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	return hbr;
}

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

	//设置物种组合框的图像列表
	iBadType.Create(16,16,TRUE,3,1);
	AddBitmap(IDB_BOOK);
	AddBitmap(IDB_CDROM);
	AddBitmap(IDB_PAPER);

	COMBOBOXEXITEM buyItem[3];
	LPTSTR pszText[3]={"书籍杂志","软件光盘","报刊读物"};
	for(int i=0;i<3;i++)
	{
		buyItem[i].mask=CBEIF_TEXT|CBEIF_IMAGE|CBEIF_SELECTEDIMAGE;
		buyItem[i].iItem=i;
		buyItem[i].pszText=pszText[i];
		buyItem[i].iImage=i;
		buyItem[i].iSelectedImage=i;
		m_badType.InsertItem(&buyItem[i]);
	}
	m_badType.SetCurSel(0);
	m_badType.SetImageList(&iBadType);

	brush.CreateSolidBrush(RGB(255,224,240));
	//得到TAB控件的客户区大小
	CRect tabRect;
	((CBookManView *)((CMainFrame *)AfxGetMainWnd())->GetActiveView())->m_tabCtrl.GetClientRect(&tabRect);
	//设置对话框大小,使其与TAB控件相适应
	SetWindowPos(NULL,0,0,tabRect.Width()-SP_RIGHT,tabRect.Height()-SP_BOTTOM,SWP_NOMOVE);
	//得到TAB控件的WINDOW位置大小
	CRect tabWindowRect;
	((CBookManView *)((CMainFrame *)AfxGetMainWnd())->GetActiveView())->m_tabCtrl.GetWindowRect(&tabWindowRect);
	//得到LIST控件的窗口位置
	CRect listWindowRect;
	m_exist.GetWindowRect(&listWindowRect);
	//设置列表控件的初始大小
	m_exist.SetWindowPos(NULL,0,0,tabWindowRect.right-listWindowRect.left-10,tabWindowRect.bottom-listWindowRect.top-10,SWP_NOMOVE);
	//向列表控件插入列项目
	m_exist.InsertColumn(0,"类别",LVCFMT_LEFT,50,0);
	m_exist.InsertColumn(1,"物种",LVCFMT_LEFT,80,1);
	m_exist.InsertColumn(2,"名称",LVCFMT_LEFT,120,2);
	m_exist.InsertColumn(3,"出版社",LVCFMT_LEFT,120,3);
	m_exist.InsertColumn(4,"类型",LVCFMT_LEFT,100,4);
	m_exist.InsertColumn(5,"作者",LVCFMT_LEFT,100,5);
	m_exist.InsertColumn(6,"价格",LVCFMT_LEFT,100,6);
	m_exist.InsertColumn(7,"ISBN编号",LVCFMT_LEFT,120,7);
	m_exist.InsertColumn(8,"供应商",LVCFMT_LEFT,100,8);
	m_exist.InsertColumn(9,"购入日期",LVCFMT_LEFT,120,9);
	m_exist.InsertColumn(10,"损坏日期",LVCFMT_LEFT,120,10);
	m_exist.InsertColumn(11,"报废日期",LVCFMT_LEFT,120,11);
	//设置列表控件扩展属性
	m_exist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_TRACKSELECT|
		LVS_EX_HEADERDRAGDROP|LVS_EX_GRIDLINES);
	
	pRst.CreateInstance("ADODB.Recordset");
	RefreshData();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CBadPage::AddBitmap(UINT nID)
{
	BOOL breturn;
	CBitmap bm;
	breturn=bm.LoadBitmap(nID);
	if(breturn)
	{
		iBadType.Add(&bm,RGB(255,255,255));
		bm.DeleteObject();
	}
}

void CBadPage::InitData()
{
	m_nBigType = 0;
	m_nDoType = 0;
	m_strType = _T("");
	m_badDate = COleDateTime::GetCurrentTime();
	m_baofeiDate = COleDateTime::GetCurrentTime();
	m_buyDate = COleDateTime::GetCurrentTime();
	m_strAuthor = _T("");
	m_strFrom = _T("");
	m_strIsbn = _T("");
	m_fPrice = 0.0f;
	m_strPress = _T("");
	m_nBookName = -1;
}

void CBadPage::OnSelchangeBadComboDotype() 
{
	UpdateData();
	if(m_nDoType==0)
	{
		GetDlgItem(IDC_BAD_DATETIMEPICKER_BADDATE)->EnableWindow(TRUE);
		GetDlgItem(IDC_BAD_DATETIMEPICKER_BAOFEIDATE)->EnableWindow(FALSE);
		GetDlgItem(IDC_BAD_BUTTON_BAD)->SetWindowText("损坏");
	}
	else
	{
		GetDlgItem(IDC_BAD_DATETIMEPICKER_BADDATE)->EnableWindow(FALSE);
		GetDlgItem(IDC_BAD_DATETIMEPICKER_BAOFEIDATE)->EnableWindow(TRUE);
		GetDlgItem(IDC_BAD_BUTTON_BAD)->SetWindowText("报费");
	}
}

void CBadPage::OnSelchangeBadComboName() 
{
	UpdateData(TRUE);
	IADORecordBinding *picRs=NULL;
	CAdoBind rs;
	CString strQuery;
	_variant_t vt;
	COleDateTime odt;
	strQuery="select * from BUY";
	try{
		if(pRst->GetState()==adStateOpen)
			pRst->Close();
		pRst->Open(strQuery.AllocSysString(),pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
		TESTHR(pRst->QueryInterface(__uuidof(IADORecordBinding),(LPVOID *)&picRs));
		TESTHR(picRs->BindToRecordset(&rs));
		CString str;
		if(pRst->GetRecordCount()!=0)
		{
			for(int i=0;i<m_nBookName;i++)
				pRst->MoveNext();
			str.Format("%s",rs.m_szBigType);
			strBigType=str;
			if(str=="书籍杂志")
				m_nBigType=0;
			else if(str=="软件光盘")
				m_nBigType=1;
			else
				m_nBigType=2;
			str.Format("%s",rs.m_szName);
			strBookName=str;
			str.Format("%s",rs.m_szCbs);
			m_strPress=str;
			str.Format("%s",rs.m_szType);
			m_strType=str;
			str.Format("%s",rs.m_szAuthor);
			m_strAuthor=str;
			m_fPrice=rs.m_fPrice;
			str.Format("%s",rs.m_szIsbn);
			m_strIsbn=str;
			str.Format("%s",rs.m_szSupply);
			m_strFrom=str;
			str.Format("%s",rs.m_szDoTime);
			vt=str;
			odt=vt;
			m_buyDate=odt;
			UpdateData(FALSE);
		}
		picRs->Release();
		pRst->Close();
	}
	catch(_com_error &e)
	{
		DisplayAdoError(e);
		return;
	}
}

void CBadPage::OnBadButtonBad() 
{
	UpdateData();
	CString strBadTime,strDoType,strQuery,strPrice,strBuyTime,strDiscardTime;
	if(m_nDoType==0)
		strDoType="损坏";
	else
		strDoType="报废";
	strBadTime=m_badDate.Format("%Y-%m-%d");
	strBuyTime=m_buyDate.Format("%Y-%m-%d");
	strDiscardTime=m_baofeiDate.Format("%Y-%m-%d");
	strPrice.Format("%5.2f",m_fPrice);
	strQuery="insert into BAD(FLAG,BIGTYPE,NAME,CBS,TYPE,AUTHOR,PRICE,ISBN,SUPPLY,BUYTIME,BADTIME,DISCARDTIME) values('" \
		+strDoType+"','"+strBigType+"','"+strBookName+"','"+m_strPress+"','"+m_strType+"','"+m_strAuthor+"'," \
		+strPrice+",'"+m_strIsbn+"','"+m_strFrom+"','"+strBuyTime+"','"+strBadTime+"','"+strDiscardTime+"')";
	try{
		pConn->Execute(strQuery.AllocSysString(),NULL,adModeUnknown);
	}
	catch(_com_error &e)
	{
		DisplayAdoError(e);
		return;
	}
	InitData();
	RefreshData();
	UpdateData(FALSE);
}

void CBadPage::RefreshData()
{
	IADORecordBinding *picRs=NULL;
	CAdoBind rs;
	CBadAdoBind rs1;
	CString str;
	int item;
	m_ctrlBookName.ResetContent();
	try{
		pRst->Open("BUY",pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdTable);
		TESTHR(pRst->QueryInterface(__uuidof(IADORecordBinding),(LPVOID *)&picRs));
		TESTHR(picRs->BindToRecordset(&rs));
		item=0;
		while(!pRst->adoEOF)
		{
			str.Format("%s",rs.m_szName);
			m_ctrlBookName.InsertString(item,str);
			item++;
			pRst->MoveNext();
		}
		picRs->Release();
		pRst->Close();
	}
	catch(_com_error &e)
	{
		DisplayAdoError(e);
		return ;
	}
	m_exist.DeleteAllItems();
	try{
		pRst->Open("BAD",pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdTable);
		TESTHR(pRst->QueryInterface(__uuidof(IADORecordBinding),(LPVOID *)&picRs));
		TESTHR(picRs->BindToRecordset(&rs1));
		item=0;
		CString tType;
		while(!pRst->adoEOF)
		{
			str.Format("%s",rs1.m_szFlag);
			tType=str;
			m_exist.InsertItem(item,str);
			str.Format("%s",rs1.m_szBigType);
			m_exist.SetItemText(item,1,str);
			str.Format("%s",rs1.m_szName);
			m_exist.SetItemText(item,2,str);
			str.Format("%s",rs1.m_szCbs);
			m_exist.SetItemText(item,3,str);
			str.Format("%s",rs1.m_szType);
			m_exist.SetItemText(item,4,str);
			str.Format("%s",rs1.m_szAuthor);
			m_exist.SetItemText(item,5,str);
			str.Format("%5.2f",rs1.m_fPrice);
			m_exist.SetItemText(item,6,str);
			str.Format("%s",rs1.m_szIsbn);
			m_exist.SetItemText(item,7,str);
			str.Format("%s",rs1.m_szSupply);
			m_exist.SetItemText(item,8,str);
			str.Format("%s",rs1.m_szBuyTime);
			m_exist.SetItemText(item,9,str);
			if(tType=="损坏")
			{
				str.Format("%s",rs1.m_szBadTime);
				m_exist.SetItemText(item,10,str);
				m_exist.SetItemText(item,11,"---");
			}
			else
			{
				m_exist.SetItemText(item,10,"---");
				str.Format("%s",rs1.m_szDiscardTIme);
				m_exist.SetItemText(item,11,str);
			}
			item++;
			pRst->MoveNext();
		}
	}
	catch (_com_error &e) {
		DisplayAdoError(e);
		return;
	}
}

void CBadPage::OnClickBadListExist(NMHDR* pNMHDR, LRESULT* pResult) 
{
//	if(m_exist.GetSelectedCount()==0)
//	{
//		GetDlgItem(IDC_BAD_BUTTON_BAD)->EnableWindow(TRUE);
//		return;
//	}
//	CString str,strType;
//	_variant_t vt;
//	COleDateTime odt;
//	int sel;
//	sel=m_exist.GetSelectionMark();
//	str=m_exist.GetItemText(sel,0);
//	strType=str;
//	if(str=="损坏")
//		m_nDoType=0;
//	else
//		m_nDoType=1;
//	str=m_exist.GetItemText(sel,1);
//	if(str=="书籍杂志")
//		m_nBigType=0;
//	else if(str=="软件光盘")
//		m_nBigType=1;
//	else 
//		m_nBigType=2;
//	str=m_exist.GetItemText(sel,2);
//	GetDlgItem(IDC_BAD_COMBO_NAME)->SetWindowText(str);
//	strMakeOkBookName=str;
//	str=m_exist.GetItemText(sel,3);
//	m_strPress=str;
//	str=m_exist.GetItemText(sel,4);
//	m_strType=str;
//	str=m_exist.GetItemText(sel,5);
//	m_strAuthor=str;
//	str=m_exist.GetItemText(sel,6);
//	float temp=atof(str);
//	m_fPrice=temp;
//	str=m_exist.GetItemText(sel,7);
//	m_strIsbn=str;
//	str=m_exist.GetItemText(sel,8);
//	m_strFrom=str;
//	str=m_exist.GetItemText(sel,9);
//	vt=str;
//	odt=vt;
//	m_buyDate=odt;
//	if(strType=="损坏")
//	{
//		str=m_exist.GetItemText(sel,10);
//		vt=str;
//		odt=vt;
//		m_badDate=odt;
//		GetDlgItem(IDC_BAD_DATETIMEPICKER_BADDATE)->EnableWindow(TRUE);
//		GetDlgItem(IDC_BAD_DATETIMEPICKER_BAOFEIDATE)->EnableWindow(FALSE);
//	}
//	else
//	{
//		str=m_exist.GetItemText(sel,11);
//		vt=str;
//		odt=vt;
//		m_baofeiDate=odt;
//		GetDlgItem(IDC_BAD_DATETIMEPICKER_BADDATE)->EnableWindow(FALSE);
//		GetDlgItem(IDC_BAD_DATETIMEPICKER_BAOFEIDATE)->EnableWindow(TRUE);
//	}
//	GetDlgItem(IDC_BAD_BUTTON_BAD)->EnableWindow(FALSE);
//
//	UpdateData(FALSE);

	*pResult = 0;
}

⌨️ 快捷键说明

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