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

📄 jibendlg.cpp

📁 本程序用来学校管理学生挡案用. 采用Access数据库,程序实现关键在应用ODBC 的两个类.
💻 CPP
字号:
// JIBENdlg.cpp : implementation file
//

#include "stdafx.h"
#include "STU.h"
#include "JIBENdlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CJIBENdlg dialog
CString str;
extern int K;
extern int i;
CJIBENdlg::CJIBENdlg(CWnd* pParent /*=NULL*/)
	: CDialog(CJIBENdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CJIBENdlg)
		// NOTE: the ClassWizard will add member initialization here
	 P = false;
	 number = -1;
//	 m_sousuo = 0;
//	 m_adlg = new CADDdlg;
	// s1 = "1";
	//}}AFX_DATA_INIT
}


void CJIBENdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CJIBENdlg)
	DDX_Control(pDX, IDC_LIST2, m_ListCtrl2);
	DDX_Control(pDX, IDC_DELETE3, m_delete);
	DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
	DDX_Control(pDX, IDC_BEIZHU, m_beizhu);
	DDX_Control(pDX, IDC_XINGSHI, m_xingshi);
	DDX_Control(pDX, IDC_SUOZAIXUEXIAO, m_xuexiao);
	DDX_Control(pDX, IDC_RUXUE, m_ruxue);
	DDX_Control(pDX, IDC_LEIXING, m_leixing);
	DDX_Control(pDX, IDC_DANGAN, m_dangan);
	DDX_Control(pDX, IDC_CENGCI, m_cengci);
	DDX_Control(pDX, IDC_ZHUCE, m_zhucetime);
	DDX_Control(pDX, IDC_SOUSUO, m_sousuo);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CJIBENdlg, CDialog)
	//{{AFX_MSG_MAP(CJIBENdlg)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_FIND2, OnFind)
	ON_BN_CLICKED(IDC_DELETE3, OnDelete)
	ON_BN_CLICKED(IDC_SHOW21, OnALLShow)
	ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CJIBENdlg message handlers

