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

📄 selectview.cpp

📁 我上载了那么多怎么都说已经有上载的啦
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	m_strItemText[3] = "";
	if( hParentItem2 )
	{
		nLevel++;
		hParentItem3 = m_pTreeCtrl->GetParentItem(hParentItem2);
		strItemText2 = m_pTreeCtrl->GetItemText(hParentItem2);
		m_strItemText[0] = strItemText2;
		m_strItemText[1] = strItemText1;
		if( hParentItem3 )
		{
			nLevel++;
			hParentItem4 = m_pTreeCtrl->GetParentItem(hParentItem3);
			strItemText3 = m_pTreeCtrl->GetItemText(hParentItem3);
			m_strItemText[0] = strItemText3;
			m_strItemText[1] = strItemText2;
			m_strItemText[2] = strItemText1;
			if( hParentItem4 )
			{
				nLevel++;
				strItemText4 = m_pTreeCtrl->GetItemText(hParentItem4);
				m_strItemText[0] = strItemText4;
				m_strItemText[1] = strItemText3;
				m_strItemText[2] = strItemText2;
				m_strItemText[3] = strItemText1;
			}
		}
	}

	int nOldLevel = m_pMainFrm->GetLevel();
	m_pMainFrm->SetLevel(nLevel);
	int nOldDisplayStyle = 1;
	if( !m_bCreating )
	{
		if( nLevel == 1 )
		{
			if( m_strItemText[0] == MainCatalog[0] )
			{
				m_pMainFrm->SetViewStyle (TIME_STYLE);
				m_pMainFrm->SwitchRightViews(TIME_STYLE);
				m_pMainFrm->GetTimeView()->SetTerm("");
				m_pMainFrm->GetTimeView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[1] )
			{
				m_pMainFrm->SetViewStyle (SHEET_STYLE);
				m_pMainFrm->SwitchRightViews(SHEET_STYLE);
				m_pMainFrm->GetSheetView()->SetTeacher("");
				m_pMainFrm->GetSheetView()->SetClass("");
				m_pMainFrm->GetSheetView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[2] )
			{
				m_pMainFrm->SetViewStyle (THEME_STYLE);
				m_pMainFrm->SwitchRightViews(THEME_STYLE);
				m_pMainFrm->GetThemeView()->SetTeacher("");
				m_pMainFrm->GetThemeView()->SetClass("");
				m_pMainFrm->GetThemeView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[3] )
			{
				m_pMainFrm->SetViewStyle (SCORE_STYLE);
				m_pMainFrm->SwitchRightViews(SCORE_STYLE);
				m_pMainFrm->GetScoreView()->SetTeacher("");
				m_pMainFrm->GetScoreView()->SetClass("");
				m_pMainFrm->GetScoreView()->DrawList();
			}
			CString strTitle;
			strTitle.Format("%s",m_strItemText[0]);
			m_pMainFrm->DrawTitle(strTitle);
		}
		else if( nLevel == 2 )
		{
			if( m_strItemText[0] == MainCatalog[0] )
			{
				m_pMainFrm->SetViewStyle (TIME_STYLE);
				m_pMainFrm->SwitchRightViews(TIME_STYLE);
				m_pMainFrm->GetTimeView()->SetTerm(m_strItemText[1]);
				m_pMainFrm->GetTimeView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[1] )
			{
				m_pMainFrm->SetViewStyle (SHEET_STYLE);
				m_pMainFrm->SwitchRightViews(SHEET_STYLE);
				m_pMainFrm->GetSheetView()->SetTeacher("");
				m_pMainFrm->GetSheetView()->SetClass("");
				m_pMainFrm->GetSheetView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[2] )
			{
				m_pMainFrm->SetViewStyle (THEME_STYLE);
				m_pMainFrm->SwitchRightViews(THEME_STYLE);
				m_pMainFrm->GetThemeView()->SetTeacher("");
				m_pMainFrm->GetThemeView()->SetClass("");
				m_pMainFrm->GetThemeView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[3] )
			{
				m_pMainFrm->SetViewStyle (SCORE_STYLE);
				m_pMainFrm->SwitchRightViews(SCORE_STYLE);
				m_pMainFrm->GetScoreView()->SetTeacher("");
				m_pMainFrm->GetScoreView()->SetClass("");
				m_pMainFrm->GetScoreView()->DrawList();
			}
			CString strTitle;
			strTitle.Format("%s: %s",m_strItemText[0], m_strItemText[1]);
			m_pMainFrm->DrawTitle(strTitle);

		}
		else if( nLevel == 3 )
		{
			CString strTitle;
			strTitle.Format("%s: %s (%s)",m_strItemText[0], m_strItemText[1] , m_strItemText[2]);
			m_pMainFrm->DrawTitle(strTitle);
			if( m_strItemText[0] == MainCatalog[0] )
			{
				m_pMainFrm->SetViewStyle (TIME_STYLE);
				m_pMainFrm->SwitchRightViews(TIME_STYLE);
				m_pMainFrm->GetTimeView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[1] )
			{
				m_pMainFrm->SetViewStyle (SHEET_STYLE);
				m_pMainFrm->SwitchRightViews(SHEET_STYLE);
				if( m_strItemText[1] == SheetItem[0] )
				{
					m_pMainFrm->GetSheetView()->SetClass(m_strItemText[2]);
					m_pMainFrm->GetSheetView()->SetTeacher("");
				}
				if( m_strItemText[1] == SheetItem[1] )
				{
					m_pMainFrm->GetSheetView()->SetClass("");
					m_pMainFrm->GetSheetView()->SetTeacher(m_strItemText[2]);
				}
				m_pMainFrm->GetSheetView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[2] )
			{
				m_pMainFrm->SetViewStyle (THEME_STYLE);
				m_pMainFrm->SwitchRightViews(THEME_STYLE);
				if( m_strItemText[1] == SheetItem[0] )
				{
					m_pMainFrm->GetThemeView()->SetClass(m_strItemText[2]);
					m_pMainFrm->GetThemeView()->SetTeacher("");
				}
				if( m_strItemText[1] == SheetItem[1] )
				{
					m_pMainFrm->GetThemeView()->SetClass("");
					m_pMainFrm->GetThemeView()->SetTeacher(m_strItemText[2]);
				}
				m_pMainFrm->GetThemeView()->DrawList();
			}
			if( m_strItemText[0] == MainCatalog[3] )
			{
				m_pMainFrm->SetViewStyle (SCORE_STYLE);
				m_pMainFrm->SwitchRightViews(SCORE_STYLE);
				if( m_strItemText[1] == SheetItem[0] )
				{
					m_pMainFrm->GetScoreView()->SetClass(m_strItemText[2]);
					m_pMainFrm->GetScoreView()->SetTeacher("");
				}
				if( m_strItemText[1] == SheetItem[1] )
				{
					m_pMainFrm->GetScoreView()->SetClass("");
					m_pMainFrm->GetScoreView()->SetTeacher(m_strItemText[2]);
				}
				m_pMainFrm->GetScoreView()->DrawList();
			}
		}
		m_pMainFrm->Invalidate();
	}

}

