【VC开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了VC开源代码-EventDlg.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
}
}
上一篇:
Event2.cpp
下一篇:
高职院理实一体信息技术论文