www.gusucode.com > VC++双选系统毕业设计管理系统(ACCESS)-源码程序 > VC++双选系统毕业设计管理系统(ACCESS)-源码程序/code/DclrsubStatusDlg.cpp

    //Download by http://www.NewXing.com
// DclrsubStatusDlg.cpp : implementation file
//

#include "stdafx.h"
#include "gradudemis.h"
#include "DclrsubStatusDlg.h"
#include "TecrDclrSubDlg.h"

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

CString strStuName;
/////////////////////////////////////////////////////////////////////////////
// CDclrsubStatusDlg dialog

CString strTecrSub[10];					//定义字符串数组

CDclrsubStatusDlg::CDclrsubStatusDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDclrsubStatusDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDclrsubStatusDlg)
	m_strDclrmax = _T("");
	m_strDclrnum = _T("");
	m_strComlevel = _T("");
	m_strForlanlevel = _T("");
	m_strSchship = _T("");
	//}}AFX_DATA_INIT
}


void CDclrsubStatusDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDclrsubStatusDlg)
	DDX_Control(pDX, IDC_ChoisubStu_LIST, m_ctrlStuName);
	DDX_Control(pDX, IDC_Ownsub_LIST, m_ctrlOwnsub);
	DDX_Text(pDX, IDC_DclrMaxNum_STATIC, m_strDclrmax);
	DDX_Text(pDX, IDC_DclrNum_STATIC, m_strDclrnum);
	DDX_Text(pDX, IDC_ComLevel_EDIT, m_strComlevel);
	DDX_Text(pDX, IDC_ForLanLevel_EDIT, m_strForlanlevel);
	DDX_Text(pDX, IDC_SchShip_EDIT, m_strSchship);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDclrsubStatusDlg, CDialog)
	//{{AFX_MSG_MAP(CDclrsubStatusDlg)
	ON_BN_CLICKED(IDC_DclrSub_BTN, OnDclrSubBTN)
	ON_NOTIFY(NM_CLICK, IDC_Ownsub_LIST, OnClickOwnsubLIST)
	ON_LBN_SELCHANGE(IDC_ChoisubStu_LIST, OnSelchangeChoisubStuLIST)
	ON_BN_CLICKED(IDC_ChoiStu_BTN, OnChoiStuBTN)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDclrsubStatusDlg message handlers

BOOL CDclrsubStatusDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();	
	// TODO: Add extra initialization here
    m_ctrlOwnsub.SetFocus();								//设置焦点
	int i=0;												//定义整形变量
	m_ctrlOwnsub.InsertColumn(0,"课题",LVCFMT_LEFT,350,0);	//设置列表控件的列标题信息
    if(!pTecrsubSet.IsOpen())								//打开记录集
		pTecrsubSet.Open();
	pTecrsubSet.MoveFirst();								//移动到首条记录
	while(!pTecrsubSet.IsEOF())								//遍历记录集
	{
		if(pTecrsubSet.m_tecr_name==strExternUser)			//判断条件
		{
			m_ctrlOwnsub.InsertItem(i,pTecrsubSet.m_sub_title);//插入数据到列表中
			strTecrSub[i]=pTecrsubSet.m_sub_title;			//字符数组的赋值
			i++;	
		}		
		pTecrsubSet.MoveNext();								//移动到下条记录
	}

	pTecrsubSet.Close();									//关闭记录集
	if(!pDclrsubSet.IsOpen())								//打开记录集
	   pDclrsubSet.Open();	
	pDclrsubSet.MoveFirst();								//移动到首条记录
	while(!pDclrsubSet.IsEOF())								//如果记录不是最后一条
	{
		if(pDclrsubSet.m_tecr_name==strExternUser)			//条件判断
		{
			m_strDclrmax=pDclrsubSet.m_tecr_MaxNum;			//变量赋值
			m_strDclrnum=pDclrsubSet.m_tecr_DclrNum;
			break; 
		}
		else
			pDclrsubSet.MoveNext();							//移动到下条记录
	}
	pDclrsubSet.Close();									//关闭记录集
    UpdateData(false);										//更新数据
	if(m_strDclrmax==m_strDclrnum)
	{
		CButton *pBtn=(CButton *)GetDlgItem(IDC_DclrSub_BTN);//获取控件的指针
		pBtn->ShowWindow(SW_HIDE);						   	//隐藏控件
	}
    return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDclrsubStatusDlg::OnDclrSubBTN() 
{
	// TODO: Add your control notification handler code here
	CTecrDclrSubDlg dlg;									//定义对话框变量
	dlg.DoModal();											//显示对话框
}


