?? custom.cpp
字號:
// 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()
{
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 + -