📄 selectview.cpp
字号:
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 + -