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

📄 showdlg.cpp

📁 一个用C
💻 CPP
字号:
// ShowDlg.cpp : implementation file
//

#include "stdafx.h"
#include "TS3.h"
#include "ShowDlg.h"
#include "Teacherdata.h"
#include "Studentdata.h"
#include <afxdb.h>
#include "NewdataDlg.h"
#include "AlteruserDlg.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CShowDlg dialog
extern int newflag=-3;
extern CString str3="";
extern int nColumnCount=6;
CDatabase db;
extern int a=0;



CShowDlg::CShowDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CShowDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CShowDlg)
	m_number = _T("");
	m_name = _T("");

	//}}AFX_DATA_INIT
}


void CShowDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CShowDlg)
	DDX_Control(pDX, IDC_ALL_LIST, m_ctrl);
	DDX_Text(pDX, IDC_NUMBER_EDIT, m_number);
	DDX_Text(pDX, IDC_NAME_EDIT, m_name);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CShowDlg, CDialog)
	//{{AFX_MSG_MAP(CShowDlg)
	ON_BN_CLICKED(IDC_LIST_BUTTON, OnListButton)
	ON_BN_CLICKED(IDC_CHECK_BUTTON, OnCheckButton)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton)
	ON_BN_CLICKED(IDC_ALTER_BUTTON, OnAlterButton)
	ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
	ON_BN_CLICKED(IDC_USER_BUTTON, OnUserButton)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CShowDlg message handlers

BOOL CShowDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_ctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	LV_COLUMN h;
	//定义一个LV_COLUMN结构对象h
	h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
	//设置对象h的fmt,pszText,cx有效
	h.fmt=LVCFMT_CENTER;
	//各栏居中
	h.cx=90;
	h.pszText="姓名";
	m_ctrl.InsertColumn(0,&h);//设置第0列为学号
    h.pszText="年龄";
	m_ctrl.InsertColumn(1,&h);
    h.pszText="职称";
	m_ctrl.InsertColumn(2,&h);
	h.pszText="学历";
	m_ctrl.InsertColumn(3,&h);
	h.pszText="籍贯";
	m_ctrl.InsertColumn(4,&h);
	h.pszText="工作日期";
	m_ctrl.InsertColumn(5,&h);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CShowDlg::OnListButton() 
{
	// TODO: Add your control notification handler code here
	     m_ctrl.DeleteAllItems();
	     if(!db.OpenEx("DSN=ts"))
		 {
	    	MessageBox("数据源打开失败");
		    return ;
		 }
		 int i=0;
		if(flag==0)
		{
			for (int i=0;i < nColumnCount;i++)
			{
				m_ctrl.DeleteColumn(0);
			}
			i=0;
				LV_COLUMN h;
	   //定义一个LV_COLUMN结构对象h
    	h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
	//设置对象h的fmt,pszText,cx有效
	h.fmt=LVCFMT_CENTER;
	//各栏居中
	h.cx=90;
	h.pszText="姓名";
	m_ctrl.InsertColumn(0,&h);//设置第0列为学号
    h.pszText="年龄";
	m_ctrl.InsertColumn(1,&h);
    h.pszText="职称";
	m_ctrl.InsertColumn(2,&h);
	h.pszText="学历";
	m_ctrl.InsertColumn(3,&h);
	h.pszText="籍贯";
	m_ctrl.InsertColumn(4,&h);
	h.pszText="工作日期";
	m_ctrl.InsertColumn(5,&h);
			Teacherdata t(&db);
			CString strText;
		    CString str="select * from teacher";
            if(!t.Open(Teacherdata::dynaset,str))
			{
		      MessageBox("表打开失败");
			}
			while(!t.IsEOF())
			{
				m_ctrl.InsertItem(i,t.m_column1);
                strText.Format(TEXT("%d"), t.m_column2);
				m_ctrl.SetItemText(i,1,strText);
				m_ctrl.SetItemText(i,2,t.m_column3);
				m_ctrl.SetItemText(i,3,t.m_column4);
				m_ctrl.SetItemText(i,4,t.m_column5);
				m_ctrl.SetItemText(i,5,t.m_column6);
				i++;
				t.MoveNext();
				UpdateData(false);
			}
			t.Close();
			db.Close() ;
			nColumnCount=6;
		}
		else
		{   
			for (int i=0;i < nColumnCount;i++)
			{
				m_ctrl.DeleteColumn(0);
			}
			
			
			LV_COLUMN h;
			//定义一个LV_COLUMN结构对象h
			h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
			//设置对象h的fmt,pszText,cx有效
			h.fmt=LVCFMT_CENTER;
			//各栏居中
			h.cx=90;
			h.pszText="姓名";
			m_ctrl.InsertColumn(0,&h);//设置第0列为学号
			h.pszText="年龄";
			m_ctrl.InsertColumn(1,&h);
			h.pszText="学号";
			m_ctrl.InsertColumn(2,&h);
			h.pszText="籍贯";
			m_ctrl.InsertColumn(3,&h);
			h.pszText="入学日期";
			m_ctrl.InsertColumn(4,&h);
			i=0;
			
			Studentdata t(&db);
			CString strText;
			CString str="select * from student";
            if(!t.Open(Studentdata::dynaset,str))
			{
				MessageBox("表打开失败");
			}
			while(!t.IsEOF())
			{
				
				m_ctrl.InsertItem(i,t.m_column1);
                strText.Format(TEXT("%d"), t.m_column2);
				m_ctrl.SetItemText(i,1,strText);
				strText.Format(TEXT("%d"), t.m_column3);
				m_ctrl.SetItemText(i,2,strText);
				m_ctrl.SetItemText(i,3,t.m_column4);
				m_ctrl.SetItemText(i,4,t.m_column5);
				i++;
				t.MoveNext();
				UpdateData(false);
			}     
			t.Close();
			db.Close();
			m_number="";
			UpdateData(false);
		nColumnCount=5;
		
		}
}

void CShowDlg::OnCheckButton() 
{
	// TODO: Add your control notification handler code here
	m_ctrl.DeleteAllItems();
	UpdateData(true);
    if(m_name==""&&m_number=="")
    {
		MessageBox("请输入老师姓名或学生学号!");
        return;
	}
	else if(m_name!="")
	{
			if(!db.OpenEx("DSN=ts"))
	{
		MessageBox("数据源打开失败");
		return ;
	}
	UpdateData(true);
	Teacherdata t(&db);
	CString str1;
	str1=m_name;
	CString str="select * from teacher where 姓名='";
	str+=m_name;
	str+="'"; 
	if(!t.Open(Teacherdata::dynaset,str))
	{
		MessageBox("表打开失败");
	}
	CString strText;

	m_ctrl.InsertItem(0,t.m_column1);
    strText.Format(TEXT("%d"), t.m_column2);
	m_ctrl.SetItemText(0,1,t.m_column3);
	m_ctrl.SetItemText(0,2,strText);
	m_ctrl.SetItemText(0,3,t.m_column4);
	m_ctrl.SetItemText(0,4,t.m_column5);
	m_ctrl.SetItemText(0,5,t.m_column6);
	m_name="";
	UpdateData(false);
	t.Close();
	db.Close();
	}
	else
	{
		


    // Delete all of the columns.
     for (int j=0;j< nColumnCount;j++)
	 {
      m_ctrl.DeleteColumn(0);
	 }


	LV_COLUMN h;
		//定义一个LV_COLUMN结构对象h
	h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
	//设置对象h的fmt,pszText,cx有效
	h.fmt=LVCFMT_CENTER;
	//各栏居中
	h.cx=90;
    h.pszText="姓名";
	m_ctrl.InsertColumn(0,&h);//设置第0列为学号
    h.pszText="年龄";
	m_ctrl.InsertColumn(1,&h);
    h.pszText="学号";
	m_ctrl.InsertColumn(2,&h);
	h.pszText="籍贯";
	m_ctrl.InsertColumn(3,&h);
	h.pszText="入学日期";
	m_ctrl.InsertColumn(4,&h);
		if(!db.OpenEx("DSN=ts"))
	{
		MessageBox("数据源打开失败");
		return ;
	}
	UpdateData(true);
	Studentdata t(&db);
	CString str1;
	str1=m_number;
	CString str="select * from student where 学号=";
	str+=m_number; 
	if(!t.Open(Studentdata::dynaset,str))
	{
		MessageBox("表打开失败");
	}
	CString strText;

	m_ctrl.InsertItem(0,t.m_column1);
    strText.Format(TEXT("%d"), t.m_column2);
	m_ctrl.SetItemText(0,1,strText);
	strText.Format(TEXT("%d"), t.m_column3);
	m_ctrl.SetItemText(0,2,strText);
	m_ctrl.SetItemText(0,3,t.m_column4);
	m_ctrl.SetItemText(0,4,t.m_column5);
	m_number="";
	UpdateData(false);
	t.Close();
	db.Close();
	}
}


