DateBaseView.cpp
上传用户:z_mail1980
上传日期:2007-06-01
资源大小:647k
文件大小:5k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. // DateBaseView.cpp : implementation of the CDateBaseView class
  2. //
  3. #include "stdafx.h"
  4. #include "DateBase.h"
  5. #include "DateBaseSet.h"
  6. #include "DateBaseDoc.h"
  7. #include "DateBaseView.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CDateBaseView
  15. IMPLEMENT_DYNCREATE(CDateBaseView, CRecordView)
  16. BEGIN_MESSAGE_MAP(CDateBaseView, CRecordView)
  17. //{{AFX_MSG_MAP(CDateBaseView)
  18. ON_COMMAND(IDM_RECORD_NEW, OnRecordNew)
  19. ON_COMMAND(IDM_RECORD_DELETE, OnRecordDelete)
  20. //}}AFX_MSG_MAP
  21. // Standard printing commands
  22. ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
  23. ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
  24. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
  25. END_MESSAGE_MAP()
  26. /////////////////////////////////////////////////////////////////////////////
  27. // CDateBaseView construction/destruction
  28. CDateBaseView::CDateBaseView()
  29. : CRecordView(CDateBaseView::IDD)
  30. {
  31. //{{AFX_DATA_INIT(CDateBaseView)
  32. m_pSet = NULL;
  33. m_oledtDOB = COleDateTime::GetCurrentTime();
  34. //}}AFX_DATA_INIT
  35. // TODO: add construction code here
  36. }
  37. CDateBaseView::~CDateBaseView()
  38. {
  39. }
  40. void CDateBaseView::DoDataExchange(CDataExchange* pDX)
  41. {
  42. CRecordView::DoDataExchange(pDX);
  43. if(pDX->m_bSaveAndValidate==FALSE)
  44. m_oledtDOB=m_pSet->m_Birthday;
  45. //{{AFX_DATA_MAP(CDateBaseView)
  46. DDX_FieldCheck(pDX, IDC_CBCARD, m_pSet->m_PostalCard, m_pSet);
  47. DDX_FieldText(pDX, IDC_EADDR, m_pSet->m_Address, m_pSet);
  48. DDX_FieldText(pDX, IDC_ECITY, m_pSet->m_City_county, m_pSet);
  49. DDX_FieldText(pDX, IDC_ECOUNTRY, m_pSet->m_Country, m_pSet);
  50. DDX_FieldText(pDX, IDC_EEMAIL, m_pSet->m_E_mail, m_pSet);
  51. DDX_FieldText(pDX, IDC_EFAX, m_pSet->m_Fax, m_pSet);
  52. DDX_FieldText(pDX, IDC_EFNAME, m_pSet->m_First_Name, m_pSet);
  53. DDX_FieldText(pDX, IDC_EHPHONE, m_pSet->m_HomePhone, m_pSet);
  54. DDX_FieldText(pDX, IDC_EID, m_pSet->m_AddressID, m_pSet);
  55. DDX_FieldText(pDX, IDC_ELNAME, m_pSet->m_Last_Name, m_pSet);
  56. DDX_FieldText(pDX, IDC_ENOTES, m_pSet->m_Notes, m_pSet);
  57. DDX_FieldText(pDX, IDC_ESNAME, m_pSet->m_SpouseName, m_pSet);
  58. DDX_FieldText(pDX, IDC_ESTATE, m_pSet->m_Province, m_pSet);
  59. DDX_FieldText(pDX, IDC_EWPHONE, m_pSet->m_WorkPhone, m_pSet);
  60. DDX_FieldText(pDX, IDC_EZIP, m_pSet->m_Zip, m_pSet);
  61. DDX_Text(pDX, IDC_EDOB, m_oledtDOB);
  62. //}}AFX_DATA_MAP
  63. if(pDX->m_bSaveAndValidate==TRUE)
  64. m_pSet->m_Birthday=m_oledtDOB;
  65. }
  66. BOOL CDateBaseView::PreCreateWindow(CREATESTRUCT& cs)
  67. {
  68. // TODO: Modify the Window class or styles here by modifying
  69. //  the CREATESTRUCT cs
  70. return CRecordView::PreCreateWindow(cs);
  71. }
  72. void CDateBaseView::OnInitialUpdate()
  73. {
  74. m_pSet = &GetDocument()->m_dateBaseSet;
  75. CRecordView::OnInitialUpdate();
  76. GetParentFrame()->RecalcLayout();
  77. ResizeParentToFit();
  78. }
  79. /////////////////////////////////////////////////////////////////////////////
  80. // CDateBaseView printing
  81. BOOL CDateBaseView::OnPreparePrinting(CPrintInfo* pInfo)
  82. {
  83. // default preparation
  84. return DoPreparePrinting(pInfo);
  85. }
  86. void CDateBaseView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  87. {
  88. // TODO: add extra initialization before printing
  89. }
  90. void CDateBaseView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  91. {
  92. // TODO: add cleanup after printing
  93. }
  94. /////////////////////////////////////////////////////////////////////////////
  95. // CDateBaseView diagnostics
  96. #ifdef _DEBUG
  97. void CDateBaseView::AssertValid() const
  98. {
  99. CRecordView::AssertValid();
  100. }
  101. void CDateBaseView::Dump(CDumpContext& dc) const
  102. {
  103. CRecordView::Dump(dc);
  104. }
  105. CDateBaseDoc* CDateBaseView::GetDocument() // non-debug version is inline
  106. {
  107. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDateBaseDoc)));
  108. return (CDateBaseDoc*)m_pDocument;
  109. }
  110. #endif //_DEBUG
  111. /////////////////////////////////////////////////////////////////////////////
  112. // CDateBaseView database support
  113. CRecordset* CDateBaseView::OnGetRecordset()
  114. {
  115. return m_pSet;
  116. }
  117. /////////////////////////////////////////////////////////////////////////////
  118. // CDateBaseView message handlers
  119. void CDateBaseView::OnRecordNew() 
  120. {
  121. // TODO: Add your command handler code here
  122. CRecordset *pSet=OnGetRecordset();
  123. if(pSet->CanUpdate()&&!pSet->IsDeleted ())
  124. {
  125. pSet->Edit();
  126. if(!UpdateData())
  127. return;
  128. pSet->Update();
  129. }
  130. long m_lNewID=m_pSet->GetMaxID()+1;
  131.     m_pSet->AddNew();
  132. m_pSet->m_AddressID=m_lNewID;
  133. m_pSet->Update();
  134. m_pSet->Requery();
  135. m_pSet->MoveLast();
  136. UpdateData(FALSE);
  137. }
  138. void CDateBaseView::OnRecordDelete() 
  139. {
  140. // TODO: Add your command handler code here
  141. if(MessageBox("你确定删除这条记录吗?","删除?",
  142. MB_YESNO|MB_ICONQUESTION)==IDYES)
  143. {
  144. m_pSet->Delete();
  145. m_pSet->MovePrev();
  146. UpdateData();
  147. }
  148. }