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

📄 eventdlg.cpp

📁 SQL Server2000 in the database management system, using VC + + development tools to develop a memora
💻 CPP
字号:
// EventDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MemoDBS.h"
#include "EventDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CEventDlg dialog


CEventDlg::CEventDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CEventDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CEventDlg)
	m_strName = _T("");
	//}}AFX_DATA_INIT
}


void CEventDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CEventDlg)
	DDX_Control(pDX, IDC_LIST_MEMO, m_listMemoInfo);
	DDX_Control(pDX, IDC_COMBO_MEMBER, m_comboMember);
	DDX_CBString(pDX, IDC_COMBO_MEMBER, m_strName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CEventDlg, CDialog)
	//{{AFX_MSG_MAP(CEventDlg)
	ON_BN_CLICKED(IDC_BTN_QUERY, OnBtnQuery)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEventDlg message handlers

BOOL CEventDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |
		LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
	m_listMemoInfo.SetExtendedStyle(dwExStyle);
	//初始化大事件信息列表控件
	//添加成员姓名列
	m_listMemoInfo.InsertColumn(0,"成员姓名",LVCFMT_CENTER,60);
	m_listMemoInfo.InsertColumn(1,"日期",LVCFMT_CENTER,140);
	m_listMemoInfo.InsertColumn(2,"备注类型",LVCFMT_CENTER,60);
	m_listMemoInfo.InsertColumn(3,"内容",LVCFMT_CENTER,300);
	//获取所有的家庭成员记录,并且加入的组合框里.
	if(m_pDB->IsOpen()){
		CRecordset rs(m_pDB);
		CString sql = "Select * from company_member_tab";
		rs.Open(CRecordset::dynaset, sql);
		CString name;
		while (!rs.IsEOF()) {
			rs.GetFieldValue(1, name);
			m_comboMember.AddString(name);
			rs.MoveNext();		
		}	
	}
	//在组合框里添加一条所有人的选项.
	if(m_comboMember.GetCount()>0)
		m_comboMember.AddString("*所有人");
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CEventDlg::InsertMemoInfoItem(CString name, CString happenDate, CString type, CString memoTxt)
{
	//向备忘录信息列表控件中插入新的记录.
	int nIndex = m_listMemoInfo.GetItemCount();
	LV_ITEM lvItem;
	lvItem.mask = LVIF_TEXT ;	
	lvItem.iItem = nIndex;				//行数
	lvItem.iSubItem = 0;
	lvItem.pszText = (char*)(LPCTSTR)name;		//第一列
    //插入信息到界面.
	m_listMemoInfo.InsertItem(&lvItem);	
	m_listMemoInfo.SetItemText(nIndex,1,happenDate);
	m_listMemoInfo.SetItemText(nIndex,2,type);	
	m_listMemoInfo.SetItemText(nIndex,3,memoTxt);		
}

void CEventDlg::OnBtnQuery() 
{
	// TODO: Add your control notification handler code here
	//从界面获取数据.
	if(!UpdateData())
		return;
	//删除列表控件中的数据.
	m_listMemoInfo.DeleteAllItems();
	if(m_pDB->IsOpen()){
		TRY{
			CRecordset rs(m_pDB);
			//创建SQL语句,初始为查询所有人的大事记
			CString sql = "Select * from MEMO_INFO_TAB where IS_BIGEVENT = 1 "
				" order by HAPPEN_DATE";
			//如果是查询个人的大事记
			if(m_strName.CompareNoCase("*所有人")!=0)
				sql.Format("Select * from MEMO_INFO_TAB a,"
				    "COMPANY_MEMBER_TAB b where a.MEMBER_ID = b.MEMBER_ID "
				    "and b.MEMBER_NAME = '%s' and a.IS_BIGEVENT = 1"
					" order by HAPPEN_DATE",m_strName);
			TRACE(sql);
			//打开记录集.
			rs.Open(CRecordset::dynaset, sql);
			while (!rs.IsEOF()) {
				CDBVariant var;
				int memberID,nType;
				CString happenDate,operDate,memoTxt,strName,strType;
				//获取成员ID字段值
				rs.GetFieldValue(1, var, SQL_C_SLONG);
				if (var.m_dwType != DBVT_NULL)	
					memberID = var.m_iVal;
				var.Clear();
				//获取备忘录发生日期字段值
				rs.GetFieldValue(3, happenDate);
				var.Clear();
				//获取备忘录类型ID字段值
				rs.GetFieldValue(6, var, SQL_C_SLONG);
				if (var.m_dwType != DBVT_NULL)	
					nType = var.m_iVal;
				var.Clear();
				//获取备忘录内容字段值
				rs.GetFieldValue(7, memoTxt);
				CRecordset rs2(m_pDB);
				CString temp;
				//从成员ID获取成员的姓名.
				temp.Format("Select MEMBER_NAME from COMPANY_MEMBER_TAB where "
					"MEMBER_ID = %d",memberID);
				rs2.Open(CRecordset::dynaset,temp);
				if(!rs2.IsEOF()) 
					rs2.GetFieldValue((short)0, strName);
				rs2.Close();
				//从备注类型ID获取备注类型名称. 
				temp.Format("Select TYPE_NAME from MEMO_TYPE_TAB where "
					"TYPE_ID = '%d'",nType);
				rs2.Open(CRecordset::dynaset,temp);
				if(!rs2.IsEOF())
					rs2.GetFieldValue((short)0, strType);		
				rs2.Close();
				//在界面中查入新的记录.
				InsertMemoInfoItem(strName,happenDate,strType,memoTxt);
				rs.MoveNext();	
			}
		}
		CATCH(CDBException,ex)
		{
			AfxMessageBox (ex->m_strError);
			AfxMessageBox (ex->m_strStateNativeOrigin);		
		}
		AND_CATCH(CException,e)
		{
			TCHAR szError[100];
			e->GetErrorMessage(szError,100);
			AfxMessageBox (szError);
		}
		END_CATCH
	}	
}

⌨️ 快捷键说明

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