void CShowDlg::OnRadio1() 
{
	// TODO: Add your control notification handler code here
	flag=0;
    newflag=flag;
}

void CShowDlg::OnRadio2() 
{
	// TODO: Add your control notification handler code here
	flag=1;
	newflag=flag;
}

void CShowDlg::OnDeleteButton() 
{
	// TODO: Add your control notification handler code here
	//UINT uSelectedCount = m_ctrl.GetSelectedCount();

	POSITION pos = m_ctrl.GetFirstSelectedItemPosition();
	int nitem=m_ctrl.GetNextSelectedItem(pos);
	if(flag==0)
	{
		if(!db.OpenEx("DSN=ts"))
	{
		MessageBox("数据源打开失败");
		return ;
	}
    UpdateData(true);
	Teacherdata t(&db);
    CString str1=m_ctrl.GetItemText(nitem,0);
	CString str="select * from teacher where 姓名='";
	str+=str1;
	str+="'";
	if(!t.Open(CRecordset::dynaset,str))
	{
		MessageBox("表打开失败");
	}
	t.Delete();
	t.Close();	
	db.Close();
	UpdateData(false);
	m_ctrl.DeleteItem(nitem);
	m_ctrl.Update(nitem);
	MessageBox("删除成功!");
	}
	else
	{
	if(!db.OpenEx("DSN=ts"))
	{
		MessageBox("数据源打开失败");
		return ;
	}
    UpdateData(true);
	Studentdata t(&db);
    CString str1=m_ctrl.GetItemText(nitem,2);
	CString str="select * from student where 学号=";
	str+=str1;
	
	if(!t.Open(Studentdata::dynaset,str))
	{
		MessageBox("表打开失败");
	}
	t.Delete();
	t.Close();
	db.Close();
	UpdateData(false);
	m_ctrl.DeleteItem(nitem);
	m_ctrl.Update(nitem);
	MessageBox("删除成功!");
	}


}

void CShowDlg::OnAlterButton() 
{
	// TODO: Add your control notification handler code here
	select=1;
	CString str1;
	CNewdataDlg cn;
	POSITION pos =m_ctrl.GetFirstSelectedItemPosition();     
	int nitem=m_ctrl.GetNextSelectedItem(pos);

		if(!db.OpenEx("DSN=ts"))
	{
		MessageBox("数据源打开失败");
		return;
	}
    UpdateData(true);
	Teacherdata t(&db);
	if(flag==0)
     str1=m_ctrl.GetItemText(nitem,0);
	else
	str1=m_ctrl.GetItemText(nitem,2);
    str3=str1;
    a=select;
		UpdateData(false);
        db.Close();	
    	m_ctrl.Update(nitem);
	    cn.DoModal();

}

void CShowDlg::OnAddButton() 
{
	// TODO: Add your control notification handler code here
	CNewdataDlg cn;
	cn.DoModal();
}

void CShowDlg::OnUserButton() 
{
	// TODO: Add your control notification handler code here
	CAlteruserDlg s;
	s.DoModal();
}

⌨️ 快捷键说明

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