?? activitypage.cpp
字號:
// ActivityPage.cpp : implementation file
//
#include "stdafx.h"
#include "StudentCheck.h"
#include "ActivityPage.h"
#include "GeneralQueryDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CActivityPage property page
IMPLEMENT_DYNCREATE(CActivityPage, CPropertyPage)
CActivityPage::CActivityPage() : CPropertyPage(CActivityPage::IDD)
{
//{{AFX_DATA_INIT(CActivityPage)
m_strTotal = _T("");
//}}AFX_DATA_INIT
}
CActivityPage::~CActivityPage()
{
}
void CActivityPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CActivityPage)
DDX_Control(pDX, IDC_LIST_ACTIVITY, m_ctrlActivityList);
DDX_Control(pDX, IDC_BUTTON_QUERY, m_btnQuery);
DDX_Text(pDX, IDC_STATIC_TOTAL, m_strTotal);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CActivityPage, CPropertyPage)
//{{AFX_MSG_MAP(CActivityPage)
ON_BN_CLICKED(IDC_BUTTON_QUERY, OnButtonQuery)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CActivityPage message handlers
BOOL CActivityPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
//為List添加網格
this->m_ctrlActivityList.SetExtendedStyle(LVS_EX_GRIDLINES);
//設置List的列
int nWidth=110;
this->m_ctrlActivityList.InsertColumn(0,"學號",LVCFMT_LEFT,nWidth);
this->m_ctrlActivityList.InsertColumn(1,"姓名",LVCFMT_LEFT,nWidth);
this->m_ctrlActivityList.InsertColumn(2,"性別",LVCFMT_LEFT,nWidth);
this->m_ctrlActivityList.InsertColumn(3,"年級",LVCFMT_LEFT,nWidth);
this->m_ctrlActivityList.InsertColumn(4,"專業",LVCFMT_LEFT,nWidth);
this->m_ctrlActivityList.InsertColumn(5,"班級",LVCFMT_LEFT,nWidth);
this->m_ctrlActivityList.InsertColumn(6,"參加活動次數",LVCFMT_LEFT,nWidth);
this->m_ctrlActivityList.InsertColumn(7,"未參加活動次數",LVCFMT_LEFT,nWidth);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CActivityPage::OnButtonQuery()
{
// TODO: Add your control notification handler code here
CGeneralQueryDlg *pGeneralQueryDlg;
pGeneralQueryDlg=(CGeneralQueryDlg*)GetParent()->GetParent();
pGeneralQueryDlg->UpdateData();
if(pGeneralQueryDlg->IsSelected())
{
this->m_ctrlActivityList.DeleteAllItems();
UpdateList();
}
}
void CActivityPage::UpdateList()
{
CString strFilter;
CString strSTime;
CString strETime;
CString strGradeID;
CString strSpecialtyID;
CString strClassID;
CString strStudentNum;
//定義 CGeneralQueryDlg類型指針
CGeneralQueryDlg *pGeneralQueryDlg;
pGeneralQueryDlg=(CGeneralQueryDlg*)GetParent()->GetParent();
pGeneralQueryDlg->UpdateData();
//獲得開始時間
strSTime=pGeneralQueryDlg->GetStartTime();
strETime=pGeneralQueryDlg->GetEndTime();
strGradeID=pGeneralQueryDlg->GetGrade();
strSpecialtyID=pGeneralQueryDlg->GetSpecialty();
strClassID=pGeneralQueryDlg->GetClass();
strStudentNum=pGeneralQueryDlg->GetStudentNum();
if(strGradeID.GetLength()>0&&pGeneralQueryDlg->m_btnGrade.GetCheck()>0)
strFilter="and (GradeID='"+strGradeID+"')";
if(strSpecialtyID.GetLength()>0&&pGeneralQueryDlg->m_btnSpecialty.GetCheck()>0)
strFilter+="and(SpecialtyID='"+strSpecialtyID+"')";
if(strClassID.GetLength()>0&&pGeneralQueryDlg->m_btnClass.GetCheck()>0)
strFilter+="and(ClassID='"+strClassID+"')";
if(strStudentNum.GetLength()>0&&pGeneralQueryDlg->m_btnStudentNum.GetCheck()>0)
{
strFilter="";
strFilter+="and(StudentNum='"+strStudentNum+"')";
}
//SQL語句
_bstr_t vSql,vSql1;
CString count1;
//得到參加活動次數的vSql語句
vSql="select StudentNum,Name,Sex,GradeName,SpecialtyName,ClassName,\
Count(StudentNum) as IsDo from ActivityInfo where (IsAct=1) "+strFilter+
"and(ActDateTime>#"+strSTime+"#)and(ActDateTime<#"+strETime+"#)"+
"Group by StudentNum,Name,Sex,GradeName,SpecialtyName,ClassName ";
//得到未參活動次數的vSql語句
vSql1="select StudentNum,Name,Sex,GradeName,SpecialtyName,ClassName,\
Count(StudentNum) as IsNotDo from ActivityInfo where (IsAct=0) "+strFilter+
"and(ActDateTime>#"+strSTime+"#)and(ActDateTime<#"+strETime+"#)"+
"Group by StudentNum,Name,Sex,GradeName,SpecialtyName,ClassName ";
//統計記錄數
int iCount=m_CurAdo.GetRecordCount(vSql);
if(iCount==0)return;
_RecordsetPtr pRs,pRs1;
pRs=m_CurAdo.GetRecordSet(vSql);
pRs1=m_CurAdo.GetRecordSet(vSql1);
int i=0;
//定義_variant_t變量
_variant_t Holder;
CString str,str1;
CStringArray sa_Stu[2],sa_count;
//判斷記錄集,獲得記錄集中的數據
while(pRs1->adoEOF==0)
{
//獲得學號
Holder=pRs1->GetCollect("StudentNum");
str=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
sa_Stu[0].Add(str);
//獲得為出操次數
Holder=pRs1->GetCollect("IsNotDo");
str=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
sa_Stu[1].Add(str);
i++;
}
i=0;
//獲取記錄集中的數據
while(pRs->adoEOF==0)
{
//獲得學號
Holder=pRs->GetCollect("StudentNum");
str1=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ctrlActivityList.InsertItem(i,str1);
//獲得姓名
Holder=pRs->GetCollect("Name");
str=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ctrlActivityList.SetItemText(i,1,str);
//獲得性別
Holder=pRs->GetCollect("Sex");
str=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ctrlActivityList.SetItemText(i,2,str);
//獲得年級
Holder=pRs->GetCollect("GradeName");
str=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ctrlActivityList.SetItemText(i,3,str);
//獲得專業
Holder=pRs->GetCollect("SpecialtyName");
str=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ctrlActivityList.SetItemText(i,4,str);
//獲得班級
Holder=pRs->GetCollect("ClassName");
str=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ctrlActivityList.SetItemText(i,5,str);
//獲得可參加活動次數
Holder=pRs->GetCollect("IsDo");
str=Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ctrlActivityList.SetItemText(i,6,str);
//獲得必須參加活動次數
if(!str1.Compare(sa_Stu[0].GetAt(i)))
{
str=sa_Stu[1].GetAt(i);
m_ctrlActivityList.SetItemText(i,7,str);
}
i++;
pRs->MoveNext();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -