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

📄 exadg_3.cpp

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

#include "stdafx.h"
#include "Example_3.h"
#include "ExaDg_3.h"
#include <afxpriv.h>

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

/////////////////////////////////////////////////////////////////////////////
// ExaDg_3 dialog


ExaDg_3::ExaDg_3(CExample_3Doc* pDoc,CWnd* pParent /*=NULL*/)
	: CDialog(ExaDg_3::IDD, pParent)
{	
	ASSERT_VALID(pDoc);
	m_pDoc=pDoc;
	//{{AFX_DATA_INIT(ExaDg_3)
	m_fy = 0;
	m_f1 = 0.0f;
	m_f2 = 0.0f;
	m_f3 = 0.0f;
	m_f4 = 0.0f;
	m_f5 = 0.0f;
	m_f6 = 0.0f;
	m_f7 = 0.0f;
	//}}AFX_DATA_INIT
}


void ExaDg_3::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(ExaDg_3)
	DDX_Text(pDX, IDC_EDIT1, m_fy);
	DDX_Text(pDX, IDC_EDIT2, m_f1);
	DDX_Text(pDX, IDC_EDIT3, m_f2);
	DDX_Text(pDX, IDC_EDIT4, m_f3);
	DDX_Text(pDX, IDC_EDIT5, m_f4);
	DDX_Text(pDX, IDC_EDIT6, m_f5);
	DDX_Text(pDX, IDC_EDIT7, m_f6);
	DDX_Text(pDX, IDC_EDIT8, m_f7);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(ExaDg_3, CDialog)
	//{{AFX_MSG_MAP(ExaDg_3)
	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_3 message handlers

void ExaDg_3::RefreshBoundData()
{
	
	ExaCI_3* pRs;
	pRs=m_pDoc->GetRecSet();

	if(adFldOK==pRs->CfyStatus)
		m_fy=pRs->m_Cfy;
	else
		m_fy=0;
	
	if(adFldOK==pRs->Cf1Status)
		m_f1=pRs->m_Cf1;
	else
		m_f1=0;	
	
	if(adFldOK==pRs->Cf2Status)
		m_f2=pRs->m_Cf2;
	else
		m_f2=0;

	if(adFldOK==pRs->Cf3Status)
		m_f3=pRs->m_Cf3;
	else
		m_f3=0;

	if(adFldOK==pRs->Cf4Status)
		m_f4=pRs->m_Cf4;
	else
		m_f4=0;

	if(adFldOK==pRs->Cf5Status)
		m_f5=pRs->m_Cf5;
	else
		m_f5=0;

	if(adFldOK==pRs->Cf6Status)
		m_f6=pRs->m_Cf6;
	else
		m_f6=0;
	
	if(adFldOK==pRs->Cf7Status)
		m_f7=pRs->m_Cf7;
	else
		m_f7=0;

	UpdateData(FALSE);	



}

void ExaDg_3::UpdateBoundData()
{
	ExaCI_3* pRs;
	pRs=m_pDoc->GetRecSet();
	UpdateData(TRUE);

	if(m_fy!=pRs->m_Cfy)
		pRs->m_Cfy=m_fy;


	if(m_f1!=pRs->m_Cf1)
		pRs->m_Cf1=m_f1;

	if(m_f2!=pRs->m_Cf2)
		pRs->m_Cf2=m_f2;

	if(m_f3!=pRs->m_Cf3)
		pRs->m_Cf3=m_f3;

	if(m_f4!=pRs->m_Cf4)
		pRs->m_Cfy=m_f4;

	if(m_f5!=pRs->m_Cf5)
		pRs->m_Cf5=m_f5;

	if(m_f6!=pRs->m_Cf6)
		pRs->m_Cf6=m_f6;

	if(m_f7!=pRs->m_Cf7)
		pRs->m_Cf7=m_f7;

}

BOOL ExaDg_3::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_3::OnKickIdle()
{
	SendMessageToDescendants(WM_IDLEUPDATECMDUI);
}

void ExaDg_3::OnRecordFirst() 
{
	// TODO: Add your command handler code here
	UpdateBoundData();
	m_pDoc->MoveFirst();
	RefreshBoundData();
	
}

void ExaDg_3::OnUpdateRecordFirst(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_pRs)
	{
	  if(m_pDoc->m_pRs->BOF&&m_pDoc->m_pRs->EndOfFile)
		  pCmdUI->Enable(FALSE);
	  else
		  pCmdUI->Enable(TRUE);
	}
}

void ExaDg_3::OnRecordNext() 
{
	// TODO: Add your command handler code here
	UpdateBoundData();
	m_pDoc->MoveNext();
	RefreshBoundData();
	
}

void ExaDg_3::OnUpdateRecordNext(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_pRs)
	{
	  if(m_pDoc->m_pRs->EndOfFile)
		  pCmdUI->Enable(FALSE);
	  else
		  pCmdUI->Enable(TRUE);
	}
}

void ExaDg_3::OnRecordPrev() 
{
	// TODO: Add your command handler code here
	UpdateBoundData();
	m_pDoc->MovePrev();
	RefreshBoundData();
	
}

void ExaDg_3::OnUpdateRecordPrev(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_pRs)
	{
	  if(m_pDoc->m_pRs->BOF)
		  pCmdUI->Enable(FALSE);
	  else
		  pCmdUI->Enable(TRUE);
	}
}

void ExaDg_3::OnRecordLast() 
{
	// TODO: Add your command handler code here
	UpdateBoundData();
	m_pDoc->MoveLast();
	RefreshBoundData();

}

void ExaDg_3::OnUpdateRecordLast(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_pRs)
	{
	  if(m_pDoc->m_pRs->BOF||m_pDoc->m_pRs->EndOfFile)
		  pCmdUI->Enable(FALSE);
	  else
		  pCmdUI->Enable(TRUE);

	}
}

void ExaDg_3::OnRecordAdd() 
{
	// TODO: Add your command handler code here
	UpdateBoundData();
	m_pDoc->AddNew();
	RefreshBoundData();

}

void ExaDg_3::OnUpdateRecordAdd(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_pRs)
	{
	  if(m_pDoc->m_pRs->BOF&&m_pDoc->m_pRs->EndOfFile)
		  pCmdUI->Enable(FALSE);
	  else
		  pCmdUI->Enable(TRUE);
	}
}

void ExaDg_3::OnRecordDelete() 
{
	// TODO: Add your command handler code here
	UpdateBoundData();
	m_pDoc->Delete();
	RefreshBoundData();
}

void ExaDg_3::OnUpdateRecordDelete(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(m_pDoc->m_pRs)
	{
	  if(m_pDoc->m_pRs->BOF||m_pDoc->m_pRs->EndOfFile)
		  pCmdUI->Enable(FALSE);
	  else
		  pCmdUI->Enable(TRUE);
	}	
}

void ExaDg_3::OnOK() 
{
	// TODO: Add extra validation here
	UpdateBoundData();

	m_pDoc->m_piAdoRecordBinding->Update(&(m_pDoc->m_rsRecSet));
	CDialog::OnOK();
}

⌨️ 快捷键说明

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