static _TCHAR *gszTitle1[] =
{
    _T("序号"), _T("学号"), _T("姓名"), _T("班级"), _T("题目"), _T("类型"), _T("题目性质"), _T("指导老师"), _T("职称"), _T("科研经历"), 
	"\0"		
};

BOOL CSelectView::ExportTheme(CString& sFile) 
{
	static char BASED_CODE szFilter[] = "MS Excel Files (*.xls)|*.xls||";
	char szDefName[MAX_PATH];
	CString sTeacher = m_pMainFrm->GetThemeView()->GetTeacher();
	CTeacher* pTeacher = CGlobal::GetInstance().FindTeacher(sTeacher);

	if( !pTeacher )
		sprintf(szDefName,"%s","题目.xls");
	else 
		sprintf(szDefName,"%s-%s",pTeacher->GetName(), "题目.xls");

	char szPath[MAX_PATH];
	sprintf(szPath,"%s\\Theme",theApp.GetWorkDirectory());
	
	CFileDialog FileDlg(FALSE,"XLS", NULL,
          OFN_FILEMUSTEXIST | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, szFilter,NULL); 
	FileDlg.m_ofn.lpstrInitialDir = szPath;
	FileDlg.m_ofn.lpstrFile = szDefName;
    if( FileDlg.DoModal() != IDOK )
		return FALSE;

    // To get the selected file's path and name
    CString strFileName;
    strFileName = FileDlg.GetPathName();

    if(strFileName.IsEmpty())
    {
		return FALSE;
	}

	DoExportTheme(strFileName);

	sFile = strFileName;

	return TRUE;
}

BOOL CSelectView::DoExportTheme(const CString& strFileName) 
{
	unlink(strFileName);
	BeginWaitCursor();
	// 新建Excel文件名及路径,TestSheet为内部表名
	CSpreadSheet SS(strFileName, "Sheet1");
	CStringArray sampleArray, testRow;
	CThemeView* pTView = m_pMainFrm->GetThemeView();
	
	SS.BeginTransaction();
	
	// 加入标题
	sampleArray.RemoveAll();
	int k = 0;
	int nCols = 0;
	while( gszTitle1[k][0] != '\0' )
	{
		sampleArray.Add(gszTitle1[k]);
		nCols++;
		k++;
	}
	SS.AddHeaders(sampleArray);
	
	// 加入数据
	CListCtrl& ListCtrl = pTView->GetListCtrl();
	int nRows = ListCtrl.GetItemCount();
	for(int i = 0; i < nRows; i++)
	{
		sampleArray.RemoveAll();
		for(int j = 0; j < nCols; j++)
		{
			CString str = ListCtrl.GetItemText(i,j);
			sampleArray.Add(str);
		}
		SS.AddRow(sampleArray);
	}
	
	SS.Commit();	
	
//	if(m_Check.GetCheck())
//		SS.Convert(";");            // 将原Excel文件转换为用分号分隔的文本,并另存为同名文本文件

	EndWaitCursor();
	return TRUE;
}

void CSelectView::OnExportTheme() 
{
	// TODO: Add your command handler code here
	CString sFile;
	if( ExportTheme(sFile) )
	{
		AfxMessageBox("文件导出成功!");
	}
}

void CSelectView::OnUpdateExportTheme(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here

}

void CSelectView::OnImportTheme() 
{
	// TODO: Add your command handler code here
	static char BASED_CODE szFilter[] = "MS Excel Files (*.xls)|*.xls||";
	CString strDefName;
	strDefName.Format("%s", "theme.xsl");

	char szPath[MAX_PATH];
	sprintf(szPath,"%s\\Theme",theApp.GetWorkDirectory());
	
    CFileDialog FileDlg(TRUE,"XLS",NULL,
                        OFN_FILEMUSTEXIST|OFN_NONETWORKBUTTON|
                        OFN_PATHMUSTEXIST,szFilter);
	FileDlg.m_ofn.lpstrInitialDir = szPath;
    if( FileDlg.DoModal() != IDOK )
		return;

    // To get the selected file's path and name
    CString strFileName;
    strFileName = FileDlg.GetPathName();

    if(strFileName.IsEmpty())
    {
		return;
	}

	const char* title[] = { "学号",  "题目性质",  "类型",  "题目", "\0" };
	int nPos[5];
	
	CSpreadSheet SS(strFileName, "Sheet1");
	CStringArray Rows;
	int nCount = 0;

	SS.ReadRow(Rows, 1);
	for (int j = 0; j < Rows.GetSize(); j++)
	{
		CString strTitle = Rows.GetAt(j);
		int k = 0;
		while( title[k][0] != '\0' )
		{
			if( strTitle.Find(title[k]) >= 0 )
			{
				nPos[k] = j;
				nCount++;
				break;
			}
			k++;
		}
	}
	CString strContents[5];
	int rowCount = SS.GetTotalRows();
	for (int i = 2; i <= rowCount; i++)
	{
		// 读取一行
		SS.ReadRow(Rows, i);
		strContents[3] = "";
		for (int j = 0; j < nCount && j < 5; j++)
		{
			strContents[j] = Rows.GetAt(nPos[j]);
		}
		if( strContents[3] != "" )
		{
			CTheme theme = CTheme(strContents[0], m_pMainFrm->GetYear(),strContents[3],
				strContents[2], strContents[1]);
			CTheme::Create(theme);
			CStudent* pStudent = CGlobal::GetInstance().FindStudent(strContents[0], m_pMainFrm->GetYear());
			if( pStudent )
			{
				pStudent->SetTheme(theme);
			}
		}
	}
	m_pMainFrm->GetThemeView()->DrawList();
}