BOOL CJIBENdlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_ListCtrl.SetTextColor(RGB (0, 0, 0));
	m_ListCtrl.SetTextBkColor(RGB (140, 180, 220));
	m_ListCtrl.SetBkColor(RGB (140, 180, 220));
	m_ListCtrl2.SetTextColor(RGB (0, 0, 0));
	m_ListCtrl2.SetTextBkColor(RGB (140, 180, 220));
	m_ListCtrl2.SetBkColor(RGB (140, 180, 220));
   m_ListCtrl2.ShowWindow(SW_HIDE);
   if(K != 2)
   {
    m_delete.EnableWindow(false);
   }
    m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    m_ListCtrl.InsertColumn(0,_T("学号"),LVCFMT_IMAGE|LVCFMT_LEFT);
	m_ListCtrl.InsertColumn(1,_T("姓名"));
	m_ListCtrl.InsertColumn(2,_T("性别"));
	m_ListCtrl.InsertColumn(3,_T("年龄"));
	m_ListCtrl.InsertColumn(4,_T("出生日期"));
	m_ListCtrl.InsertColumn(5,_T("专业"));
	m_ListCtrl.InsertColumn(6,_T("年级"));
    m_ListCtrl.InsertColumn(7,_T("班级"));
	m_ListCtrl.InsertColumn(8,_T("班主任"));
	m_ListCtrl.InsertColumn(9,_T("联系电话"));
	m_ListCtrl.InsertColumn(10,_T("家庭住址"));
	m_ListCtrl.InsertColumn(11,_T("毕业时间"));
	m_ListCtrl.InsertColumn(12,_T("收费"));
	    m_ListCtrl2.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    m_ListCtrl2.InsertColumn(0,_T("学号"),LVCFMT_IMAGE|LVCFMT_LEFT);
	m_ListCtrl2.InsertColumn(1,_T("姓名"));
	m_ListCtrl2.InsertColumn(2,_T("性别"));
	m_ListCtrl2.InsertColumn(3,_T("年龄"));
	m_ListCtrl2.InsertColumn(4,_T("出生日期"));
	m_ListCtrl2.InsertColumn(5,_T("专业"));
	m_ListCtrl2.InsertColumn(6,_T("年级"));
    m_ListCtrl2.InsertColumn(7,_T("班级"));
	m_ListCtrl2.InsertColumn(8,_T("班主任"));
	m_ListCtrl2.InsertColumn(9,_T("联系电话"));
	m_ListCtrl2.InsertColumn(10,_T("家庭住址"));
	m_ListCtrl2.InsertColumn(11,_T("毕业时间"));
	m_ListCtrl2.InsertColumn(12,_T("收费"));
	int j;
    for(j=0; j <= 12; j++)
	{
	  m_ListCtrl.SetColumnWidth(j, 80);
	   m_ListCtrl2.SetColumnWidth(j, 80);
	}
	m_ListCtrl.SetColumnWidth(2, 50);
	m_ListCtrl.SetColumnWidth(3, 50);	
		m_ListCtrl2.SetColumnWidth(2, 50);
	m_ListCtrl2.SetColumnWidth(3, 50);
	show();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CJIBENdlg::show()
{
	CString st;
	st.Format("select * from 主体表");
	CString xx, s, x;
	if(m_Set.IsOpen())
		m_Set.Close();
	m_Set.Open(AFX_DB_USE_DEFAULT_TYPE, st);
	if(!(str == "全部学校"))
	{
	 m_ListCtrl.DeleteAllItems();
	 x = "'";
	 xx = "[所在学校]="+x+str+x;
	 m_Set.m_strFilter=xx;
	 m_Set.Requery();
	 	 int i = 0;
      while(!m_Set.IsEOF())
	  {
		m_ListCtrl.InsertItem(i, m_Set.m_column3, 0);
	      m_ListCtrl.SetItemText(i, 1, m_Set.m_column4);
     	  m_ListCtrl.SetItemText(i, 2, m_Set.m_column5);
		  m_ListCtrl.SetItemText(i, 3, m_Set.m_column6);
		  m_ListCtrl.SetItemText(i, 4, m_Set.m_column7);
		  m_ListCtrl.SetItemText(i, 5, m_Set.m_column10);
		  m_ListCtrl.SetItemText(i, 6, m_Set.m_column15);
	      m_ListCtrl.SetItemText(i, 7, m_Set.m_column21);
		  m_ListCtrl.SetItemText(i, 8, m_Set.m_column16);
		  m_ListCtrl.SetItemText(i, 9, m_Set.m_column8);
		  m_ListCtrl.SetItemText(i, 10, m_Set.m_column9);
		  m_ListCtrl.SetItemText(i, 11, m_Set.m_column17);
		  s.Format("%d", m_Set.m_column18);
		   m_ListCtrl.SetItemText(i, 12, s);
           m_Set.MoveNext();
		    i++;
	  }
	}
	else
	{
	if(P)
	{	
	   return;
	}
	else
	{
	 m_ListCtrl.DeleteAllItems();
	 int i = 0;
	   if(m_Set.IsEOF())
		   return;
      while(!m_Set.IsEOF())
	  {
		m_ListCtrl.InsertItem(i, m_Set.m_column3, 0);
	      m_ListCtrl.SetItemText(i, 1, m_Set.m_column4);
     	  m_ListCtrl.SetItemText(i, 2, m_Set.m_column5);
		  m_ListCtrl.SetItemText(i, 3, m_Set.m_column6);
		  m_ListCtrl.SetItemText(i, 4, m_Set.m_column7);
		  m_ListCtrl.SetItemText(i, 5, m_Set.m_column10);
		  m_ListCtrl.SetItemText(i, 6, m_Set.m_column15);
	      m_ListCtrl.SetItemText(i, 7, m_Set.m_column21);
		  m_ListCtrl.SetItemText(i, 8, m_Set.m_column16);
		  m_ListCtrl.SetItemText(i, 9, m_Set.m_column8);
		  m_ListCtrl.SetItemText(i, 10, m_Set.m_column9);
		  m_ListCtrl.SetItemText(i, 11, m_Set.m_column17);
		  s.Format("%d", m_Set.m_column18);
		   m_ListCtrl.SetItemText(i, 12, s);
           m_Set.MoveNext();
		    i++;
			m_ListCtrl.ShowWindow(SW_SHOW);
	  }
	}
	}
}




void CJIBENdlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
//  K = 3;
	 N = M = 2;
	POSITION iPos = m_ListCtrl.GetFirstSelectedItemPosition();
      int nItem = m_ListCtrl.GetNextSelectedItem(iPos);
	     number = nItem;
		 if(number == -1)	
		 return;
		    m_Set.MoveFirst();
		 m_Set.Move(nItem);
	      m_zhucetime.SetWindowText(m_Set.m_column2);
		  m_beizhu.SetWindowText(m_Set.m_column20);
		  m_dangan.SetWindowText(m_Set.m_column19);
		  m_xuexiao.SetWindowText(m_Set.m_column14);
		  m_cengci.SetWindowText(m_Set.m_column12);
		  m_leixing.SetWindowText(m_Set.m_column11);
          m_xingshi.SetWindowText(m_Set.m_column13);
          m_ruxue.SetWindowText(m_Set.m_column1);
		  m_Set.MoveFirst();
			 *pResult = 0;
}

void CJIBENdlg::OnFind() 
{
	// TODO: Add your control notification handler code here 
	P = true;
	number = -1;
	int column = m_ListCtrl.GetItemCount();
	CFINDdlg m_dlg;
	if(m_dlg.DoModal() == IDOK)
	{	
	  m_ListCtrl2.ShowWindow(SW_SHOW);
	 m_ListCtrl.ShowWindow(SW_HIDE);
	}

	if( m_dlg.m_nianji == "")
	 m_dlg.op = 1;
	 else
		 m_dlg.op = 2;
	m_ListCtrl2.DeleteAllItems();
	int i  = 0;
	CString s;
	maxfind[0] = -1;
	m_Set.MoveFirst();
	  for(int j = 0; j < column; j++)
	  {  
		  if(m_dlg.op == 2)
		  {
		  if(m_Set.m_column10 == m_dlg.m_zhuanye)
		  {
			if(m_dlg.m_nianji == m_Set.m_column15)
			{
			m_ListCtrl2.InsertItem(i, m_Set.m_column3, 0);
	        m_ListCtrl2.SetItemText(i, 1, m_Set.m_column4);
     	    m_ListCtrl2.SetItemText(i, 2, m_Set.m_column5);
		    m_ListCtrl2.SetItemText(i, 3, m_Set.m_column6);
		    m_ListCtrl2.SetItemText(i, 4, m_Set.m_column7);
		    m_ListCtrl2.SetItemText(i, 5, m_Set.m_column10);
		    m_ListCtrl2.SetItemText(i, 6, m_Set.m_column15);
	        m_ListCtrl2.SetItemText(i, 7, m_Set.m_column21);
		    m_ListCtrl2.SetItemText(i, 8, m_Set.m_column16);
		    m_ListCtrl2.SetItemText(i, 9, m_Set.m_column8);
		    m_ListCtrl2.SetItemText(i, 10, m_Set.m_column9);
		    m_ListCtrl2.SetItemText(i, 11, m_Set.m_column17);
		    s.Format("%d", m_Set.m_column18);
		    m_ListCtrl2.SetItemText(i, 12, s);
			maxfind[i] = j;
            m_Set.MoveNext();
			++i;
			continue;
			}
		  }
		  }
		  if(m_dlg.op == 1)
		  {
		  if((m_Set.m_column10 == m_dlg.m_zhuanye))
		  {
			m_ListCtrl2.InsertItem(i, m_Set.m_column3, 0);
	        m_ListCtrl2.SetItemText(i, 1, m_Set.m_column4);
     	    m_ListCtrl2.SetItemText(i, 2, m_Set.m_column5);
		    m_ListCtrl2.SetItemText(i, 3, m_Set.m_column6);
		    m_ListCtrl2.SetItemText(i, 4, m_Set.m_column7);
		    m_ListCtrl2.SetItemText(i, 5, m_Set.m_column10);
		    m_ListCtrl2.SetItemText(i, 6, m_Set.m_column15);
	        m_ListCtrl2.SetItemText(i, 7, m_Set.m_column21);
		    m_ListCtrl2.SetItemText(i, 8, m_Set.m_column16);
		    m_ListCtrl2.SetItemText(i, 9, m_Set.m_column8);
		    m_ListCtrl2.SetItemText(i, 10, m_Set.m_column9);
		    m_ListCtrl2.SetItemText(i, 11, m_Set.m_column17);
		    s.Format("%d", m_Set.m_column18);
		    m_ListCtrl2.SetItemText(i, 12, s);
			maxfind[i] = j;
            m_Set.MoveNext();
			++i;
			continue;
		  }
		  }
		  m_Set.MoveNext();
	  }
	 // int jj = i;
	  CString ttt;
	  ttt.Format("%d", i);
	  ttt = ttt + "条记录";
	  m_sousuo.SetWindowText(ttt);
}

void CJIBENdlg::OnDelete() 
{
	// TODO: Add your control notification handler code here
	 m_ListCtrl.EnableWindow(true);
	 if(N == 2)
	 {
		 if(number < 0)
		 {
	      m_Set.MoveFirst();
		 }
	      else
		  {
			  m_Set.Move(number);
	         m_Set.Delete();
		   m_ListCtrl.DeleteItem(number);
		   		   number = -1;
		  }	
	 }
	 if(N == 3)
	 {
		 if(numberxue == -1)
		 {
		  return ;
		 }
		 else
		 {
		    m_ListCtrl2.DeleteItem(numberxue);
			m_Set.Move(maxfind[numberxue]);
			m_Set.Delete();
			m_ListCtrl.DeleteItem(maxfind[numberxue]);
		 }
		number = -1;
	 }
}


void CJIBENdlg::OnALLShow() 
{
	// TODO: Add your control notification handler code here

	show();
	m_ListCtrl.EnableWindow(true);
	m_ListCtrl.ShowWindow(SW_SHOW);
	m_ListCtrl2.ShowWindow(SW_HIDE);
	m_ListCtrl2.DeleteAllItems();
	P = false;
     number = -1;    
}

void CJIBENdlg::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
 //  K = 3;
	N =	M = 3;   
	 m_ListCtrl2.EnableWindow(true);
	 m_ListCtrl.EnableWindow(false);
	POSITION iPos = m_ListCtrl2.GetFirstSelectedItemPosition();
      int nItem = m_ListCtrl2.GetNextSelectedItem(iPos);
  	    number = nItem;
		 numberxue = number;
		 if(numberxue == -1)
			 return;
		 m_Set.MoveFirst();
		 m_Set.Move(maxfind[numberxue]);
	      m_zhucetime.SetWindowText(m_Set.m_column2);
		  m_beizhu.SetWindowText(m_Set.m_column20);
		  m_dangan.SetWindowText(m_Set.m_column19);
		  m_xuexiao.SetWindowText(m_Set.m_column14);
		  m_cengci.SetWindowText(m_Set.m_column12);
		  m_leixing.SetWindowText(m_Set.m_column11);
          m_xingshi.SetWindowText(m_Set.m_column13);
          m_ruxue.SetWindowText(m_Set.m_column1);
		  m_Set.MoveFirst();
	        *pResult = 0;
}



void CJIBENdlg::kfind()
{
   OnFind();
}

void CJIBENdlg::dle()
{
OnDelete();
}

⌨️ 快捷键说明

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