void CDclrsubStatusDlg::OnClickOwnsubLIST(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int i=0;												//定义整形变量
	int nIndex=m_ctrlStuName.GetCount();					//获取控件中数据的总数

    for(int j=0;j<nIndex;j++)								//删除所有
	{
		m_ctrlStuName.DeleteString(j);
	}
	CString strSubTitle;									//定义字符串变量
	NMLISTVIEW *pLV=(NMLISTVIEW *)pNMHDR;    //  str.Format("%d",pLV->iItem);
    strSubTitle=m_ctrlOwnsub.GetItemText(pLV->iItem,0);     //获取选中的列表的文本
    if(!pstusubSet.IsOpen())								//打开记录集
		pstusubSet.Open();
	pstusubSet.MoveFirst();								//移动到首条记录
    while(!pstusubSet.IsEOF())
	{
		if(pstusubSet.m_sub_Name==strSubTitle&&pstusubSet.m_stu_choisubStatus)//条件判断
		{	
			m_ctrlStuName.InsertString(0,pstusubSet.m_stu_name);//插入数据到列表框中
			break;			
		}
		else if(pstusubSet.m_sub_Name==strSubTitle)
		{
			m_ctrlStuName.InsertString(i,pstusubSet.m_stu_name);
			i++;
		}

		pstusubSet.MoveNext();								//移动到下条记录	
	}		
	pstusubSet.Close();										//关闭记录集
	*pResult = 0;
}

void CDclrsubStatusDlg::OnSelchangeChoisubStuLIST() 
{
	// TODO: Add your control notification handler code here
   	int nIndex=m_ctrlStuName.GetCurSel();					//获取用户选中的位置
   	m_ctrlStuName.GetText(nIndex,strStuName);				//得到选中的文本
	if(!pstuAchvSet.IsOpen())								//打开记录集
	  pstuAchvSet.Open();
	pstuAchvSet.MoveFirst();								//移动到首条记录
	while(!pstuAchvSet.IsEOF())								//记录没有到末尾
	{
		if(pstuAchvSet.m_stu_name==strStuName)				//条件判断
		{
			ACHIEVE stuAch;									//定义结构变量
			stuAch.comLevel=pstuAchvSet.m_comLevel;			//结构变量的赋值
			stuAch.forlanLevel=pstuAchvSet.m_forlanLevel;
			stuAch.schship=pstuAchvSet.m_schship;
			m_ctrlStuName.SetItemDataPtr(nIndex,new ACHIEVE(stuAch));//设置指针
			break;
		}
		else
			pstuAchvSet.MoveNext();							//移动到下条记录
	}
	pstuAchvSet.Close();									//关闭记录集
	if(nIndex!=LB_ERR)
	{	
		ACHIEVE *stuAch=(ACHIEVE*)m_ctrlStuName.GetItemDataPtr(nIndex);//获取信息
		m_strComlevel=stuAch->comLevel;						//将结构信息保存在变量中
		m_strForlanlevel=stuAch->forlanLevel;
		m_strSchship=stuAch->schship;
		UpdateData(false);									//更新数据
	}
}

void CDclrsubStatusDlg::OnChoiStuBTN() 
{
	// TODO: Add your control notification handler code here
     if(!pstusubSet.IsOpen())
		pstusubSet.Open();									//打开记录集		
	 pstusubSet.MoveFirst();								//移动到首条记录
     while(!pstusubSet.IsEOF())								//如果记录没有到末尾
	 {
		 if(pstusubSet.m_stu_name==strStuName)				//判断条件
		 {
			 if(MessageBox("是否选择此学生?","提示信息",MB_YESNO)==IDYES)//给出提示
			 {
				 pstusubSet.Edit();							//编辑记录
				 pstusubSet.m_stu_choisubStatus=true;		//记录赋值
				 pstusubSet.Update();						//更新数据
				 pstusubSet.Requery();						//刷新记录集
			 }
			 break;
		 }
		 else
		   pstusubSet.MoveNext();							//移动到下条记录
	 }
	 pstusubSet.Close();									//关闭记录集
}