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

📄 custom.cpp

📁 偶作的毕业设计程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// Custom.cpp : implementation file
//

#include "stdafx.h"
#include "SoftDocSystem.h"
#include "Custom.h"
#include "ChangeKey.h"
#include "MemberIn.h"
#include "LogMngr.h"
#include "StateReport.h"
#include "ChangeApply.h"
#include "ChangeUsrInfo.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCustom dialog
extern CString PublicUserName;

CCustom::CCustom(CWnd* pParent /*=NULL*/)
: CDialog(CCustom::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCustom)
	m_treatType = -1;
	m_Content = _T("");
	m_ReplyStr = _T("");
	//}}AFX_DATA_INIT
}


void CCustom::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCustom)
	DDX_Control(pDX, IDC_LIST1, m_List);
	DDX_Radio(pDX, IDC_RADIO1, m_treatType);
	DDX_Text(pDX, IDC_EDIT1, m_Content);
	DDX_Text(pDX, IDC_EDIT2, m_ReplyStr);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCustom, CDialog)
//{{AFX_MSG_MAP(CCustom)
ON_BN_CLICKED(IDC_BUTTON5, OnReply)
ON_BN_CLICKED(IDC_BUTTON4, OnReport)
ON_BN_CLICKED(IDC_BUTTON2, OnChangeInfo)
ON_BN_CLICKED(IDC_BUTTON1, OnKeyCh)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)
	ON_COMMAND(IDR_USERCOPY, OnUsercopy)
	ON_COMMAND(IDR_USERDELETE, OnUserdelete)
	//ON_COMMAND(IDR_USERMODIFY, OnUsermodify)
	ON_COMMAND(IDR_USERUNDO, OnUserundo)
	ON_BN_CLICKED(IDC_RADIO1, OnStateReport)
	ON_BN_CLICKED(IDC_RADIO2, OnApplyRecord)
	ON_BN_CLICKED(IDC_RADIO3, OnHaveSeenDoc)
	ON_BN_CLICKED(IDC_RADIO4, OnNotReturn)
	ON_BN_CLICKED(IDC_RADIO5, OnChatRecord)
	ON_BN_CLICKED(IDC_RADIO6, OnPrivateInfo)
	ON_BN_CLICKED(IDC_BUTTON3, OnPrint)
	ON_BN_CLICKED(IDC_BUTTON6, OnViewNotify)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCustom message handlers

int CCustom::DoModal() 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CDialog::DoModal();
}

BOOL CCustom::OnInitDialog() 
{
	CDialog::OnInitDialog();
	//改变字体
	LOGFONT LogFont;
	(CFont*)CWnd::GetFont()->GetLogFont(&LogFont);
	LogFont.lfItalic=true;
	LogFont.lfHeight=LogFont.lfHeight*1.8;
	strcpy(LogFont.lfFaceName,"楷体_GB2312");
	m_font.CreateFontIndirect(&LogFont);
	GetDlgItem(IDC_STATICUSER)->SetFont(&m_font,true);
	//连接数据原
 CSoftDocSystemApp* myApp=(CSoftDocSystemApp*)AfxGetApp();
	 CString source_;
	 source_.Format ("driver={SQL Server};server=%s;database=SoftDocument",myApp->ConnectServer);
	_bstr_t source=source_;
	_bstr_t pwd=myApp->ConnectPwd;
	_bstr_t user=myApp->ConnectUser;
	
	HRESULT hr;
	try{
		hr = m_DBCnt.CreateInstance(_uuidof(Connection));
		if(SUCCEEDED(hr))
			hr = m_DBCnt->Open(source, user, pwd, 16);
		if(SUCCEEDED(hr))
		{m_fConnected = TRUE;
		
		}
		else 
			m_fConnected = FALSE;
	}
	catch (_com_error &e){
		MessageBox(e.ErrorMessage()); 
		m_fConnected = FALSE;
	}
	if(!m_fConnected) MessageBox("ADO数据源初始化失败!");
	else  m_strSource = (char * )source;
	//Initiate();
if(m_Log.Setup (m_DBCnt))
	m_Log.Addlog (PublicUserName,"管理用户信息","未知");//操作日志
	GetDlgItem(IDC_STATICUSER)->SetWindowText(PublicUserName);
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void CCustom::OnCancel() 
{
	// TODO: Add extra cleanup here
	m_DBCnt->Close();
	CDialog::OnCancel();
}
/*void CCustom::Initiate()
{
GetDlgItem(IDC_EDIT2)->EnableWindow(true);
GetDlgItem(IDC_LIST1)->EnableWindow(false);
GetDlgItem(IDC_BUTTON1)->EnableWindow(true);
GetDlgItem(IDC_BUTTON4)->EnableWindow(false);
}
*/
void CCustom::OnReply() 
{
	// TODO: Add your control notification handler code here
		if(m_DelSum>0)DeleteRemain();
	m_PreType=10;
UpdateData();
if(m_ReplyStr.IsEmpty()){AfxMessageBox("你没有输入回复的信息,请确认输入!");return;}
CString MsgNumber,MsgText,MsgFrom,MsgTo,MsgPoint,MsgType,MsgDate;
int i=m_List.GetSelectionMark();
	CTime tm=CTime::GetCurrentTime ();
	MsgDate.Format("%d-%d-%d",tm.GetYear (),tm.GetMonth (),tm.GetDay());
MsgNumber.Format("MSG%d%02d%02d%02d%02d%02d",tm.GetYear (),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute(),tm.GetSecond ());
	MsgText=m_ReplyStr;
	MsgFrom=PublicUserName;
	MsgTo="管理员";
	if(m_treatType==0||m_treatType==1)MsgPoint=m_List.GetItemText(i,m_Indexpoint);
	else
	MsgPoint="通知";
	MsgType="回复管理员";
CString sql_;
sql_.Format ("INSERT INTO MessageMap (消息号,消息类别,内容,发出用户,征对用户,征对状态,发出日期) VALUES('%s','%s','%s','%s','%s','%s','%s')",MsgNumber,MsgType,MsgText,MsgFrom,MsgTo,MsgPoint,MsgDate);
_bstr_t sql=sql_;
try{
	m_DBCnt->Execute (sql,NULL,adCmdText);}
catch (_com_error &e){
	   AfxMessageBox(e.ErrorMessage()); return;}
CString str2;
str2.Format ("用户&s,你的信息已成功输入!",PublicUserName);
AfxMessageBox(str2);
m_ReplyStr=_T("");
UpdateData(false);	
}

void CCustom::OnReport() 
{
	// TODO: Add your control notification handler code here
	CStateReport dlg;
	this->ShowWindow(SW_HIDE);
	dlg.DoModal ();
	this->ShowWindow (SW_SHOW);	
}

void CCustom::OnChangeInfo() 
{
	// TODO: Add your control notification handler code here
	CChangeUsrInfo dlg;
	this->ShowWindow(SW_HIDE);
	dlg.DoModal ();
	this->ShowWindow (SW_SHOW);	
}

void CCustom::OnKeyCh() 
{
	// TODO: Add your control notification handler code here
	CChangeKey dlg;
	this->ShowWindow(SW_HIDE);
	dlg.DoModal ();
	this->ShowWindow (SW_SHOW);	
}


void CCustom::InitList()
{
	UpdateData();
	m_List.DeleteAllItems ();//状态报告
	for (int i=m_ListNumber-1;i>-1;i--)
		m_List.DeleteColumn(i);
	switch(m_treatType)
	{	
	case 3://未还文档
		{
			m_List.InsertColumn (0,"软件名");
			m_List.InsertColumn (1,"类型");
			m_List.InsertColumn (2,"格式");	
			m_List.InsertColumn (3,"借者");
			m_List.InsertColumn (4,"软件编号");
        	m_List.InsertColumn (5,"借期");

			m_ListNumber=6;
			RECT rect;
			m_List.GetWindowRect(& rect);
			int wid=(rect.right -rect.left )/5;
			m_List.SetColumnWidth(0,wid);
			m_List.SetColumnWidth(1,wid);
			m_List.SetColumnWidth(2,wid);
			m_List.SetColumnWidth(3,wid);
			m_List.SetColumnWidth(4,wid);
			m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
			break;}		
	case 1://申报记录管理
		{
			m_List.InsertColumn (0,"用户名");
			m_List.InsertColumn (1,"申请类别");
			m_List.InsertColumn (2,"软件名称");	
			m_List.InsertColumn (3,"格式");
			m_List.InsertColumn (4,"软件编号");
			m_List.InsertColumn (5,"申请日期");
			m_List.InsertColumn (6,"申请号");
			m_ListNumber=7;
			RECT rect;
			m_List.GetWindowRect(& rect);
			int wid=(rect.right -rect.left )/5;
			m_List.SetColumnWidth(0,wid);
			m_List.SetColumnWidth(1,wid);
			m_List.SetColumnWidth(2,wid);
			m_List.SetColumnWidth(3,wid);
			m_List.SetColumnWidth(4,wid);
			m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
			m_IndexTo=0;
			m_Indexpoint=6;
			break;	}
	case 4://我的交易记录
		{
			m_List.InsertColumn (0,"交易号");
			m_List.InsertColumn (1,"用户名");
			m_List.InsertColumn (2,"软件名称");
			m_List.InsertColumn (3,"格式");
			m_List.InsertColumn (4,"交易类别");
			m_List.InsertColumn (5,"软件编号");
			m_List.InsertColumn (6,"交易时间");
			m_ListNumber=7;
			RECT rect;
			m_List.GetWindowRect(& rect);
			int wid=(rect.right -rect.left )/5;
			m_List.SetColumnWidth(0,wid);
			m_List.SetColumnWidth(1,wid);
			m_List.SetColumnWidth(2,wid);
			m_List.SetColumnWidth(3,wid);
			m_List.SetColumnWidth(4,wid);
			m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
			break;	}
	case 2://借过的文档
		{
			m_List.InsertColumn (0,"软件名");
			m_List.InsertColumn (1,"类型");
			m_List.InsertColumn (2,"格式");	
			m_List.InsertColumn (3,"借者");
			m_List.InsertColumn (4,"软件编号");
			m_List.InsertColumn (5,"借出日期");
			m_ListNumber=6;
			RECT rect;
			m_List.GetWindowRect(& rect);
			int wid=(rect.right -rect.left )/5;
			m_List.SetColumnWidth(0,wid);
			m_List.SetColumnWidth(1,wid);
			m_List.SetColumnWidth(2,wid);
			m_List.SetColumnWidth(3,wid);
			m_List.SetColumnWidth(4,wid);
			m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
			break;}	
/*	case 4://个人资料
		{
			m_List.InsertColumn (0,"用户名");
			m_List.InsertColumn (1,"真实姓名");
			m_List.InsertColumn (2,"部门");	
			m_List.InsertColumn (3,"联系电话");
			m_List.InsertColumn (4,"注册日期");
			m_List.InsertColumn (5,"详细信息");
			m_ListNumber=6;
			RECT rect;
			m_List.GetWindowRect(& rect);
			int wid=(rect.right -rect.left )/5;
			m_List.SetColumnWidth(0,wid);
			m_List.SetColumnWidth(1,wid);
			m_List.SetColumnWidth(2,wid);
			m_List.SetColumnWidth(3,wid);
			m_List.SetColumnWidth(4,wid);
			m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
			m_IndexTo=0;
			m_Indexpoint=0;
			break;	}*/
	case 0://状态报告管理}
		{
			m_List.InsertColumn (0,"用户名");
			m_List.InsertColumn (1,"软件名称");
			m_List.InsertColumn (2,"软件作者");	
			m_List.InsertColumn (3,"目前状态");
			m_List.InsertColumn (4,"状态描述");
			m_List.InsertColumn (5,"文档形式");
			m_List.InsertColumn (6,"汇报时间");
			m_List.InsertColumn (7,"状态编号");
			m_ListNumber=8;
			RECT rect;
			m_List.GetWindowRect(& rect);
			int wid=(rect.right -rect.left );
			m_List.SetColumnWidth(0,wid/8);
			m_List.SetColumnWidth(1,wid/5);
			m_List.SetColumnWidth(2,wid/10);
			m_List.SetColumnWidth(3,wid/5);
			m_List.SetColumnWidth(4,wid/4);
			m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
			m_IndexTo=0;
			m_Indexpoint=7;
			break;	}
		}
}

/*
void CCustom::OnPlayRecord() 
{
// TODO: Add your control notification handler code here
UpdateData();
//初始化列表筐

  m_List.SetRedraw (false);
  //初始化数据原
  
	CString mysql;
	mysql.Format("SELECT * FROM ChatInfo WHERE 用户名 = '%s'",PublicUserName);
	_bstr_t sql=mysql;
	_bstr_t source=m_strSource;
	_RecordsetPtr Myset;
	Myset.CreateInstance (__uuidof(Recordset));
	try{
	Myset->Open (sql,source,adOpenDynamic,adLockOptimistic,adCmdText);}
	catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage ());
	}
	CString str1;
	_variant_t Holder;
	i=0;
	while(!Myset->adoEOF ){
	Holder=Myset->GetCollect ("交易编号");
	if(Holder.vt!=VT_NULL)
	m_List.InsertItem (i,(char*)(_bstr_t)Holder);
	Holder=Myset->GetCollect ("用户名");
	if(Holder.vt!=VT_NULL)
	m_List.SetItemText (i,1,(char*)(_bstr_t)Holder);
	else
	m_List.SetItemText (i,1,"未知用户名");
	Holder=Myset->GetCollect ("软件名称");
	if(Holder.vt!=VT_NULL)
	m_List.SetItemText (i,2,(char*)(_bstr_t)Holder);
	else
	m_List.SetItemText (i,2,"未知软件");
	Holder=Myset->GetCollect ("格式");
	if(Holder.vt!=VT_NULL)
	m_List.SetItemText (i,3,(char*)(_bstr_t)Holder);
	else
	m_List.SetItemText (i,3,"未知格式");
	Holder=Myset->GetCollect ("交易类别");
	if(Holder.vt!=VT_NULL)
	m_List.SetItemText (i,4,(char*)(_bstr_t)Holder);
	else
	m_List.SetItemText (i,4,"未知类别");
	Holder=Myset->GetCollect ("软件编号");
	if(Holder.vt!=VT_NULL)
	m_List.SetItemText (i,5,(char*)(_bstr_t)Holder);
	else
	m_List.SetItemText (i,5,"未知编号");
	Holder=Myset->GetCollect ("交易时间");
	if(Holder.vt!=VT_NULL)
	m_List.SetItemText (i,6,(char*)(_bstr_t)Holder);
	else
	m_List.SetItemText (i,6,"未知时间");
	i+=1;
	Myset->MoveNext ();
	}
	Myset->Close();
	m_List.SetRedraw (true);	
	}
	*/



void CCustom::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	
	POSITION pos=m_List.GetFirstSelectedItemPosition();//是否选中记录
	if(pos==NULL){GetDlgItem(IDC_BUTTON5)->EnableWindow(false);
	return;}
	// 显示改状态的相关对话
	if(m_treatType==2 ||m_treatType==3||m_treatType==4||m_treatType==5)
return;
	m_Content=_T("");
    GetDlgItem(IDC_BUTTON5)->EnableWindow(true);
	int i=m_List.GetSelectionMark();
	CString SelectMSG=m_List.GetItemText(i,m_Indexpoint);
	SelectMSG.TrimRight (" ");
	CString mysql,mystr1,mystr2,mystr3,mystr4,laststr;
    mysql.Format("SELECT * FROM MessageMap WHERE 征对状态 = '%s' ORDER BY 发出日期",SelectMSG);
	_bstr_t sql=mysql;
	_bstr_t source=m_strSource;
	_RecordsetPtr Myset;
	Myset.CreateInstance (__uuidof(Recordset));
	try{
		Myset->Open (sql,source,adOpenDynamic,adLockOptimistic,adCmdText);}
	catch(_com_error &e){
		AfxMessageBox(e.ErrorMessage ());return;
	}
	_variant_t Holder;
	while(!Myset->adoEOF ){
		Holder=Myset->GetCollect ("发出用户");
		if(Holder.vt!=VT_NULL)
		{mystr1=(char*)(_bstr_t)Holder;
		mystr1.TrimRight (" ");}
		else
			mystr1="未知姓名";
		Holder=Myset->GetCollect ("征对用户");
		if(Holder.vt!=VT_NULL)
		{mystr2=(char*)(_bstr_t)Holder;
		mystr2.TrimRight (" ");}
		else
			mystr2="未知姓名";
		
		Holder=Myset->GetCollect ("内容");
		if(Holder.vt!=VT_NULL)
		{mystr3=(char*)(_bstr_t)Holder;
		mystr3.TrimRight (" ");}
		else
			mystr3="未知姓名";

⌨️ 快捷键说明

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