📄 listdlg.cpp
字号:
return;
CString st;
switch(variant->vt)
{
case VT_ERROR:{
st="Error";
break;
}
case VT_I2:{
st.Format("%d", variant->iVal);
break;
}
case VT_I4:{
st.Format( "%d", variant->lVal);
break;
}
case VT_R4:{
st.Format( "%.2f", variant->fltVal);
break;}
case VT_R8:{ st.Format( "%.2f", variant->dblVal);
break;
}
case VT_CY:{ COleCurrency c(varValue);
st = c.Format();//ie. 1.00
break;
}
case VT_DATE:{ COleDateTime t(variant->date);
st = t.Format( "%B %d, %Y" );//Day of Week, Month Day, Year
break;
}
case VT_BSTR:{ st = V_BSTRT( &varValue );//convert BSTR to CString
break;
}
case VT_BOOL:{ if(variant->boolVal)
st="TRUE";
else
st= "FALSE";
break;
}
case VT_UI1:{st=(CString)((char*)variant->bVal);
break;
}
default:{
break;
}
}
if(j==0)
m_List1.InsertItem(i,st,0);
else
m_List1.SetItemText(i,j,st);
}
}
}
void CListDlg::Enable(BOOL b)
{
GetDlgItem(IDC_ADD)->EnableWindow(b);
GetDlgItem(IDC_DELE)->EnableWindow(b);
GetDlgItem(IDC_EDIT)->EnableWindow(b);
GetDlgItem(IDC_DELE)->EnableWindow(b);
GetDlgItem(IDC_ALL)->EnableWindow(b);
GetDlgItem(IDC_SERCH)->EnableWindow(b);
}
void CListDlg::OnDeleobject()
{
// TODO: Add your control notification handler code here
CDeleObject dlg;
dlg.GetSet(m_pDB);
dlg.DoModal();
}
void CListDlg::OnAdd()
{
if(m_pRecordSet->IsOpen())
{
m_pRecordSet->m_strFilter.Empty();
m_pRecordSet->Close();
}
CString strSQL="SELECT * FROM " + m_GetString;
m_pRecordSet->Open(dbOpenDynaset, strSQL);
CAdd dlg;
dlg.GetSet(m_pRecordSet,m_pDB,nField,m_GetString);
dlg.DoModal();
this->OnStrat();
}
void CListDlg::OnAddbut()
{
// TODO: Add your command handler code here
CCreateDialog dlg;
dlg.GetSet(m_pDB,m_pRecordSet,nField);
dlg.DoModal();
}
void CListDlg::OnDelebut()
{
// TODO: Add your command handler code here
CDisDialog dlg;
dlg.GetSet(m_pDB);
dlg.DoModal();
}
void CListDlg::OnAddobjcet()
{
// TODO: Add your command handler code here
CAddObject dlg;
dlg.GetSet(m_pDB);
dlg.DoModal();
}
void CListDlg::OnUpdateAddobjcet(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(m_bTF);
}
void CListDlg::OnUpdateDeleobject(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(m_bTF);
}
void CListDlg::OnUpdateAddbut(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(m_bCR);
}
void CListDlg::OnUpdateDelebut(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(m_bTF);
}
void CListDlg::OnDele()
{
// TODO: Add your control notification handler code here
CDel dlg;
if(m_pRecordSet->IsOpen())
{
m_pRecordSet->m_strFilter.Empty();
m_pRecordSet->Close();
}
CString strSQL="SELECT * FROM " + m_GetString;
m_pRecordSet->Open(dbOpenDynaset, strSQL);
if(dlg.DoModal()==IDOK)
{
if(dlg.m_Pass!=1234)
AfxMessageBox("密码不正确!你没有权限删除记录");
else
{
m_pRecordSet->m_strFilter.Format("[学号]=%d",dlg.m_xue);
m_pRecordSet->Requery();
if(m_pRecordSet->IsEOF())
{AfxMessageBox("没有此人");
return;}
else
{ m_pRecordSet->Delete();
m_pRecordSet->m_strFilter.Empty();
this->OnStrat();
}
}
}
}
void CListDlg::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{ NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
CDaoFieldInfo m_fieldinfo;
switch ( pNMListView -> iSubItem ) {
case 0:
LoadSortList ( CString ( "[学号]" ) );
break;
case 1:
LoadSortList ( CString ( "[姓名]" ) );
break;
case 2:
m_pRecordSet->GetFieldInfo(2, m_fieldinfo);
LoadSortList ( CString ( m_fieldinfo.m_strName ) );
break;
case 3:
m_pRecordSet->GetFieldInfo(3, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 4:
m_pRecordSet->GetFieldInfo(4, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 5:
m_pRecordSet->GetFieldInfo(5, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 6:
m_pRecordSet->GetFieldInfo(6, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 7:
m_pRecordSet->GetFieldInfo(7, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 8:
m_pRecordSet->GetFieldInfo(8, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 9:
m_pRecordSet->GetFieldInfo(9, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 10:
m_pRecordSet->GetFieldInfo(10, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 11:
m_pRecordSet->GetFieldInfo(11, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 12:
m_pRecordSet->GetFieldInfo(12, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
case 13:
m_pRecordSet->GetFieldInfo(13, m_fieldinfo);
LoadSortList ( CString (m_fieldinfo.m_strName ) );
break;
default:
LoadSortList ( CString ( "" ) ); // default: no sort.
break;
}
*pResult = 0;
}
void CListDlg::LoadSortList ( CString& strSortBy )
{
// clear out the listbox
m_List1.DeleteAllItems ();
if(m_bIsAsc)
{
m_pRecordSet->m_strSort=strSortBy+" ASC";
m_bIsAsc=FALSE;
}
else
{
m_pRecordSet->m_strSort=strSortBy+" DESC";
m_bIsAsc=TRUE;
}
this->OnStrat();
}
void CListDlg::OnAll()
{
// TODO: Add your control notification handler code here
this->OnStrat();
}
void CListDlg::OnSerch()
{
// TODO: Add your control notification handler code here
CSeer dlg;
if( dlg.DoModal()==IDOK)
{
m_pRecordSet->m_strFilter.Format("[%s]%s%.2f",dlg.m_str1,dlg.m_str2,dlg.m_fEdit);
m_List1.DeleteAllItems();
try
{m_pRecordSet->Requery();}
catch(CDaoException *e)
{
AfxMessageBox(e->m_pErrorInfo->m_strDescription,MB_ICONEXCLAMATION);
m_pRecordSet->m_strFilter.Empty();
e->Delete();
return ;}
if(m_pRecordSet->IsEOF())
{
AfxMessageBox("没有符合条件的记录");
return ;
}
else
{
m_pRecordSet->MoveLast();
long count =m_pRecordSet->GetRecordCount();
this->OnGetdispinfoList( count, nField);
}
m_pRecordSet->m_strFilter.Empty();
}
}
void CListDlg::OnEdit()
{
// TODO: Add your control notification handler code here
CEditDialog dlg;
dlg.GetSet(m_pRecordSet,m_pDB,nField,m_GetString);
COleVariant varValue;
int nItemIndex = -1;
if ( ( m_List1.GetNextItem ( -1, LVNI_SELECTED ) ) != -1 ) {
while ( ( nItemIndex = m_List1.GetNextItem ( nItemIndex, LVNI_SELECTED ) ) != -1 ) {
m_pRecordSet->m_strFilter =
CString ( "[学号] = " ) +
CString ( m_List1.GetItemText ( nItemIndex, 0 ) ); // put the ID into the query string
m_pRecordSet->Requery();
for(long j=0;j<nField-2;j++)
{ m_pRecordSet->GetFieldValue(j, varValue);
const VARIANT* variant = LPCVARIANT(varValue);
if(variant->vt & VT_BYREF)
return;
else
{
switch(variant->vt)
{
case VT_I4:{
dlg.m_xue=variant->lVal;
break;
}
case VT_R4:{
if(j==2&&j<nField-2)
dlg.m_f1=variant->fltVal;
if(j==3&&j<nField-2)
dlg.m_f2=variant->fltVal;
if(j==4&&j<nField-2)
dlg.m_f3=variant->fltVal;
if(j==5&&j<nField-2)
dlg.m_f4=variant->fltVal;
if(j==6&&j<nField-2)
dlg.m_f5=variant->fltVal;
if(j==7&&j<nField-2)
dlg.m_f6=variant->fltVal;
if(j==8&&j<nField-2)
dlg.m_f7=variant->fltVal;
if(j==9&&j<nField-2)
dlg.m_f8=variant->fltVal;
if(j==10&&j<nField-2)
dlg.m_f9=variant->fltVal;
if(j==11&&j<nField-2)
dlg.m_f10=variant->fltVal;
break;
}
case VT_BSTR:{ dlg.m_strName = V_BSTRT( &varValue );//convert BSTR to CString
break;
}
}
}
}
dlg.DoModal();
}
}
m_pRecordSet->m_strFilter.Empty();
this->OnStrat();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -