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

📄 listdlg.cpp

📁 学生信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			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 + -