CorpSms/FCalendar.cpp
2025-02-27 16:58:16 +08:00

638 lines
19 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// FCalendar.cpp : implementation file
//
#include "stdafx.h"
#include "corpsms.h"
#include "FCalendar.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFCalendar dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_Calendar_Add.h"
CFCalendar::CFCalendar(CWnd* pParent /*=NULL*/)
: CDialog(CFCalendar::IDD, pParent)
{
//{{AFX_DATA_INIT(CFCalendar)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_bRefresh2= false;
}
void CFCalendar::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFCalendar)
DDX_Control(pDX, IDC_CALENDAR_S2, m_S_S2);
DDX_Control(pDX, IDC_CALENDAR_S1, m_B_S1);
DDX_Control(pDX, IDC_CALENDAR_LIST, m_wndList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFCalendar, CDialog)
//{{AFX_MSG_MAP(CFCalendar)
ON_WM_SIZE()
ON_NOTIFY(NM_RCLICK, IDC_CALENDAR_LIST, OnRclickCalendarList)
ON_NOTIFY(NM_DBLCLK, IDC_CALENDAR_LIST, OnDblclkCalendarList)
ON_NOTIFY(LVN_KEYDOWN, IDC_CALENDAR_LIST, OnKeydownCalendarList)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_CALENDAR_LIST, OnItemchangedCalendarList)
//}}AFX_MSG_MAP
ON_COMMAND( MENU_CALENDAR_ADD , On_R_Add )
ON_COMMAND( MENU_CALENDAR_MODIFY , On_R_Modify )
ON_COMMAND( MENU_CALENDAR_DELETE , On_R_Delete )
ON_COMMAND( MENU_CALENDAR_REFRESH, On_R_Refresh )
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFCalendar message handlers
BOOL CFCalendar::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CFCalendar::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CFCalendar::RefreshInfo()
{
if ( m_pMainFrame->GetUserPurview( PURVIEW_CALENDAR , false ) )
{
m_strMobile = m_pMainFrame->m_strMobile;
#ifndef MOBSET_CARD_VER
if ( m_strMobile.GetLength()<=0 )
{
CString strSelect;
strSelect.Format( _T("select * from Users where userid=%d"),m_pMainFrame->m_lUserID);
if ( m_AdoRS.Open(strSelect) && m_AdoRS.GetRecordCount())
{
m_AdoRS.MoveFirst();
m_AdoRS.GetCollect(_T("Mobile"),m_strMobile);
m_AdoRS.Close();
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
CString str;
str.Format( _T("<!!ע<><D7A2>:<3A><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%s<><73><EFBFBD><EFBFBD><EFBFBD>˶ԣ<CBB6><D4A3><EFBFBD>Ҫ<EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>Ա!!>"),m_strMobile);
m_S_S2.SetWindowText(str);
#else
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
CString str;
str.Format( _T("<!!ע<><D7A2>:<3A><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%s<><73><EFBFBD><EFBFBD><EFBFBD>˶ԣ<CBB6><D4A3><EFBFBD>Ҫ<EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ!!>"),m_strMobile);
m_S_S2.SetWindowText(str);
#endif
REQ_Calendar_See2 * pSee = new REQ_Calendar_See2;
pSee->lCorpID = m_pMainFrame->m_lCorpID;
pSee->lUserID = m_pMainFrame->m_lUserID;
m_pMainFrame->SendFrame( SMSFUNC_CALENDAR_SEE2 , (BYTE*)pSee , sizeof( REQ_Calendar_See2 ) ); //<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
}
return true;
}
BOOL CFCalendar::OnInitDialog()
{
CDialog::OnInitDialog();
//ȡ<>ù<EFBFBD><C3B9>ò<EFBFBD><C3B2><EFBFBD>
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
m_AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection );
//<2F><>ʼ<EFBFBD><CABC>List
m_Image.Create(16,16,ILC_COLOR32|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CALENDAR) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_wndList.SubClassWindow2();
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><> <20><>,300; <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,250;"));
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; ״̬,60; ֪ͨ<CDA8>ֻ<EFBFBD>,100; <20><> <20><>,300; <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,250;"));
m_wndList.SetGridLines(true);
//m_wndList.SetCheckboxes(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
//m_wndList.SetBkColor( RGB(237,191,175) );
//m_wndList.SetTextBkColor( RGB(237,191,175) );
m_bInit = true;
#ifdef SMSCENTER_NX
GetDlgItem(IDC_CALENDAR_S1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_CALENDAR_S2)->ShowWindow(SW_HIDE);
#endif
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CFCalendar::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
m_wndList.MoveWindow( 0 , 0 , cx,cy-50);
CRect rect,rect2;
m_B_S1.GetWindowRect(&rect);
rect2.top = cy-40;
rect2.bottom = rect2.top+rect.Height();
rect2.left = (cx-rect.Width())/2;
rect2.right= rect2.left+rect.Width();
m_B_S1.MoveWindow(&rect2);
m_S_S2.GetWindowRect(&rect);
rect2.top = cy-20;
rect2.bottom = rect2.top+rect.Height();
rect2.left = (cx-rect.Width())/2;
rect2.right= rect2.left+rect.Width();
m_S_S2.MoveWindow(&rect2);
}
}
BOOL CFCalendar::ProcessSocket(Socket_Head *pHead)
{
//ɾ<><C9BE><EFBFBD>û<EFBFBD>
if (pHead->lFuncType == SMSFUNC_CALENDAR_DEL)
{
ANS_Calendar_Del * pDel = (ANS_Calendar_Del *)pHead->pFrame;
ANS_Calendar_DelData * pDelData = (ANS_Calendar_DelData *)(pHead->pFrame+sizeof(ANS_Calendar_Del));
m_wndList.ShowWindow( SW_HIDE ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
{
long lCalendarID = m_wndList.GetItemData(pDelData[i].lItem);
if ( pDelData[i].lCalendarID && lCalendarID == pDelData[i].lCalendarID) //ɾ<><C9BE><EFBFBD>ɹ<EFBFBD>
{
m_wndList.DeleteItem(pDelData[i].lItem); //<2F><>ListCtrl<72><6C>ɾ<EFBFBD><C9BE>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>ɾ<EFBFBD><C9BE>
TCHAR szSelect[128]={0};
_stprintf( szSelect , _T("delete from calendar where CalendarID=%d ") ,pDelData[i].lCalendarID );
m_AdoRS.Open( szSelect );
m_AdoRS.Close();
}
}
m_wndList.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
return true;
}
return false;
}
void CFCalendar::OnRclickCalendarList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CFCalendar::OnDblclkCalendarList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_R_Modify();
}
void CFCalendar::OnKeydownCalendarList(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
*pResult = 0;
if ( pLVKeyDow->wVKey == VK_DELETE )
{
On_R_Delete();
}
if ( pLVKeyDow->wVKey == VK_INSERT)
{
On_R_Add();
}
if ( pLVKeyDow->wVKey == VK_SPACE)
{
On_R_Modify();
}
if ( pLVKeyDow->wVKey == 'R' || pLVKeyDow->wVKey == 'r')
{
On_R_Refresh();
}
}
void CFCalendar::OnItemchangedCalendarList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
*pResult = 0;
if ( m_wndList.GetSelectedCount() > 1 ) //<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return ;
if ( m_bRefresh2 )
return ;
//ԭ<>ǽ<EFBFBD><C7BD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ( pNMListView->uNewState==8192 && pNMListView->uOldState== 4096 )
{
REQ_Calendar_Modify * pModify = new REQ_Calendar_Modify;
memset(pModify,0,sizeof(REQ_Calendar_Modify));
pModify->bOnlyStatus = true; //<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ֻ<EFBFBD><D6BB>״̬
pModify->lItemID = pNMListView->iItem;
pModify->lCalendarID = m_wndList.GetItemData(pNMListView->iItem);
pModify->lCorpID = m_pMainFrame->m_lCorpID;
pModify->lUserID = m_pMainFrame->m_lUserID;
pModify->lStatus = 1; //<2F><><EFBFBD><EFBFBD>
m_pMainFrame->SendFrame( SMSFUNC_CALENDAR_MODIFY , (BYTE*)pModify , sizeof( REQ_Calendar_Modify ) ); //<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
}
//ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD>
if ( pNMListView->uNewState==4096 && pNMListView->uOldState== 8192 )
{
REQ_Calendar_Modify * pModify = new REQ_Calendar_Modify;
memset(pModify,0,sizeof(REQ_Calendar_Modify));
pModify->bOnlyStatus = true; //<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ֻ<EFBFBD><D6BB>״̬
pModify->lItemID = pNMListView->iItem;
pModify->lCalendarID = m_wndList.GetItemData(pNMListView->iItem);
pModify->lCorpID = m_pMainFrame->m_lCorpID;
pModify->lUserID = m_pMainFrame->m_lUserID;
pModify->lStatus = 0; //<2F><><EFBFBD><EFBFBD>
m_pMainFrame->SendFrame( SMSFUNC_CALENDAR_MODIFY , (BYTE*)pModify , sizeof( REQ_Calendar_Modify ) ); //<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
}
}
void CFCalendar::ShowRMenu()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_CALENDAR,false)) //û<>в鿴Ȩ<E9BFB4><C8A8>
return ;
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
//<2F><><EFBFBD><EFBFBD>
menu.AppendMenu(MF_STRING , MENU_CALENDAR_ADD, _T(" <20><><EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD> ") );
menu.AppendMenu(MF_SEPARATOR );
//<2F>޸<EFBFBD>
if ( lItem >=0 && !bLock)
{
menu.AppendMenu(MF_STRING , MENU_CALENDAR_MODIFY, _T(" <20><> <20><> ") );
menu.AppendMenu(MF_STRING , MENU_CALENDAR_DELETE, _T(" ɾ <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CALENDAR_MODIFY, _T(" <20><> <20><> ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CALENDAR_DELETE, _T(" ɾ <20><> ") );
}
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_CALENDAR_REFRESH, _T(" ˢ <20><> ") );
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
void CFCalendar::On_R_Add()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_CALENDAR,false)) //û<>в鿴Ȩ<E9BFB4><C8A8>
return ;
ANS_Calendar_Data2 data={0};
data.lType = 3; //Ĭ<><C4AC>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
data.lStatus = 1; //Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DLG_Calendar_Add dlg(this);
BOOL bAllowSetMobile = m_pMainFrame->m_Setup.bSDK & SDK_ALLOWSETMOBILE ? true:false;
dlg.SetParam(m_strMobile,data,bAllowSetMobile);
if ( dlg.DoModal()==IDOK )
{
REQ_Calendar_Add2 * pAdd = new REQ_Calendar_Add2;
memset(pAdd,0,sizeof(REQ_Calendar_Add2));
pAdd->lCorpID = m_pMainFrame->m_lCorpID;
pAdd->lUserID = m_pMainFrame->m_lUserID;
pAdd->lStatus = dlg.m_bEnable;
pAdd->lType = dlg.m_lType;
pAdd->tAlarm = dlg.m_Data.tAlarm;
_tcscpy(pAdd->szMsg , dlg.m_strMsg );
_tcscpy(pAdd->szAddMsg , dlg.m_Data.szAddMsg );
_tcscpy(pAdd->szAddMobile, dlg.m_Data.szAddMobile );
m_pMainFrame->SendFrame( SMSFUNC_CALENDAR_ADD2 , (BYTE*)pAdd , sizeof( REQ_Calendar_Add2 ) ); //<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
}
}
void CFCalendar::On_R_Modify()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_CALENDAR,false)) //û<>в鿴Ȩ<E9BFB4><C8A8>
return ;
long lItem = this->GetCurrentSelected();
if ( lItem < 0 )
return ;
ANS_Calendar_Data2 data=GetCalendarData(lItem);
DLG_Calendar_Add dlg(this);
BOOL bAllowSetMobile = m_pMainFrame->m_Setup.bSDK & SDK_ALLOWSETMOBILE ? true:false;
dlg.SetParam(m_strMobile,data,bAllowSetMobile);
if ( dlg.DoModal()==IDOK )
{
REQ_Calendar_Modify2 * pModify = new REQ_Calendar_Modify2;
memset(pModify,0,sizeof(REQ_Calendar_Modify));
pModify->bOnlyStatus = false; //<2F>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>״̬
pModify->lItemID = lItem;
pModify->lCalendarID= data.lCalendarID;
pModify->lCorpID = m_pMainFrame->m_lCorpID;
pModify->lUserID = m_pMainFrame->m_lUserID;
pModify->lStatus = dlg.m_bEnable;
pModify->lType = dlg.m_lType;
pModify->tAlarm = dlg.m_Data.tAlarm;
_tcscpy(pModify->szMsg , dlg.m_strMsg );
_tcscpy(pModify->szAddMsg, dlg.m_Data.szAddMsg );
_tcscpy(pModify->szAddMobile, dlg.m_Data.szAddMobile );
m_pMainFrame->SendFrame( SMSFUNC_CALENDAR_MODIFY2 , (BYTE*)pModify , sizeof( REQ_Calendar_Modify2 ) ); //<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
}
}
void CFCalendar::On_R_Delete()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_CALENDAR,false)) //û<>в鿴Ȩ<E9BFB4><C8A8>
return ;
long lCount = m_wndList.GetSelectedCount();
long lSize = sizeof(REQ_Calendar_Del)+sizeof(ANS_Calendar_DelData)*lCount;
BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize);
REQ_Calendar_Del * pDel = (REQ_Calendar_Del *)pDelSend; //ͷ
ANS_Calendar_DelData * pDelData = (ANS_Calendar_DelData *)(pDelSend+sizeof(REQ_Calendar_Del));
pDel->lCount = lCount;
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
while(pos)
{
pDelData->lItem = m_wndList.GetNextSelectedItem(pos);
pDelData->lCalendarID= m_wndList.GetItemData(pDelData->lItem);
pDelData ++;
}
m_pMainFrame->SendFrame( SMSFUNC_CALENDAR_DEL , pDelSend , lSize );
}
void CFCalendar::On_R_Refresh()
{
RefreshInfo();
}
long CFCalendar::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
CString CFCalendar::GetAlarmText(long lType, SYSTEMTIME t,CString strAdd)
{
CString str;
CString str2;
int i;
switch(lType)
{
case 0: //<2F><>
str.Format( _T("ÿ<EFBFBD><EFBFBD>%d<><64>%d<><64> %02d:%02d:%02d <20><><EFBFBD><EFBFBD>"),t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond );
break;
case 1: //<2F><>
str.Format( _T("ÿ<EFBFBD><EFBFBD>%d<><64> %02d:%02d:%02d <20><><EFBFBD><EFBFBD>"),t.wDay,t.wHour,t.wMinute,t.wSecond );
break;
case 2: //<2F><>
str2 = _T("ÿ<EFBFBD><EFBFBD>");
for ( i=0 ; i< strAdd.GetLength() ; i++ )
{
str2+= strAdd.GetAt(i);
if ( i<strAdd.GetLength()-1)
str2+=_T("<EFBFBD><EFBFBD>");
}
str.Format( _T("%s %02d:%02d:%02d <20><><EFBFBD><EFBFBD>"),str2,t.wHour,t.wMinute,t.wSecond);
break;
case 3: //<2F><>
str.Format( _T("ÿ<EFBFBD><EFBFBD>%02d:%02d:%02d <20><><EFBFBD><EFBFBD>"),t.wHour,t.wMinute,t.wSecond);
break;
case 4: //һ<><D2BB>
str.Format( _T("%d<><64>%d<><64>%d<><64> %02d:%02d:%02d <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>"),t.wYear,t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond );
break;
}
return str;
}
ANS_Calendar_Data2 CFCalendar::GetCalendarData(long lItem)
{
ANS_Calendar_Data2 data= {0};
long lID = m_wndList.GetItemData(lItem);
CString strSelect;
strSelect.Format( _T("select * from calendar where CalendarID=%d") , lID );
if ( m_AdoRS.Open(strSelect) && m_AdoRS.GetRecordCount() )
{
m_AdoRS.MoveFirst();
data.lCalendarID = lID;
m_AdoRS.GetCollect(_T("CalendarID") , data.lCalendarID );
m_AdoRS.GetCollect(_T("CorpID") , data.lCorpID );
m_AdoRS.GetCollect(_T("UserID") , data.lUserID );
m_AdoRS.GetCollect(_T("Type") , data.lType );
m_AdoRS.GetCollect(_T("Status") , data.lStatus );
m_AdoRS.GetCollect(_T("Msg") , data.szMsg );
m_AdoRS.GetCollect(_T("AddMsg") , data.szAddMsg );
m_AdoRS.GetCollect(_T("AddMobile") , data.szAddMobile );
COleDateTime t;
m_AdoRS.GetCollect(_T("Alarm") , t );t.GetAsSystemTime(data.tAlarm);
m_AdoRS.Close();
}
return data;
}
void CFCalendar::OnOK()
{
//CDialog::OnOK();
}
void CFCalendar::OnCancel()
{
//CDialog::OnCancel();
}
BOOL CFCalendar::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
{
//<2F>޸Ĺ<DEB8><C4B9>õ<EFBFBD>ַ<EFBFBD><D6B7>
if (pHead->lFuncType == SMSFUNC_CALENDAR_SEE2)
{
m_bRefresh = true; //<2F><>ˢ<EFBFBD><CBA2>
m_bRefresh2 = true; //<2F><><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>
ANS_Calendar_See2 * pSee = (ANS_Calendar_See2 *)pFrame;
ANS_Calendar_Data2 * pData = (ANS_Calendar_Data2 *)(pFrame+sizeof(ANS_Calendar_See2));
m_wndList.ShowWindow( SW_HIDE ); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
m_wndList.DeleteAllItems();
CString strSelect;
strSelect.Format( _T("delete from calendar") );
m_AdoRS.Open( strSelect );
m_AdoRS.Close();
m_AdoRS.Open( _T("calendar") , adCmdTable );
TCHAR szTemp[32]={0};
for ( int i=0 ; i<pSee->lCount;i++ )
{
//д<><D0B4><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
m_AdoRS.AddNew();
m_AdoRS.PutCollect( _T("CalendarID") , pData->lCalendarID );
m_AdoRS.PutCollect( _T("CorpID") , pData->lCorpID );
m_AdoRS.PutCollect( _T("UserID") , pData->lUserID );
m_AdoRS.PutCollect( _T("Type") , pData->lType );
m_AdoRS.PutCollect( _T("Msg") , pData->szMsg );
m_AdoRS.PutCollect( _T("AddMsg") , pData->szAddMsg );
m_AdoRS.PutCollect( _T("AddMobile") , pData->szAddMobile );
m_AdoRS.PutCollect( _T("Alarm") , pData->tAlarm );
m_AdoRS.PutCollect( _T("Status") , pData->lStatus );
m_AdoRS.Update();
//д<><D0B4><EFBFBD>б<EFBFBD>
m_wndList.InsertItem( i , _itot(i+1,szTemp,10),0);
if ( _tcslen(pData->szAddMobile)>=10 )
m_wndList.SetItemText(i,2,pData->szAddMobile);
else
m_wndList.SetItemText(i,2,m_strMobile);
m_wndList.SetItemText(i,3,pData->szMsg);
CString str = GetAlarmText(pData->lType,pData->tAlarm,pData->szAddMsg);
m_wndList.SetItemText(i,4,str);
if ( pData->lStatus == 1 )
m_wndList.SetItemText(i,1,_T(" <20><><EFBFBD><EFBFBD> "));
else
m_wndList.SetItemText(i,1,_T("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
//m_wndList.SetCheck(i,pData->lStatus);
m_wndList.SetItemData(i,pData->lCalendarID);
pData ++;
}
m_AdoRS.Close();
m_wndList.ShowWindow( SW_SHOW ); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
m_bRefresh2 = false;
return true;
}
//<2F><><EFBFBD><EFBFBD>Calendar
if (pHead->lFuncType == SMSFUNC_CALENDAR_ADD2)
{
ANS_Calendar_Add2 * pAdd = (ANS_Calendar_Add2 *)pFrame;
if ( pAdd->bOK ) //<2F><><EFBFBD>ӳɹ<D3B3>
{
long lCount = m_wndList.GetItemCount();
TCHAR szTemp[32]={0};
//<2F><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
//д<><D0B4><EFBFBD>б<EFBFBD>
m_wndList.InsertItem( lCount , _itot(lCount+1,szTemp,10),0);
if ( _tcslen(pAdd->szAddMobile)>=10 )
m_wndList.SetItemText(lCount,2,pAdd->szAddMobile);
else
m_wndList.SetItemText(lCount,2,m_strMobile);
m_wndList.SetItemText(lCount,3,pAdd->szMsg);
CString str = GetAlarmText(pAdd->lType,pAdd->tAlarm,pAdd->szAddMsg);
m_wndList.SetItemText(lCount,4,str);
if ( pAdd->lStatus == 1 )
m_wndList.SetItemText(lCount,1,_T(" <20><><EFBFBD><EFBFBD> "));
else
m_wndList.SetItemText(lCount,1,_T("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
//m_wndList.SetCheck(lCount,pAdd->lStatus);
m_wndList.SetItemData(lCount,pAdd->lCalendarID);
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
BOOL b = m_AdoRS.Open( _T("calendar") , adCmdTable );
if ( b )
{
m_AdoRS.AddNew();
m_AdoRS.PutCollect( _T("CalendarID") , pAdd->lCalendarID );
m_AdoRS.PutCollect( _T("CorpID") , pAdd->lCorpID );
m_AdoRS.PutCollect( _T("UserID") , pAdd->lUserID );
m_AdoRS.PutCollect( _T("Type") , pAdd->lType );
m_AdoRS.PutCollect( _T("Msg") , pAdd->szMsg );
m_AdoRS.PutCollect( _T("AddMsg") , pAdd->szAddMsg );
m_AdoRS.PutCollect( _T("AddMobile"), pAdd->szAddMobile );
m_AdoRS.PutCollect( _T("Alarm") , pAdd->tAlarm );
m_AdoRS.PutCollect( _T("Status") , pAdd->lStatus );
m_AdoRS.Update();
}
m_AdoRS.Close();
}
return true;
}
//<2F>޸<EFBFBD>Email
if (pHead->lFuncType == SMSFUNC_CALENDAR_MODIFY2)
{
ANS_Calendar_Modify2 * pModify = (ANS_Calendar_Modify2 *)pFrame;
if ( pModify->bOK ) //<2F>޸ijɹ<C4B3>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
//д<><D0B4><EFBFBD>б<EFBFBD>
if ( !pModify->bOnlyStatus ) //<2F><><EFBFBD>޸<EFBFBD>״̬
{
if ( pModify->lStatus == 1 )
m_wndList.SetItemText(pModify->lItemID,1,_T(" <20><><EFBFBD><EFBFBD> "));
else
m_wndList.SetItemText(pModify->lItemID,1,_T("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
//m_wndList.SetCheck(pModify->lItemID,pModify->lStatus);
if ( _tcslen(pModify->szAddMobile)>=10 )
m_wndList.SetItemText(pModify->lItemID,2,pModify->szAddMobile);
else
m_wndList.SetItemText(pModify->lItemID,2,m_strMobile);
m_wndList.SetItemText(pModify->lItemID,3,pModify->szMsg);
CString str = GetAlarmText(pModify->lType,pModify->tAlarm,pModify->szAddMsg);
m_wndList.SetItemText(pModify->lItemID,4,str);
}
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
CString strSelect;
strSelect.Format( _T("select * from calendar where CalendarID=%d") , pModify->lCalendarID );
BOOL b = m_AdoRS.Open( strSelect );
if ( b )
{
m_AdoRS.MoveFirst();
if ( pModify->bOnlyStatus ) //<2F><><EFBFBD>޸<EFBFBD>״̬
{
m_AdoRS.PutCollect( _T("Status") , pModify->lStatus );
}
else
{
m_AdoRS.PutCollect( _T("Status") , pModify->lStatus );
m_AdoRS.PutCollect( _T("CalendarID") , pModify->lCalendarID );
m_AdoRS.PutCollect( _T("CorpID") , pModify->lCorpID );
m_AdoRS.PutCollect( _T("UserID") , pModify->lUserID );
m_AdoRS.PutCollect( _T("Type") , pModify->lType );
m_AdoRS.PutCollect( _T("Msg") , pModify->szMsg );
m_AdoRS.PutCollect( _T("AddMsg") , pModify->szAddMsg );
m_AdoRS.PutCollect( _T("AddMobile"), pModify->szAddMobile );
m_AdoRS.PutCollect( _T("Alarm") , pModify->tAlarm );
}
m_AdoRS.Update();
m_AdoRS.Close();
}
}
return true;
}
return false;
}