www.pudn.com > StuMis.rar > JWXJchange.cpp
// JWXJchange.cpp : implementation file
//
#include "stdafx.h"
#include "StuMis.h"
#include "JWXJchange.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CStuMisApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CJWXJchange property page
IMPLEMENT_DYNCREATE(CJWXJchange, CPropertyPage)
CJWXJchange::CJWXJchange() : CPropertyPage(CJWXJchange::IDD)
{
//{{AFX_DATA_INIT(CJWXJchange)
m_editlong = _T("");
m_combo = -1;
m_sid = _T("");
m_datetime = COleDateTime::GetCurrentTime();
//}}AFX_DATA_INIT
}
CJWXJchange::~CJWXJchange()
{
}
void CJWXJchange::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CJWXJchange)
DDX_Control(pDX, IDC_XJCGLIST, m_xjlist);
DDX_Text(pDX, IDC_EDITLONG, m_editlong);
DDX_CBIndex(pDX, IDC_COMBO1, m_combo);
DDX_Text(pDX, IDC_SID, m_sid);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_datetime);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CJWXJchange, CPropertyPage)
//{{AFX_MSG_MAP(CJWXJchange)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_NOTIFY(NM_CLICK, IDC_XJCGLIST, OnClickXjcglist)
ON_BN_CLICKED(IDC_AddItem, OnAddItem)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CJWXJchange message handlers
void CJWXJchange::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// AfxMessageBox("www");
// Do not call CPropertyPage::OnPaint() for painting messages
}
BOOL CJWXJchange::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
// m_xjlist.SetExtendedStyle(LVS_EX_GRIDLINES||LVS_EX_FULLROWSELECT );
m_xjlist.SetExtendedStyle(LVS_EX_FULLROWSELECT);
// 设置List的列
int nWidth=90;
m_xjlist.InsertColumn(0, "记录编号", LVCFMT_LEFT, nWidth-20);
m_xjlist.InsertColumn(1, "学号", LVCFMT_LEFT, nWidth-20);
m_xjlist.InsertColumn(2, "记录时间", LVCFMT_LEFT, nWidth+20);
m_xjlist.InsertColumn(3, "变更情况", LVCFMT_LEFT, nWidth+20);
m_xjlist.InsertColumn(4, "详细描述", LVCFMT_LEFT, nWidth);
// CErrandRS rs(&db); // 构造出差记录表
// UpdateList(rs); // 更新List
return TRUE; // return TRUE unless you set the focus t
// return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CJWXJchange::UpdateList()
{
int i=0,id,stat;
CString strID,strSTime,strETime,strSQL;
COleDateTime t_time;
strSQL.Format("SELECT * FROM CHANGE WHERE STUDENT='%s'",m_sid);
theApp.m_pRs.Open(_T(strSQL),CADORecordset::openUnknown); // 打开出差记录表
m_xjlist.DeleteAllItems(); // 清除列表框内容
while(!theApp.m_pRs.IsEOF()) // 对数据表中所有记录进行处理
{
m_xjlist.InsertItem(i, "");// 添加新Item
theApp.m_pRs.GetFieldValue("ID",id);
strID.Format("%d",id); // 转换为字符串
m_xjlist.SetItemText(i, 0, strID);
theApp.m_pRs.GetFieldValue("STUDENT",strID);
m_xjlist.SetItemText(i, 1, strID);
theApp.m_pRs.GetFieldValue("REC_TIME",t_time);
m_xjlist.SetItemText(i, 2, t_time.Format("%y-%m-%d"));
theApp.m_pRs.GetFieldValue("CHANGE",stat);
switch(stat)
{
case 0:strSTime.Format("转系");break;
case 1:strSTime.Format("休学");break;
case 2:strSTime.Format("复学");break;
case 3:strSTime.Format("退学");break;
case 4:strSTime.Format("毕业");break;
}
m_xjlist.SetItemText(i, 3, strSTime);
theApp.m_pRs.GetFieldValue("DESCRIPTION",strETime);
m_xjlist.SetItemText(i, 4,strETime);
theApp.m_pRs.MoveNext(); // 跳到下一条记录
i++;
}
theApp.m_pRs.Close(); // 关闭出差记录表
}
void CJWXJchange::OnDelete()
{
CString strSQL;
int nItem;
// 得到第一个被选择Item的位置
POSITION pos = m_xjlist.GetFirstSelectedItemPosition();
if(pos==NULL)
{
AfxMessageBox("没有选择记录!");
return;
}
while(pos) // 遍历所有被选Item
{
nItem=m_xjlist.GetNextSelectedItem(pos); // 得到Item Index
// 构造SQL语句
strSQL="delete from CHANGE where ID=" + m_xjlist.GetItemText(nItem, 0);
theApp.db.Execute(strSQL); // 执行
}
// COvertimeRS rs(&db); // 构造加班记录表
UpdateList(); // 更新列表框
}
void CJWXJchange::OnClickXjcglist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CJWXJchange::OnAddItem()
{
// TODO: Add your control notification handler code here
// CString addstr,strTime;
// strTime.Format("%s",m_birthday.Format("%Y-%m-%d"));
UpdateData();
// addstr.Format("insert into STUDENT (ID,NAME,SEX,CLASS,DEPARTMENT,NATIVE_PLACE,BIRTHDAY) values ('%s','%s',%d,'%s','%s','%s',%s)",m_stuid,m_name,m_sex,m_class,m_department,m_nativeplace,strTime);
// addstr.Format("insert into STUDENT (ID,NAME,SEX,NATIVE_PLACE) values ('%s','%s',%d,'%s')",m_stuid,m_name,m_sex,m_nativeplace);
// app->db.Execute(addstr);
// m_pRecordset->AddNew();
theApp.m_pRs.Open(_T("SELECT * FROM CHANGE"),CADORecordset::openUnknown);
theApp.m_pRs.AddNew();
theApp.m_pRs.SetFieldValue("STUDENT",m_sid);
theApp.m_pRs.SetFieldValue("CHANGE",m_combo);
// theApp.m_pRs.SetFieldValue("SEX",m_sex);
// theApp.m_pRs.SetFieldValue("CLASS",m_combo);
theApp.m_pRs.SetFieldValue("REC_TIME",m_datetime);
theApp.m_pRs.SetFieldValue("DESCRIPTION",m_editlong);
// theApp.m_pRs.SetFieldValue("BIRTHDAY",m_birthday);
theApp.m_pRs.Update();
theApp.m_pRs.Close();
UpdateList();
}