void CSelectView::OnUpdateImportTheme(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(theApp.IsAdmin());
}

void CSelectView::Mail(const CString& sFile, const CString& sTeacher, CString sSubject)
{
	CString sBody;

	CMailDlg MailDlg(this, sTeacher, sSubject);
	if( MailDlg.DoModal() == IDCANCEL )
	{
		return;
	}

	CString sEMail = MailDlg.m_sReceiver;
	if( sEMail == "" || sEMail.Find("@") < 0 )
		return;

	sSubject = MailDlg.m_sSubject;
	sBody = MailDlg.m_sBody;
	if( sSubject == "" )
		sSubject = "毕业设计管理系统";

	CString sAttach = sFile;

	m_mail.m_sTo = sEMail;
	m_mail.m_sCC = "";
	m_mail.m_sBCC = "";
	m_mail.m_sSubject = sSubject;
	m_mail.m_sBody = sBody;
	m_mail.m_sFile = sAttach;
	m_mail.m_pMainFrm = m_pMainFrm;
	AfxBeginThread(CMainFrame::SendMailThreadProc,(LPVOID)&m_mail);//启动线程
}

void CSelectView::OnExportMailTheme() 
{
	// TODO: Add your command handler code here
	CString sFile;
	if( !ExportTheme(sFile) )
	{
		AfxMessageBox("文件导出失败!");
		return;
	}

	CString sTeacher = m_pMainFrm->GetThemeView()->GetTeacher();
	Mail(sFile, sTeacher, "毕设题目")	;
}

void CSelectView::OnUpdateExportMailTheme(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(theApp.IsAdmin() || m_strItemText[2] == theApp.GetLogin());
	
}

void CSelectView::OnExportMailSheet() 
{
	// TODO: Add your command handler code here
	CString sFile;
	if( !ExportSheet(sFile) )
	{
		AfxMessageBox("文件导出失败!");
		return;
	}

	CString sTeacher = m_pMainFrm->GetSheetView()->GetTeacher();
	Mail(sFile, sTeacher, "毕设名单")	;
	
}

void CSelectView::OnUpdateExportMailSheet(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(theApp.IsAdmin() || m_strItemText[2] == theApp.GetLogin());
	
}

void CSelectView::OnTeacherInfo() 
{
	// TODO: Add your command handler code here
	CString sUsername = m_strItemText[2];
	if( m_pMainFrm->GetLevel() == 2 )
		sUsername = "";
	CTeacherDlg	TeacherDlg(NULL, sUsername);

	if( TeacherDlg.DoModal() == IDOK )
	{
		m_pMainFrm->GetThemeView()->DrawList();
	}
}

void CSelectView::OnUpdateTeacherInfo(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable((m_pMainFrm->GetLevel() == 3 && (theApp.IsAdmin() || m_strItemText[2] == theApp.GetLogin()))
		|| (m_pMainFrm->GetLevel() == 2 && theApp.IsAdmin() && m_strItemText[1] == SheetItem[1] ));
	
}

void CSelectView::OnImportSheet() 
{
	// TODO: Add your command handler code here
	static char BASED_CODE szFilter[] = "MS Excel Files (*.xls)|*.xls||";
	CString strDefName;
	strDefName.Format("%s", "名单.xls");

	char szPath[MAX_PATH];
	sprintf(szPath,"%s\\Sheet",theApp.GetWorkDirectory());
	
    CFileDialog FileDlg(TRUE,"XLS",NULL,
                        OFN_FILEMUSTEXIST|OFN_NONETWORKBUTTON|
                        OFN_PATHMUSTEXIST,szFilter);
	FileDlg.m_ofn.lpstrInitialDir = szPath;

⌨️ 快捷键说明

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