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

📄 exadg_2.cpp

📁 基于mfc的DAO数据库连接编程,并包含图形的报表的生成以及表格报表的底层建模
💻 CPP
字号:
// ExaDg_2.cpp : implementation file
//

#include "stdafx.h"
#include "Example_2.h"
#include "ExaDg_2.h"
#include <afxpriv.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// ExaDg_2 dialog


ExaDg_2::ExaDg_2(CExample_2Doc* pDoc,CWnd* pParent /*=NULL*/)
	: CDialog(ExaDg_2::IDD, pParent)
{
	ASSERT_VALID(pDoc);
	m_pDoc=pDoc;
	m_Add=FALSE;
	//{{AFX_DATA_INIT(ExaDg_2)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void ExaDg_2::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX,IDC_EDIT1,m_pDoc->m_Exaset.m_fy);
	DDX_Text(pDX,IDC_EDIT10,m_pDoc->m_Exaset.m_f9);
	DDX_Text(pDX,IDC_EDIT11,m_pDoc->m_Exaset.m_f10);
	DDX_Text(pDX,IDC_EDIT2,m_pDoc->m_Exaset.m_f1);
	DDX_Text(pDX,IDC_EDIT3,m_pDoc->m_Exaset.m_f2);
	DDX_Text(pDX,IDC_EDIT4,m_pDoc->m_Exaset.m_f3);
	DDX_Text(pDX,IDC_EDIT5,m_pDoc->m_Exaset.m_f4);
	DDX_Text(pDX,IDC_EDIT6,m_pDoc->m_Exaset.m_f5);
	DDX_Text(pDX,IDC_EDIT7,m_pDoc->m_Exaset.m_f6);
	DDX_Text(pDX,IDC_EDIT8,m_pDoc->m_Exaset.m_f7);
	DDX_Text(pDX,IDC_EDIT9,m_pDoc->m_Exaset.m_f8);
	//{{AFX_DATA_MAP(ExaDg_2)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(ExaDg_2, CDialog)
	//{{AFX_MSG_MAP(ExaDg_2)
	ON_MESSAGE_VOID(WM_KICKIDLE,OnKickIdle)
	ON_COMMAND(ID_RECORD_FIRST, OnRecordFirst)
	ON_UPDATE_COMMAND_UI(ID_RECORD_FIRST, OnUpdateRecordFirst)
	ON_COMMAND(ID_RECORD_NEXT, OnRecordNext)
	ON_UPDATE_COMMAND_UI(ID_RECORD_NEXT, OnUpdateRecordNext)
	ON_COMMAND(ID_RECORD_PREV, OnRecordPrev)
	ON_UPDATE_COMMAND_UI(ID_RECORD_PREV, OnUpdateRecordPrev)
	ON_COMMAND(ID_RECORD_LAST, OnRecordLast)
	ON_UPDATE_COMMAND_UI(ID_RECORD_LAST, OnUpdateRecordLast)
	ON_COMMAND(ID_RECORD_ADD, OnRecordAdd)
	ON_UPDATE_COMMAND_UI(ID_RECORD_ADD, OnUpdateRecordAdd)
	ON_COMMAND(ID_RECORD_DELETE, OnRecordDelete)
	ON_UPDATE_COMMAND_UI(ID_RECORD_DELETE, OnUpdateRecordDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// ExaDg_2 message handlers

BOOL ExaDg_2::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	if (!m_TBar.Create(this)||
		!m_TBar.LoadToolBar(IDR_TOOLBAR1))
	{
		TRACE0("在对话框中增加工具条失败\n");
		EndDialog(IDCANCEL);
	
	}


	CRect rcClientStart;
	CRect rcClientNow;
	GetClientRect(rcClientStart);// 把工具栏放在(0.0)点,
	RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,
				  0,reposQuery,rcClientNow);
	CPoint ptOffset(rcClientNow.left - rcClientStart.left,
					rcClientNow.top - rcClientStart.top);
	CRect rcChild;
	CWnd* pwndChild = GetWindow(GW_CHILD);
	while (pwndChild)
{		
		pwndChild->GetWindowRect(rcChild);
		ScreenToClient(rcChild);
		rcChild.OffsetRect(ptOffset);
		pwndChild->MoveWindow(rcChild,FALSE);
		pwndChild=pwndChild->GetNextWindow();
}

      CRect rcWindow;
      GetWindowRect(rcWindow);
      rcWindow.right += rcClientStart.Width() - rcClientNow.Width();
      rcWindow.bottom += rcClientStart.Height() - rcClientNow.Height();
      MoveWindow(rcWindow, FALSE);
	  RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_FIRST,0);
	  CenterWindow();
	
	
	  
	 return TRUE;  
	// return TRUE unless you set the focus to a control
	              
	// EXCEPTION: OCX Property Pages should return FALSE

}
void ExaDg_2::OnKickIdle()
{
	SendMessageToDescendants(WM_IDLEUPDATECMDUI);
}

void ExaDg_2::OnRecordFirst() 
{
	// TODO: Add your command handler code here
	Adding();
	if((!m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF()) || 
	  (m_pDoc->m_Exaset.IsBOF()&&!m_pDoc->m_Exaset.IsEOF()))
	  ;
	else
	{
	m_pDoc->m_Exaset.Edit();
	UpdateData();
	m_pDoc->m_Exaset.Update();
	}
	m_pDoc->m_Exaset.MoveFirst();
	UpdateData(FALSE);
}

