📄 odbcdemo5view.cpp
字号:
// ODBCDemo5View.cpp : implementation of the CODBCDemo5View class
//
#include "stdafx.h"
#include "ODBCDemo5.h"
#include "ODBCDemo5Set.h"
#include "ODBCDemo5Doc.h"
#include "ODBCDemo5View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "AddDlg.h"
#include "RequeryDlg.h"
#include "SortDlg.h"
/////////////////////////////////////////////////////////////////////////////
// CODBCDemo5View
IMPLEMENT_DYNCREATE(CODBCDemo5View, CRecordView)
BEGIN_MESSAGE_MAP(CODBCDemo5View, CRecordView)
//{{AFX_MSG_MAP(CODBCDemo5View)
ON_BN_CLICKED(IDC_SHOW_BUTTON, OnShowButton)
ON_BN_CLICKED(IDC_BTN_ADD, OnBtnAdd)
ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
ON_BN_CLICKED(IDC_BTN_MODIFY, OnBtnModify)
ON_BN_CLICKED(IDC_BTN_REQUERY, OnBtnRequery)
ON_BN_CLICKED(IDC_BTN_SORT, OnBtnSort)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CODBCDemo5View construction/destruction
CODBCDemo5View::CODBCDemo5View()
: CRecordView(CODBCDemo5View::IDD)
{
//{{AFX_DATA_INIT(CODBCDemo5View)
m_pSet = NULL;
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CODBCDemo5View::~CODBCDemo5View()
{
}
void CODBCDemo5View::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CODBCDemo5View)
DDX_Control(pDX, IDC_RECORD_LIST, m_Record_List);
//}}AFX_DATA_MAP
}
BOOL CODBCDemo5View::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CRecordView::PreCreateWindow(cs);
}
void CODBCDemo5View::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_oDBCDemo5Set;
CRecordView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
//m_pSet->m_strFilter="出售价格=?";
//m_pSet->m_price = 573;
//m_pSet->m_strFilter="出售价格='90'";
//m_pSet->m_strSort = "出售价格 desc";
// m_pSet->m_strFilter.Format("出售价格=%ld", 573);
// m_pSet->m_strFilter.Format("出售数量=%ld", 10);
// m_pSet->Requery();
m_pSet->Close();
// m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE, "select 出售价格 from 出售信息");
// m_pSet->Requery();
m_Record_List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
LV_COLUMN h;
h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
h.fmt=LVCFMT_CENTER;
h.cx=90;
h.pszText="图书ID";
m_Record_List.InsertColumn(0, &h);
h.pszText="出售价格";
m_Record_List.InsertColumn(1, &h);
h.pszText="ISBN";
m_Record_List.InsertColumn(2, &h);
h.pszText="出售数量";
m_Record_List.InsertColumn(3, &h);
OnShowButton();
}
/////////////////////////////////////////////////////////////////////////////
// CODBCDemo5View printing
BOOL CODBCDemo5View::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CODBCDemo5View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CODBCDemo5View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CODBCDemo5View diagnostics
#ifdef _DEBUG
void CODBCDemo5View::AssertValid() const
{
CRecordView::AssertValid();
}
void CODBCDemo5View::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}
CODBCDemo5Doc* CODBCDemo5View::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CODBCDemo5Doc)));
return (CODBCDemo5Doc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CODBCDemo5View database support
CRecordset* CODBCDemo5View::OnGetRecordset()
{
return m_pSet;
}
/////////////////////////////////////////////////////////////////////////////
// CODBCDemo5View message handlers
void CODBCDemo5View::OnShowButton()
{
// TODO: Add your control notification handler code here
m_Record_List.DeleteAllItems();
CString s;
i = 0;
//m_pSet->m_strFilter.Format("出售价格=%ld", 22);
//m_pSet->Requery();
m_pSet->MoveFirst();
/* while(m_Record_List.DeleteColumn(0));
LV_COLUMN h;
h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
h.fmt=LVCFMT_CENTER;
h.cx=90;
h.pszText="图书ID";
m_Record_List.InsertColumn(0, &h);*/
while(!m_pSet->IsEOF())
{
//if(m_pSet->m___ID==1)
//{
s.Format("%ld", m_pSet->m___ID);
m_Record_List.InsertItem(i, s);
s.Format("%ld", m_pSet->m_column1);
m_Record_List.SetItemText(i, 1, s);
m_Record_List.SetItemText(i, 2, m_pSet->m_ISBN);
s.Format("%ld", m_pSet->m_column2);
m_Record_List.SetItemText(i, 3, s);
//break;
//}
m_pSet->MoveNext();
i++;
}
}
void CODBCDemo5View::OnBtnAdd()
{
// TODO: Add your control notification handler code here
CAddDlg dlg;
CString s;
if(IDOK == dlg.DoModal())
{
m_pSet->AddNew();
m_pSet->m___ID = atol(dlg.m_id);
m_pSet->m_column1 = atol(dlg.m_Price);
m_pSet->m_ISBN = dlg.m_ISBN;
m_pSet->m_column2 = atol(dlg.m_sum);
s.Format("%d", m_pSet->m___ID);
m_Record_List.InsertItem(i, s);
s.Format("%d", m_pSet->m_column1);
m_Record_List.SetItemText(i, 1, s);
m_Record_List.SetItemText(i, 2, m_pSet->m_ISBN);
s.Format("%d", m_pSet->m_column2);
m_Record_List.SetItemText(i, 3, s);
m_pSet->Update();
i++;
}
}
void CODBCDemo5View::OnBtnDelete()
{
// TODO: Add your control notification handler code here
CString s;
m_pSet->MoveFirst();
int index = m_Record_List.GetNextItem(-1, LVNI_SELECTED);
if(index != -1)
{
while(!m_pSet->IsEOF())
{
s.Format("%ld", m_pSet->m___ID);
if(s == m_Record_List.GetItemText(index, 0))
{
m_pSet->Delete();
i--;
}
m_pSet->MoveNext();
}
MessageBox("记录已经删除!");
m_Record_List.DeleteItem(index);
}
else
{
MessageBox("请选中要删除的记录!");
}
}
void CODBCDemo5View::OnBtnModify()
{
// TODO: Add your control notification handler code here
CString s;
int j = 0;
CAddDlg dlg;
m_pSet->MoveFirst();
int index = m_Record_List.GetNextItem(-1, LVNI_SELECTED);
if(index != -1)
{
dlg.m_id = m_Record_List.GetItemText(index, 0);
dlg.m_Price = m_Record_List.GetItemText(index, 1);
dlg.m_ISBN = m_Record_List.GetItemText(index, 2);
dlg.m_sum = m_Record_List.GetItemText(index, 3);
if(IDOK == dlg.DoModal())
{
while(!m_pSet->IsEOF())
{
if(m_pSet->m___ID == atol(dlg.m_id))
{
m_pSet->Edit();
m_pSet->m___ID = atol(dlg.m_id);
m_pSet->m_column1 = atol(dlg.m_Price);
m_pSet->m_ISBN = dlg.m_ISBN;
m_pSet->m_column2 = atol(dlg.m_sum);
m_pSet->Update();
MessageBox("记录已经修改!");
m_Record_List.DeleteItem(j);
s.Format("%ld", m_pSet->m___ID);
m_Record_List.InsertItem(j, s);
s.Format("%ld", m_pSet->m_column1);
m_Record_List.SetItemText(j, 1, s);
m_Record_List.SetItemText(j, 2, m_pSet->m_ISBN);
s.Format("%ld", m_pSet->m_column2);
m_Record_List.SetItemText(j, 3, s);
break;
}
else
{
j++;
m_pSet->MoveNext();
}
}
}
}
else
{
MessageBox("请选中要修改的记录!");
}
}
void CODBCDemo5View::OnBtnRequery()
{
// TODO: Add your control notification handler code here
CString s;
RequeryDlg dlg;
BOOL b = FALSE;
int j = 0;
m_pSet->MoveFirst();
if(IDOK == dlg.DoModal())
{
m_Record_List.DeleteAllItems();
while(!m_pSet->IsEOF())
{
if(m_pSet->m___ID == dlg.m_RequeryName)
{
s.Format("%ld", m_pSet->m___ID);
m_Record_List.InsertItem(j, s);
s.Format("%ld", m_pSet->m_column1);
m_Record_List.SetItemText(j, 1, s);
m_Record_List.SetItemText(j, 2, m_pSet->m_ISBN);
s.Format("%ld", m_pSet->m_column2);
m_Record_List.SetItemText(j, 3, s);
j++;
}
m_pSet->MoveNext();
}
if(!j)
MessageBox("你所要的记录不存在!");
}
}
void CODBCDemo5View::OnBtnSort()
{
// TODO: Add your control notification handler code here
CSortDlg dlg;
if(IDOK == dlg.DoModal())
{
m_Record_List.DeleteAllItems();
m_pSet->m_strSort = dlg.m_GetString;
m_pSet->Requery();//重新建立记录集时使用
OnShowButton();
}
}
void CODBCDemo5View::OnDraw(CDC* pDC)
{
// TODO: Add your specialized code here and/or call the base class
CODBCDemo5Doc *pDoc = GetDocument();
ASSERT_VALID(pDoc);
CDC MemDC;
MemDC.CreateCompatibleDC(NULL);
MemDC.SelectObject(pDoc->m_Bitmap);
pDC->BitBlt(0, 0, pDoc->m_nWidth, pDoc->m_nHeight, &MemDC, 0, 50, SRCCOPY);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -