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