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

📄 bankoperationview.cpp

📁 Visual C++NET专业项目实例开发-源代码Project01Chapter08BankOperation
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// BankOperationView.cpp : implementation of the CBankOperationView class
//

#include "stdafx.h"
#include "BankOperation.h"
#include "Ref_AccNo.h"
#include "ChkBook.h"
#include "Deposit.h"
#include "Transfer.h"

#include "BankOperationSet.h"
#include "BankOperationDoc.h"
#include "BankOperationView.h"
#include "Tran_DW.h"

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

using namespace AUTOGEN_ACCOUNT_NOLib;

Ref_AccNo* m_pRef;
CChkBook *m_pBk;

/////////////////////////////////////////////////////////////////////////////
// CBankOperationView

IMPLEMENT_DYNCREATE(CBankOperationView, CRecordView)

BEGIN_MESSAGE_MAP(CBankOperationView, CRecordView)
	//{{AFX_MSG_MAP(CBankOperationView)
	ON_COMMAND(ID_RECORD_FIRST, OnRecordFirst)
	ON_COMMAND(ID_RECORD_LAST, OnRecordLast)
	ON_COMMAND(ID_RECORD_NEXT, OnRecordNext)
	ON_COMMAND(ID_RECORD_PREV, OnRecordPrev)
	ON_BN_CLICKED(IDC_SAVE, OnSave)
	ON_BN_CLICKED(IDC_DELETE, OnDeActivate)
	ON_CBN_SELCHANGE(IDC_ACCNO, OnSelchangeAccno)
	ON_BN_CLICKED(IDC_UPD, OnUpd)
	ON_BN_CLICKED(IDC_MOD, OnMod)
	ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
	ON_BN_CLICKED(IDC_CLEAR, OnClear)
	ON_BN_CLICKED(IDC_DEPOSIT, OnDeposit)
	ON_BN_CLICKED(IDC_TRANSFER, OnTransfer)
	ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedFirst)
	ON_BN_CLICKED(IDC_BUTTON4, OnBnClickedLast)
	ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedPrev)
	ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedNext)
	ON_BN_CLICKED(IDC_COMMIT, OnBnClickedCommit)
	ON_BN_CLICKED(IDC_REACTIVATE, OnBnClickedReactivate)
	ON_BN_CLICKED(IDC_CANCEL1, OnBnClickedCancel1)
	ON_COMMAND(ID_REPORTS_DAYENDTRANSACTIONS, OnReportsDayendtransactions)
	ON_COMMAND(ID_REPORTS_MORE, OnReportsMore)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBankOperationView construction/destruction

CBankOperationView::CBankOperationView()
	: CRecordView(CBankOperationView::IDD)
{
	//{{AFX_DATA_INIT(CBankOperationView)
	m_pSet = NULL;
	m_pRef = NULL;
	m_pBk=NULL;
	//}}AFX_DATA_INIT
	// TODO: add construction code here
	m_nCurrentRecord = 0;
	m_bAddNewAccount = FALSE;
	m_bFromCancel = FALSE;
	m_bFromCommit = FALSE;
	m_bFromUpdate = FALSE;
}

CBankOperationView::~CBankOperationView()
{
}

void CBankOperationView::DoDataExchange(CDataExchange* pDX)
{
	CRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBankOperationView)
	DDX_FieldText(pDX, IDC_ACCNO, m_pSet->m_Account_Number, m_pSet);
	DDX_FieldText(pDX, IDC_AMOUNT, m_pSet->m_Balance, m_pSet);
	DDX_FieldText(pDX, IDC_EMAIL, m_pSet->m_eMailID, m_pSet);
	DDX_FieldText(pDX, IDC_FNAME, m_pSet->m_First_Name, m_pSet);
	DDX_FieldText(pDX, IDC_LNAME, m_pSet->m_Last_Name, m_pSet);
	DDX_FieldText(pDX, IDC_MADD, m_pSet->m_Mailing_Addr, m_pSet);
	DDX_FieldText(pDX, IDC_PADD, m_pSet->m_Permanent_Addr, m_pSet);
	DDX_FieldText(pDX, IDC_PHONE, m_pSet->m_Phone_Number, m_pSet);
	DDX_FieldText(pDX, IDC_DOB, m_pSet->m_date_birth, m_pSet);
	DDX_FieldText(pDX, IDC_REFACCNO, m_pSet->m_Ref_Acc_No, m_pSet);
	//}}AFX_DATA_MAP
}

BOOL CBankOperationView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CRecordView::PreCreateWindow(cs);
}

void CBankOperationView::OnInitialUpdate()
{
	CMonthCalCtrl *pDOB;
	pDOB = (CMonthCalCtrl *)GetDlgItem(IDC_DOB);
	
	m_pSet = &GetDocument()->m_bankOperationSet;
	m_pRef = new Ref_AccNo;

	//Set the max limit of the DOB edit box to 10
	((CEdit*)GetDlgItem(IDC_DOB))->SetLimitText(10);

	if(!m_pSet->IsOpen ())
		m_pSet->Open();
	if(!m_pSet->IsBOF() && m_pSet->IsEOF())
		m_pSet->MoveFirst();

	if (m_bFromCancel || m_bFromCommit || m_bFromUpdate)
	{
		m_pSet->MoveFirst();
		m_pSet->MoveLast();
		UpdateData(true);
		m_pSet->Requery();
	}

	CRecordView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

	CComboBox* cmb=(CComboBox*)GetDlgItem(IDC_ACCNO);
	
	if (!m_bFromCancel && !m_bFromCommit && !m_bFromUpdate)
	{
		while(!m_pSet->IsEOF())
		{
			char str[30];
			sprintf(str,"%d",m_pSet->m_Account_Number);
			cmb->AddString(str);
			m_pSet->MoveNext();
		}
		m_pSet->MoveFirst();
	}

	//Enable Disable 
	if (m_pSet->m_Valid_Acc.CompareNoCase("CA"))
	{
		((CButton*)GetDlgItem(IDC_REACTIVATE))->EnableWindow(false);
	}
	else
	{
		((CButton*)GetDlgItem(IDC_REACTIVATE))->EnableWindow(true);
	}

	CButton *b1;
	b1=(CButton*)GetDlgItem(IDC_UPD);
	b1->EnableWindow(false);
	CButton *bAdd,*bMod,*bDel,*bUpd, *pCancel;
	if(m_pSet->m_Valid_Acc=="CA")
	{
		SetDlgItemText(IDC_VALID,"UnOperational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(false);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);

		pCancel=(CButton*)GetDlgItem(IDC_CANCEL1);
		pCancel->EnableWindow(false);

		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(false);
		
		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(false);
		
		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}
	else
	{	
		SetDlgItemText(IDC_VALID,"Operational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(true);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);
		
		pCancel=(CButton*)GetDlgItem(IDC_CANCEL1);
		pCancel->EnableWindow(false);
		
		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(true);
		
		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(true);

		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}

	CButton *pSaving,*pCurrent,*pChecking;
	pSaving=(CButton*)GetDlgItem(IDC_RADIO1);
	pCurrent=(CButton*)GetDlgItem(IDC_RADIO2);
	pChecking=(CButton*)GetDlgItem(IDC_RADIO3);

	if(m_pSet->m_Type_account=="S")
	{
		pSaving->SetCheck(true);
		pCurrent->SetCheck(false);
		pChecking->SetCheck(false);
	}
	else if(m_pSet->m_Type_account=="C")
	{
		pSaving->SetCheck(false);
		pCurrent->SetCheck(true);
		pChecking->SetCheck(false);
	}
	else if(m_pSet->m_Type_account=="K")
	{
		pSaving->SetCheck(false);
		pCurrent->SetCheck(false);
		pChecking->SetCheck(true);
	}

	CTime t1=CTime::GetCurrentTime();
	int dd=t1.GetDay();
	int mm=t1.GetMonth();
	int yy=t1.GetYear();
	char str[30];
	sprintf(str,"%2d/%2d/%2d",dd,mm,yy);
	SetDlgItemText(IDC_CURRDT,str);

	EnableDisableNavigationKeys(5);
}

/////////////////////////////////////////////////////////////////////////////
// CBankOperationView diagnostics

#ifdef _DEBUG
void CBankOperationView::AssertValid() const
{
	CRecordView::AssertValid();
}

void CBankOperationView::Dump(CDumpContext& dc) const
{
	CRecordView::Dump(dc);
}

CBankOperationDoc* CBankOperationView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CBankOperationDoc)));
	return (CBankOperationDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CBankOperationView database support
CRecordset* CBankOperationView::OnGetRecordset()
{
	return m_pSet;
}


/////////////////////////////////////////////////////////////////////////////
// CBankOperationView message handlers
void CBankOperationView::OnRecordFirst() 
{
	m_nCurrentRecord = 1;
	m_pSet->MoveFirst();
	UpdateData(false);

	CButton *bAdd,*bMod,*bDel,*bUpd, *bReac;
	if(m_pSet->m_Valid_Acc=="CA")
	{
		SetDlgItemText(IDC_VALID,"UnOperational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(false);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);
		
		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(false);

		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(false);

		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}
	else
	{	
		SetDlgItemText(IDC_VALID,"Operational Account");
		
		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(true);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);
		
		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(true);
		
		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(true);

		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}
	CButton *pSaving,*pCurrent,*pChecking;
	pSaving=(CButton*)GetDlgItem(IDC_RADIO1);
	pCurrent=(CButton*)GetDlgItem(IDC_RADIO2);
	pChecking=(CButton*)GetDlgItem(IDC_RADIO3);

	if(m_pSet->m_Type_account=="S")
	{
		pSaving->SetCheck(true);
		pCurrent->SetCheck(false);
		pChecking->SetCheck(false);
	}
	else if(m_pSet->m_Type_account=="C")
	{
		pSaving->SetCheck(false);
		pCurrent->SetCheck(true);
		pChecking->SetCheck(false);
	}
	else if(m_pSet->m_Type_account=="K")
	{
		pSaving->SetCheck(false);
		pCurrent->SetCheck(false);
		pChecking->SetCheck(true);
	}

}

void CBankOperationView::OnRecordLast() 
{
	if(!m_pSet->IsOpen())
		m_pSet->Open();
	if(!m_pSet->IsBOF() && m_pSet->IsEOF ())
	{
		m_pSet->MoveFirst();
	}
	int nTotalRecordCount=0;
	while (!m_pSet->IsEOF())
	{
		nTotalRecordCount++;
		m_pSet->MoveNext();
	}

	m_nCurrentRecord = nTotalRecordCount;

	m_pSet->MoveLast();
	UpdateData(false);

	CButton *bAdd,*bMod,*bDel,*bUpd;
	if(m_pSet->m_Valid_Acc=="CA")
	{
		SetDlgItemText(IDC_VALID,"UnOperational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(false);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);
		
		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(false);
		
		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(false);
		
		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}
	else
	{	
		SetDlgItemText(IDC_VALID,"Operational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(true);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);
		
		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(true);
		
		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(true);

		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}

	CButton *pSaving,*pCurrent,*pChecking;
	pSaving=(CButton*)GetDlgItem(IDC_RADIO1);
	pCurrent=(CButton*)GetDlgItem(IDC_RADIO2);
	pChecking=(CButton*)GetDlgItem(IDC_RADIO3);

	if(m_pSet->m_Type_account=="S")
	{
		pSaving->SetCheck(true);
		pCurrent->SetCheck(false);
		pChecking->SetCheck(false);
	}
	else if(m_pSet->m_Type_account=="C")
	{
		pSaving->SetCheck(false);
		pCurrent->SetCheck(true);
		pChecking->SetCheck(false);
	}
	else if(m_pSet->m_Type_account=="K")
	{
		pSaving->SetCheck(false);
		pCurrent->SetCheck(false);
		pChecking->SetCheck(true);
	}
}

void CBankOperationView::OnRecordNext() 
{
	m_nCurrentRecord++;

	if(m_pSet->IsEOF())
	{
		AfxMessageBox("Attempt to scroll beyond Last Record");
		return;
	}
	m_pSet->MoveNext();
	UpdateData(false);	
	
	CButton *bAdd,*bMod,*bDel,*bUpd;
	if(m_pSet->m_Valid_Acc=="CA")
	{
		SetDlgItemText(IDC_VALID,"UnOperational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(false);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);
		
		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(false);
		
		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(false);
		
		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}
	else
	{	
		SetDlgItemText(IDC_VALID,"Operational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(true);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);
		
		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(true);
		
		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(true);

		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}

	CButton *pSaving,*pCurrent,*pChecking;
	pSaving=(CButton*)GetDlgItem(IDC_RADIO1);
	pCurrent=(CButton*)GetDlgItem(IDC_RADIO2);
	pChecking=(CButton*)GetDlgItem(IDC_RADIO3);
	
	if(m_pSet->m_Type_account=="S")
	{
		pSaving->SetCheck(true);
		pCurrent->SetCheck(false);
		pChecking->SetCheck(false);
	}
	else if(m_pSet->m_Type_account=="C")
	{
		pSaving->SetCheck(false);
		pCurrent->SetCheck(true);
		pChecking->SetCheck(false);
	}
	else if(m_pSet->m_Type_account=="K")
	{
		pSaving->SetCheck(false);
		pCurrent->SetCheck(false);
		pChecking->SetCheck(true);
	}

}

void CBankOperationView::OnRecordPrev() 
{
	m_nCurrentRecord--;

	if(m_pSet->IsBOF())
	{
		AfxMessageBox("Attempt to scroll beyond First Record");
		return;
	}
	m_pSet->MovePrev();
	UpdateData(false);
	
	CButton *bAdd,*bMod,*bDel,*bUpd;
	if(m_pSet->m_Valid_Acc=="CA")
	{
		SetDlgItemText(IDC_VALID,"UnOperational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);
		bAdd->EnableWindow(false);
		
		bUpd=(CButton*)GetDlgItem(IDC_UPD);
		bUpd->EnableWindow(false);
		
		bMod=(CButton*)GetDlgItem(IDC_MOD);
		bMod->EnableWindow(false);
		
		bDel=(CButton*)GetDlgItem(IDC_DELETE);
		bDel->EnableWindow(false);
		
		CButton *chk1;
		chk1=(CButton*)GetDlgItem(IDC_CHECK1);
		chk1->SetCheck(false);
	}
	else
	{	
		SetDlgItemText(IDC_VALID,"Operational Account");

		bAdd=(CButton*)GetDlgItem(IDC_SAVE);

⌨️ 快捷键说明

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