📄 showdlg.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 + -