void ExaDg_2::OnUpdateRecordFirst(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF())
		pCmdUI->Enable(FALSE);
	else
		pCmdUI->Enable(TRUE);
}

void ExaDg_2::OnRecordNext() 
{
	// TODO: Add your command handler code here
	if(m_pDoc->m_Exaset.IsBOF()&&!m_pDoc->m_Exaset.IsEOF())
	{
	m_pDoc->m_Exaset.MoveFirst();
	}
	else
	{
		m_pDoc->m_Exaset.Edit();
	    UpdateData();
		m_pDoc->m_Exaset.Update();
		m_pDoc->m_Exaset.MoveNext();
	}
	UpdateData(FALSE);
}

void ExaDg_2::OnUpdateRecordNext(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if((m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF()) || 
	  (!m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF()))
	  	pCmdUI->Enable(FALSE);
	else
		pCmdUI->Enable(TRUE);

}

void ExaDg_2::OnRecordPrev() 
{
	// TODO: Add your command handler code here
	Adding();
	if(!m_pDoc->m_Exaset.IsBOF()  &&  m_pDoc->m_Exaset.IsEOF())
	{
		m_pDoc->m_Exaset.MoveLast();
	}
	else
	{
		m_pDoc->m_Exaset.Edit();
		UpdateData();
		m_pDoc->m_Exaset.Update();
		m_pDoc->m_Exaset.MovePrev();
	}
	UpdateData(FALSE);
}

void ExaDg_2::OnUpdateRecordPrev(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if((m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF()) || 
	  (m_pDoc->m_Exaset.IsBOF()&&!m_pDoc->m_Exaset.IsEOF()))
	  	pCmdUI->Enable(FALSE);
	else
		pCmdUI->Enable(TRUE);
}

void ExaDg_2::OnRecordLast() 
{
	// TODO: Add your command handler code here
	Adding();
	if((m_pDoc->m_Exaset.IsBOF()&&!m_pDoc->m_Exaset.IsEOF()) || 
	  (!m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF()))
	  ;
	else
	{
	m_pDoc->m_Exaset.Edit();
	UpdateData();
	m_pDoc->m_Exaset.Update();
	}
	m_pDoc->m_Exaset.MoveLast();
	UpdateData(FALSE);
}

void ExaDg_2::OnUpdateRecordLast(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF())
		pCmdUI->Enable(FALSE);
	else
		pCmdUI->Enable(TRUE);
}

void ExaDg_2::OnRecordAdd() 
{
	// TODO: Add your command handler code here
	Adding();
	if((m_pDoc->m_Exaset.IsBOF()&&!m_pDoc->m_Exaset.IsEOF())||
	   (!m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF())||
	   (m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF()))
	   ;
	else
	{
		UpdateData(TRUE);
		m_pDoc->m_Exaset.Edit();
		m_pDoc->m_Exaset.Update();
		
	}
		m_pDoc->m_Exaset.Requery();
		m_pDoc->m_Exaset.AddNew();
		m_Add=TRUE;
		m_pDoc->m_Exaset.m_fy=0;
		m_pDoc->m_Exaset.m_f1=0;
		m_pDoc->m_Exaset.m_f2=0;
		m_pDoc->m_Exaset.m_f3=0;
		m_pDoc->m_Exaset.m_f4=0;
		m_pDoc->m_Exaset.m_f5=0;
		m_pDoc->m_Exaset.m_f6=0;
		m_pDoc->m_Exaset.m_f7=0;
		m_pDoc->m_Exaset.m_f8=0;
		m_pDoc->m_Exaset.m_f9=0;
		m_pDoc->m_Exaset.m_f10=0;
		UpdateData(FALSE);
}

void ExaDg_2::OnUpdateRecordAdd(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	//不需要处理此程序。任何时候都可以增加记录
}

void ExaDg_2::OnRecordDelete() 
{
	// TODO: Add your command handler code here
	m_pDoc->m_Exaset.Delete();
	m_pDoc->m_Exaset.MoveNext();
	
	if (m_pDoc->m_Exaset.IsBOF())
	{
		m_pDoc->m_Exaset.SetFieldNull(NULL);
		m_pDoc->m_Exaset.Requery();

	}
	else
		if(m_pDoc->m_Exaset.IsEOF())
			m_pDoc->m_Exaset.MoveLast();
		
	UpdateData(FALSE);
}

void ExaDg_2::OnUpdateRecordDelete(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_Exaset.IsBOF()&&m_pDoc->m_Exaset.IsEOF())
		pCmdUI->Enable(FALSE);
	else
		pCmdUI->Enable(TRUE);
}

void ExaDg_2::Adding()
{
	if(m_Add)
	{
	m_Add=FALSE;
	UpdateData(TRUE);
	m_pDoc->m_Exaset.Update();
	m_pDoc->m_Exaset.Requery();
	UpdateData(FALSE);
	}
}

void ExaDg_2::OnOK() 
{
	// TODO: Add extra validation here
	Adding();
	if(!m_pDoc->m_Exaset.IsBOF()&&!m_pDoc->m_Exaset.IsEOF())
	{
	 m_pDoc->m_Exaset.Edit();
	 UpdateData();
	 m_pDoc->m_Exaset.Update();
	 //m_pDoc->m_Exaset.MoveLast();
	UpdateData(FALSE);
	}
	CDialog::OnOK();
}

⌨️ 快捷键说明

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