📄 socialisepersondlg.cpp
字号:
// SocialisePersonDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "SMS.h"
#include "SocialisePersonDlg.h"
// CSocialisePersonDlg 对话框
IMPLEMENT_DYNAMIC(CSocialisePersonDlg, CDialog)
CSocialisePersonDlg::CSocialisePersonDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSocialisePersonDlg::IDD, pParent)
, m_pSet(&theApp.m_db )
, m_iPersonAmount(0)
{
//显示窗口颜色
m_backcolor=m_RGB_BkColor;
m_brush.CreateSolidBrush(m_backcolor);
m_bItemClick=false;
}
CSocialisePersonDlg::~CSocialisePersonDlg()
{
}
void CSocialisePersonDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SOCIALISE_PERSON_LIST, m_cPersonListCtrl);
DDX_Text(pDX, IDC_PERSON_AMOUNT_STATIC, m_iPersonAmount);
DDX_Control(pDX, IDC_SOCIALISE_PERSON_DELETE_BT, m_cDeleteBt);
DDX_Control(pDX, IDC_SOCIALISE_PERSON_UPDATE_BT, m_cUpdateBt);
DDX_Control(pDX, IDC_SOCIALISE_PERSON_PRINT_BT, m_cPrintBt);
DDX_Control(pDX, IDC_SOCIALISE_PERSON_MAIN_BT, m_cMainBt);
}
BEGIN_MESSAGE_MAP(CSocialisePersonDlg, CDialog)
ON_BN_CLICKED(IDC_SOCIALISE_PERSON_ALL_BT, &CSocialisePersonDlg::OnBnClickedSocialisePersonAllBt)
ON_BN_CLICKED(IDC_PERSON_KIND_BT, &CSocialisePersonDlg::OnBnClickedPersonKindBt)
ON_BN_CLICKED(IDC_SOCIALISE_PERSON_MAIN_BT, &CSocialisePersonDlg::OnBnClickedSocialisePersonMainBt)
ON_BN_CLICKED(IDC_SOCIALISE_PERSON_ADD_BT, &CSocialisePersonDlg::OnBnClickedSocialisePersonAddBt)
ON_BN_CLICKED(IDC_SOCIALISE_PERSON_UPDATE_BT, &CSocialisePersonDlg::OnBnClickedSocialisePersonUpdateBt)
ON_BN_CLICKED(IDC_SOCIALISE_PERSON_DELETE_BT, &CSocialisePersonDlg::OnBnClickedSocialisePersonDeleteBt)
ON_BN_CLICKED(IDC_SOCIALISE_PERSON_SEARCH_BT, &CSocialisePersonDlg::OnBnClickedSocialisePersonSearchBt)
ON_WM_QUERYDRAGICON()//打印
ON_BN_CLICKED(IDC_SOCIALISE_PERSON_PRINT_BT, &CSocialisePersonDlg::OnBnClickedSocialisePersonPrintBt)
ON_WM_CTLCOLOR()
ON_NOTIFY(HDN_ITEMCLICK, 0, &CSocialisePersonDlg::OnHdnItemclickSocialisePersonList)
ON_WM_CLOSE()
ON_WM_CONTEXTMENU()
ON_WM_TIMER()
ON_COMMAND(ID_PERSON_ALL, &CSocialisePersonDlg::OnPersonAll)
ON_COMMAND(ID_PERSON_DETAIL, &CSocialisePersonDlg::OnPersonMain)
ON_COMMAND(ID_PERSON_KIND, &CSocialisePersonDlg::OnPersonKind)
ON_COMMAND(ID_PERSON_ADD, &CSocialisePersonDlg::OnPersonAdd)
ON_COMMAND(ID_PERSON_UPDATE, &CSocialisePersonDlg::OnPersonUpdate)
ON_COMMAND(ID_PERSON_DELETE, &CSocialisePersonDlg::OnPersonDelete)
ON_COMMAND(ID_PERSON_SEARCH, &CSocialisePersonDlg::OnPersonSearch)
ON_COMMAND(ID_PERSON_PRINT, &CSocialisePersonDlg::OnPersonPrint)
ON_UPDATE_COMMAND_UI(ID_PERSON_DETAIL, &CSocialisePersonDlg::OnUpdatePersonMain )
ON_UPDATE_COMMAND_UI(ID_PERSON_UPDATE, &CSocialisePersonDlg::OnUpdatePersonUpdate )
ON_UPDATE_COMMAND_UI(ID_PERSON_DELETE, &CSocialisePersonDlg::OnUpdatePersonDelete )
ON_UPDATE_COMMAND_UI(ID_PERSON_PRINT, &CSocialisePersonDlg::OnUpdatePersonPrint )
ON_WM_INITMENUPOPUP()
END_MESSAGE_MAP()
// CSocialisePersonDlg 消息处理程序
void CSocialisePersonDlg::ViewAll()
{
BeginWaitCursor();
CString s;
m_cPersonListCtrl.DeleteAllItems ();
if(m_pSet.IsOpen ())
m_pSet.Close ();
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * from Person order by pName");
m_pSet.m_strFilter .Empty ();
int count;
count=m_pSet.GetRecordCount ();
if(count==0)//如果该数据表为空,则不用显示
{
EndWaitCursor();
m_pSet.Close ();
return ;
}
m_pSet.MoveFirst ();
int i=0;
while (!m_pSet.IsEOF ())
{
m_cPersonListCtrl.InsertItem(i,(CString)m_pSet.m_pName ,0);
m_cPersonListCtrl.SetItemText (i,1,FormatDate(m_pSet.m_pBirthday ));
m_cPersonListCtrl.SetItemText (i,2,(CString)m_pSet.m_pPhone );
m_cPersonListCtrl.SetItemText (i,3,(CString)m_pSet.m_pQQ );
m_cPersonListCtrl.SetItemText (i,4,(CString)m_pSet.m_pMSN );
m_cPersonListCtrl.SetItemText (i,5,(CString)m_pSet.m_pEmail );
s.Format (L"%d",m_pSet.m_pId );
m_cPersonListCtrl.SetItemText (i,6,s);
i++;
m_pSet.MoveNext ();
}
m_pSet.Close ();
//现在在右边显示个数
m_iPersonAmount=i;
s.Format (L"%d",m_iPersonAmount);
SetDlgItemText(IDC_PERSON_AMOUNT_STATIC,s);//显示
EndWaitCursor();
}
void CSocialisePersonDlg::OnBnClickedSocialisePersonAllBt()
{
// TODO: 在此添加控件通知处理程序代码
ViewAll();
}
void CSocialisePersonDlg::Kind ()
{
CString s;
int i=0;
CSocialisePersonKindDlg dlg;
if(dlg.DoModal ()==IDOK)
{
BeginWaitCursor();
m_cPersonListCtrl.DeleteAllItems ();
if(m_pSet.IsOpen ())
m_pSet.Close ();
CString str;
str="Select * from Person where pGroup='";
str+=dlg.m_sKind ;
str+="' order by pName";
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,str);
m_pSet.m_strFilter .Empty ();
m_pSet.Requery ();
if(m_pSet.IsEOF ())
{
m_iPersonAmount=i;
s.Format (L"%d",m_iPersonAmount);
SetDlgItemText(IDC_PERSON_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
else
{
if(m_pSet.GetRecordCount ()==0)
{
m_iPersonAmount=i;
s.Format (L"%d",m_iPersonAmount);
SetDlgItemText(IDC_PERSON_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
m_pSet.MoveFirst ();
while (!m_pSet.IsEOF ())
{
m_cPersonListCtrl.InsertItem(i,(CString)m_pSet.m_pName ,0);
m_cPersonListCtrl.SetItemText (i,1,FormatDate(m_pSet.m_pBirthday) );
m_cPersonListCtrl.SetItemText (i,2,(CString)m_pSet.m_pPhone );
m_cPersonListCtrl.SetItemText (i,3,(CString)m_pSet.m_pQQ );
m_cPersonListCtrl.SetItemText (i,4,(CString)m_pSet.m_pMSN );
m_cPersonListCtrl.SetItemText (i,5,(CString)m_pSet.m_pEmail );
s.Format (L"%d",m_pSet.m_pId );
m_cPersonListCtrl.SetItemText (i,6,s);
m_pSet.MoveNext ();
i++;
}
m_pSet.Close ();
//现在在右边显示个数
if(i==0)
{
m_iPersonAmount=i;
s.Format (L"%d",m_iPersonAmount);
SetDlgItemText(IDC_PERSON_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
m_iPersonAmount=i;
s.Format (L"%d",m_iPersonAmount);
SetDlgItemText(IDC_PERSON_AMOUNT_STATIC,s);//显示
}
EndWaitCursor();
}
}
void CSocialisePersonDlg::OnBnClickedPersonKindBt()
{
// TODO: 在此添加控件通知处理程序代码
Kind();
}
void CSocialisePersonDlg::Main()
{
CString s;
POSITION pos = m_cPersonListCtrl.GetFirstSelectedItemPosition();
if (pos == NULL)
{
MessageBox(L"你没有选择要查看的个人\n请在列表中选择要查看的个人!",L"提示",MB_ICONEXCLAMATION);
return ;//没有选择表项则不用做下面的事情
}
else
{
int nItem = m_cPersonListCtrl.GetNextSelectedItem(pos);//列表中的项目序号也即数据库中的编号
//下面获取该表项的数据,用于在修改对话框中显示
int Id=_ttol(m_cPersonListCtrl.GetItemText (nItem,6));
if(m_pSet.IsOpen ())
m_pSet.Close ();
m_pSet.Open ();
m_pSet.m_strFilter .Empty ();
m_pSet.MoveFirst ();
while(!m_pSet.IsEOF ())
{
if(m_pSet.m_pId ==Id)//说明找到了相应的那个字段
{
m_iSocialisePerson_Id=m_pSet.m_pId ;
m_sSocialisePerson_Name=m_pSet.m_pName ;
m_sSocialisePerson_NickName=m_pSet.m_pNickName ;
m_sSocialisePerson_Sex=m_pSet.m_pSex ;
m_tSocialisePerson_Birthday=m_pSet.m_pBirthday;
m_sSocialisePerson_Phone=m_pSet.m_pPhone ;
m_sSocialisePerson_Fax=m_pSet.m_pFax ;
m_sSocialisePerson_Address=m_pSet.m_pAddress ;
m_sSocialisePerson_Code=m_pSet.m_pCode ;
m_sSocialisePerson_Email=m_pSet.m_pEmail ;
m_sSocialisePerson_MSN=m_pSet.m_pMSN ;
m_sSocialisePerson_Web=m_pSet.m_pWeb ;
m_sSocialisePerson_QQ=m_pSet.m_pQQ ;
m_sSocialisePerson_Group=m_pSet.m_pGroup ;
m_sSocialisePerson_Uint=m_pSet.m_pUint ;
m_sSocialisePerson_Remark=m_pSet.m_pRemark ;
break;
}
m_pSet.MoveNext ();
}
m_pSet.Close ();//记得要关闭!
//下面弹出对话框,初始化数据由上面部分提供
CSocialisePersonDetailDlg dlg;
dlg.DoModal ();
}
}
void CSocialisePersonDlg::OnBnClickedSocialisePersonMainBt()
{
// TODO: 在此添加控件通知处理程序代码
Main();
}
void CSocialisePersonDlg::Add()
{
CString s;
CSocialisePersonAddDlg dlg;
if(dlg.DoModal ()==IDOK)
{
if(!theApp.m_db.CanTransact ())
{
//虽然不支持事务处理的数据库很少,但是我强硬地不允许这种情况出现
MessageBox(L"\n系统不支持事务处理,添加不成功!\n",L"错误", MB_ICONSTOP);
return ;
}
theApp.m_db.BeginTrans ();//开始事务处理
TRY
{
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * from Person order by pName");
m_pSet.m_strFilter.Empty ();
m_pSet.AddNew ();
m_pSet.m_pName =dlg.m_sName ;
m_pSet.m_pNickName =dlg.m_sNickName ;
m_pSet.m_pSex =dlg.m_sSex ;
m_pSet.m_pBirthday =dlg.m_tBirthday ;
m_pSet.m_pPhone =dlg.m_sPhone ;
m_pSet.m_pFax =dlg.m_sFax ;
m_pSet.m_pAddress =dlg.m_sAddress ;
m_pSet.m_pCode =dlg.m_sCode ;
m_pSet.m_pEmail =dlg.m_sEmail ;
m_pSet.m_pMSN =dlg.m_sMSN ;
m_pSet.m_pWeb =dlg.m_sWeb ;
m_pSet.m_pQQ =dlg.m_sQQ ;
m_pSet.m_pGroup =dlg.m_sGroup ;
m_pSet.m_pUint =dlg.m_sUint ;
m_pSet.m_pRemark =dlg.m_sRemark ;
m_pSet.Update ();
m_pSet.MoveLast ();
m_pSet.Close ();
theApp.m_db.CommitTrans ();//添加成功了
}
CATCH_ALL(e)
{
theApp.m_db.Rollback ();
MessageBox(L"\n事务处理出错,添加失败!\n",L"错误", MB_ICONSTOP);
return;
}
END_CATCH_ALL
//添加成功了,就要在列表中显示出来
m_cPersonListCtrl.InsertItem(0,dlg.m_sName ,0);
m_cPersonListCtrl.SetItemText (0,1,FormatDate(dlg.m_tBirthday) );
m_cPersonListCtrl.SetItemText (0,2,dlg.m_sPhone );
m_cPersonListCtrl.SetItemText (0,3,dlg.m_sQQ );
m_cPersonListCtrl.SetItemText (0,4,dlg.m_sMSN );
m_cPersonListCtrl.SetItemText (0,5,dlg.m_sEmail );
s.Format (L"%d",m_pSet.m_pId );
m_cPersonListCtrl.SetItemText (0,6,s);
//然后再在个数中加一,显示给用户
m_iPersonAmount++;
s.Format (L"%d",m_iPersonAmount);
SetDlgItemText(IDC_PERSON_AMOUNT_STATIC,s);//显示
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -