?? dbview.cpp
字號:
// DBView.cpp : implementation of the CDBView class
//
#include "stdafx.h"
#include "DB.h"
#include"SCDLG.h"
#include "DBSet.h"
#include "DBDoc.h"
#include "DBView.h"
#include "ADDDLG.h"
#include "SORTDLG.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDBView
IMPLEMENT_DYNCREATE(CDBView, CRecordView)
BEGIN_MESSAGE_MAP(CDBView, CRecordView)
//{{AFX_MSG_MAP(CDBView)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_delete, Ondelete)
ON_BN_CLICKED(IDC_modify, Onmodify)
ON_BN_CLICKED(IDC_find, Onfind)
ON_BN_CLICKED(IDC_sort, Onsort)
ON_BN_CLICKED(IDC_SHOWGRADE, OnShowgrade)
//}}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()
/////////////////////////////////////////////////////////////////////////////
// CDBView construction/destruction
CDBView::CDBView()
: CRecordView(CDBView::IDD)
{ showflag=false;
//{{AFX_DATA_INIT(CDBView)
m_pSet = NULL;
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CDBView::~CDBView()
{
}
void CDBView::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDBView)
DDX_FieldText(pDX, IDC_Sage, m_pSet->m_Sage, m_pSet);
DDX_FieldText(pDX, IDC_Sname, m_pSet->m_Sname, m_pSet);
DDX_FieldText(pDX, IDC_Sno, m_pSet->m_Sno, m_pSet);
DDX_FieldText(pDX, IDC_SDEPT, m_pSet->m_Sdept, m_pSet);
DDX_FieldText(pDX, IDC_SSEX, m_pSet->m_Ssex, m_pSet);
//}}AFX_DATA_MAP
}
BOOL CDBView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CRecordView::PreCreateWindow(cs);
}
void CDBView::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_dBSet;
CRecordView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
}
/////////////////////////////////////////////////////////////////////////////
// CDBView printing
BOOL CDBView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CDBView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CDBView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CDBView diagnostics
#ifdef _DEBUG
void CDBView::AssertValid() const
{
CRecordView::AssertValid();
}
void CDBView::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}
CDBDoc* CDBView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDBDoc)));
return (CDBDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CDBView database support
CRecordset* CDBView::OnGetRecordset()
{
return m_pSet;
}
/////////////////////////////////////////////////////////////////////////////
// CDBView message handlers
void CDBView::OnAdd()
{
ADDDLG mydlg;
if(mydlg.DoModal()==IDOK)
{m_pSet->AddNew();
m_pSet->m_Sage=mydlg.m_sage;
m_pSet->m_Sno=mydlg.m_sno;
m_pSet->m_Sname=mydlg.m_sname;
m_pSet->m_Sdept=mydlg.m_sdept;
m_pSet->m_Ssex=mydlg.m_ssex;
m_pSet->Update();
m_pSet->Requery();
m_pSet->MoveLast();
UpdateData(false);
}
}
void CDBView::Ondelete()
{
if(MessageBox("確定嗎?","你真的要刪除嗎?",MB_YESNO|MB_ICONINFORMATION)==IDYES)
{
if(!m_pSet->IsEOF())
{m_pSet->Delete();
m_pSet->Requery();
UpdateData(false);}
}}
void CDBView::Onmodify()
{
ADDDLG mydlg;
mydlg.m_sage=m_pSet->m_Sage;
mydlg.m_sname=m_pSet->m_Sname;
mydlg.m_sno=m_pSet->m_Sno;
mydlg.m_sdept=m_pSet->m_Sdept;
mydlg.m_ssex=m_pSet->m_Ssex;
UpdateData(false);
if(mydlg.DoModal()==IDOK)
{m_pSet->Edit();
m_pSet->m_Sage=mydlg.m_sage;
m_pSet->m_Sno=mydlg.m_sno;
m_pSet->m_Sname=mydlg.m_sname;
m_pSet->m_Sdept=mydlg.m_sdept;
m_pSet->m_Ssex=mydlg.m_ssex;
m_pSet->Update();
m_pSet->Requery();
UpdateData(false);}
}
void CDBView::Onfind()
{showflag=true;
SORTDLG mydlg;
if(mydlg.DoModal()==IDOK)
{if(mydlg.sortstr=="sage")
m_pSet->m_strFilter=mydlg.sortstr+"="+mydlg.m_findstr;
else
m_pSet->m_strFilter=mydlg.sortstr+"='"+mydlg.m_findstr+"'";
m_pSet->Requery();
UpdateData(false); }
}
void CDBView::Onsort()
{ showflag=false;
SORTDLG mydlg;
if(mydlg.DoModal()==IDOK)
{m_pSet->m_strSort=mydlg.sortstr;
m_pSet->Requery();
UpdateData(false);
}
}
void CDBView::OnShowgrade()
{
SCDLG mydlg;
mydlg.DoModal();}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -