mygatherformula.cpp
来自「一个学生考试成绩管理的半成品」· C++ 代码 · 共 501 行 · 第 1/2 页
CPP
501 行
GotoDlgCtrl(GetDlgItem(IDC_GOODNUMBER));
return;
}
else
m_goodnumber.GetLBText(m_goodnumber.GetCurSel(),str4);
if(m_low.GetCurSel()<0)
{
AfxMessageBox("必须选择[低分率],或单击[使用默认值]按钮自动填入默认值!");
GotoDlgCtrl(GetDlgItem(IDC_LOW));
return;
}
else
m_low.GetLBText(m_low.GetCurSel(),str5);
if(m_lownumber.GetCurSel()<0)
{
AfxMessageBox("必须选择[低分率取值],或单击[使用默认值]按钮自动填入默认值!");
GotoDlgCtrl(GetDlgItem(IDC_LOWNUMBER));
return;
}
else
m_lownumber.GetLBText(m_lownumber.GetCurSel(),str6);
if(m_averagenumber.GetCurSel()<0)
{
AfxMessageBox("必须选择[平均分取值],或单击[使用默认值]按钮自动填入默认值!");
GotoDlgCtrl(GetDlgItem(IDC_AVERAGENUMBER));
return;
}
else
m_averagenumber.GetLBText(m_averagenumber.GetCurSel(),str7);
if(m_averages.GetCurSel()<0)
{
AfxMessageBox("必须选择[均值计算公式],或单击[使用默认值]按钮自动填入默认值!");
GotoDlgCtrl(GetDlgItem(IDC_AVERAGES));
return;
}
m_averages.GetLBText(m_averages.GetCurSel(),str8);
if(m_dataorder.GetCheck())
str9=_T("是");
else
str9=_T("否");
CString strSQL;
strSQL="select * from formula";
strSQL=strSQL+" where my_year='";
strSQL=strSQL+str0+"'";
HRESULT hTRes;
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()),
((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText); //执行查询,打开记录集
if(!(m_pRecordset->adoEOF))//修改
{
CString strSQL;
strSQL="update formula set ";
strSQL=strSQL+"my_year='"+str0+"',";
strSQL=strSQL+"my_segment='"+str1+"',";
strSQL=strSQL+"my_qualifiedformula='"+"及格人数÷"+str2+"',";
strSQL=strSQL+"my_goodformula='"+str3+"÷"+str4+"',";
strSQL=strSQL+"my_lowformula='"+str5+"÷"+str6+"',";
strSQL=strSQL+"my_averageformula='"+str7+"',";
strSQL=strSQL+"my_averagesformula='"+str8+"',";
strSQL=strSQL+"my_dataorder='"+str9+"'";
strSQL=strSQL+" where my_year='";
strSQL=strSQL+str0+"'";
(((CScoreGatherApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,NULL,adCmdText);
}
else//增加
{
m_pRecordset->AddNew();
m_pRecordset->PutCollect("my_year",_variant_t(str0));
m_pRecordset->PutCollect("my_segment",_variant_t(str1));
m_pRecordset->PutCollect("my_qualifiedformula",_variant_t("及格人数÷"+str2));
m_pRecordset->PutCollect("my_goodformula",_variant_t(str3+"÷"+str4));
m_pRecordset->PutCollect("my_lowformula",_variant_t(str5+"÷"+str6));
m_pRecordset->PutCollect("my_averageformula",_variant_t(str7));
m_pRecordset->PutCollect("my_averagesformula",_variant_t(str8));
m_pRecordset->PutCollect("my_dataorder",_variant_t(str9));
m_pRecordset->Update();
}
m_pRecordset->Close();
m_pRecordset=NULL;
}
BOOL CMyGatherFormula::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}
void CMyGatherFormula::OnCancel()
{
}
void CMyGatherFormula::OnOK()
{
}
BOOL CMyGatherFormula::OnEraseBkgnd(CDC* pDC)
{
CBrush brush(RGB(250,220,250));
CBrush* pOldBrush=pDC->SelectObject(&brush);
CRect rcClip;
pDC->GetClipBox(&rcClip);
pDC->PatBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}
HBRUSH CMyGatherFormula::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if(nCtlColor!=CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(40,20,255));
pDC->SetBkMode(TRANSPARENT);
HBRUSH B = CreateSolidBrush(RGB(250,220,250));
return (HBRUSH) B;
}
else
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
void CMyGatherFormula::OnCbnSelchangeYear()
{
view();
}
void CMyGatherFormula::OnBnClickedNewview()
{
if(m_year.GetCurSel()<0)
{
AfxMessageBox("必须选择学年度!");
GotoDlgCtrl(cwnd_year);
return;
}
else
view();
}
void CMyGatherFormula::view(void)
{
CString str0;
str0=_T("");
if(m_year.GetCurSel()>=0)
{
m_year.GetLBText(m_year.GetCurSel(),str0);
CString strSQL;
strSQL="select * from formula";
strSQL=strSQL+" where my_year='";
strSQL=strSQL+str0+"'";
HRESULT hTRes;
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
CString string;
if(!(m_pRecordset->adoEOF))
{
string.Empty();
string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_year"));
m_year.SetCurSel(m_year.FindString(0,string));
string.Empty();
string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_segment"));
m_segment.SetCurSel(m_segment.FindString(0,string));
string.Empty();
string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_qualifiedformula"));
m_qualifiednumber.SetCurSel(m_qualifiednumber.FindString(0,string.Right(string.GetLength()-10)));
string.Empty();
string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_goodformula"));
m_good.SetCurSel(m_good.FindString(0,string.Left(10)));
m_goodnumber.SetCurSel(m_goodnumber.FindString(0,string.Right(8)));
string.Empty();
string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_lowformula"));
m_low.SetCurSel(m_low.FindString(0,string.Left(10)));
m_lownumber.SetCurSel(m_lownumber.FindString(0,string.Right(8)));
string.Empty();
string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_averageformula"));
m_averagenumber.SetCurSel(m_averagenumber.FindString(0,string));
string.Empty();
string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_averagesformula"));
m_averages.SetCurSel(m_averages.FindString(0,string));
string.Empty();
string=p_MySetClass->GetString(m_pRecordset->GetCollect("my_dataorder"));
if(string==_T("是"))
m_dataorder.SetCheck(1);
else
m_dataorder.SetCheck(0);
}
else
{
clsctrl();
}
}
}
}
void CMyGatherFormula::clsctrl(void)
{
m_segment.SetCurSel(-1);
m_qualifiednumber.SetCurSel(-1);
m_good.SetCurSel(-1);
m_goodnumber.SetCurSel(-1);
m_low.SetCurSel(-1);
m_lownumber.SetCurSel(-1);
m_averagenumber.SetCurSel(-1);
m_averages.SetCurSel(-1);
m_dataorder.SetCheck(0);
}
void CMyGatherFormula::OnBnClickedDel()
{
int x=m_year.GetCurSel();
if(x>=0)
{
CString strSQL,str;
m_year.GetLBText(x,str);
strSQL="select my_year from formula where my_year='";
strSQL=strSQL+str+"'";
HRESULT hTRes;
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CScoreGatherApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
if(SUCCEEDED(hTRes))
{
if (!(m_pRecordset->adoEOF))//公式表中有此年度的公式则删除
{
strSQL="delete from formula where my_year='";
strSQL=strSQL+str+"'";
(((CScoreGatherApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,NULL,adCmdText);
if(m_year.GetCount()>1)
{
if(m_year.GetCount()>x+1)//如果删除项不是最后项则下移,否则上移
m_year.SetCurSel(x+1);
else
m_year.SetCurSel(x-1);
view();
}
else
clsctrl();
}
}
}
}
else
AfxMessageBox("学年度信息为空!");
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?