SmsManager/C_YWY.cpp

781 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.

// C_YWY.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "C_YWY.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CC_YWY dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_C_YWY_Modify.h"
#include "DLG_YWY_YS.h"
CC_YWY::CC_YWY(CWnd* pParent /*=NULL*/)
: CDialog(CC_YWY::IDD, pParent)
{
//{{AFX_DATA_INIT(CC_YWY)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_pAnalyseDlg = NULL;
}
void CC_YWY::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CC_YWY)
DDX_Control(pDX, IDC_YWY_LIST, m_wndList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CC_YWY, CDialog)
//{{AFX_MSG_MAP(CC_YWY)
ON_WM_SIZE()
ON_NOTIFY(NM_DBLCLK, IDC_YWY_LIST, OnDblclkYwyList)
ON_NOTIFY(NM_RCLICK, IDC_YWY_LIST, OnRclickYwyList)
ON_NOTIFY(LVN_KEYDOWN, IDC_YWY_LIST, OnKeydownYwyList)
//}}AFX_MSG_MAP
ON_COMMAND( MENU_YWY_ADD , On_User_Add)
ON_COMMAND( MENU_YWY_MODIFY , On_User_Modify)
ON_COMMAND( MENU_YWY_DEL , On_User_Del)
ON_COMMAND( MENU_YWY_REFRESH, On_User_Refresh)
ON_COMMAND( MENU_YWY_YSLIST, On_User_YSList)
ON_COMMAND( MENU_YWY_YSREFRESH, On_User_YSRefresh)
ON_COMMAND(MENU_YWY_ANALYSE, On_User_Analyse)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CC_YWY message handlers
BOOL CC_YWY::RefreshInfo()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY) )
{
return false;
}
m_pMainFrame->SendFrame(SMSFUNC_AGENT_NAME,NULL,0); //È¡´úÀíÐÅÏ¢
REQ_KF_Name * pName = new REQ_KF_Name;
memset(pName , 0 , sizeof(REQ_KF_Name));
m_pMainFrame->SendFrame(SMSFUNC_KF_NAME,(BYTE*)pName,sizeof(REQ_KF_Name));
REQ_YWYGroup_Name * pGroup = new REQ_YWYGroup_Name;
memset(pGroup , 0 , sizeof(REQ_YWYGroup_Name));
m_pMainFrame->SendFrame(SMSFUNC_YWYGROUP_NAME,(BYTE*)pGroup,sizeof(REQ_YWYGroup_Name));
m_pMainFrame->SendFrame(SMSFUNC_GETYWY,NULL,0);
return true;
}
void CC_YWY::Close()
{
Close_KF();
Close_YWY();
Close_Agent();
Close_Group();
}
BOOL CC_YWY::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CC_YWY::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
void CC_YWY::SetLockItem(long lItem, BOOL bLock)
{
if ( bLock )
m_wndList.SetIconIndex( lItem , 1 );
else
m_wndList.SetIconIndex( lItem , 0 );
}
long CC_YWY::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
BOOL CC_YWY::isLockItem(long lItem, BOOL bShowWarning)
{
BOOL b = (m_wndList.GetIconIndex(lItem) == 1);
if ( b && bShowWarning )
{
MessageBox( _T("Õý¼±»Ëø¶¨£¬ÇëµÈ´ý·þÎñÆ÷·µ»ØºóÔÙ²Ù×÷!") , _T("Ëø¶¨ÖÐ") , MB_ICONINFORMATION );
}
return b;
}
BOOL CC_YWY::ProcessSocket(Socket_Head *pHead)
{
//È¡¹ÜÀíÔ±ÐÅÏ¢
if (pHead->lFuncType == SMSFUNC_GETYWY)
{
m_bRefresh = true; //ÒѾ­Ë¢Ð¹ý
ANS_GetYWY * pYWY = (ANS_GetYWY *)pHead->pFrame;
ANS_GetYWYData * pData = (ANS_GetYWYData *)(pHead->pFrame+sizeof(ANS_GetYWY));
m_wndList.DeleteAllItems(); //ɾ³ýÔ­ÓеÄÄÚÈÝ
this->Close_YWY(); //¹Ø±ÕÔ­¶ÓÁÐ
TCHAR Buf[32];
for ( int i=0;i<pYWY->lCount;i++ )
{
ANS_GetYWYData * pNewData = new ANS_GetYWYData;
*pNewData = *pData;
POSITION pos = m_YWY.AddTail(pNewData);
//m_wndList.SetHeadings(_T("ÐòºÅ,50; ÐÕ Ãû,100; µÇ¼Ãû,100;Ö¸¶¨¿Í·þ,100; ²¿ ÃÅ,80;²¿Ãž­Àí,80; ´úÀíÉÌ,120;"));
_stprintf(Buf , _T("%d") , i+1 );
m_wndList.InsertItem( i , Buf , 0 );
m_wndList.SetItemData( i , (DWORD_PTR)pos ); //´æPos
m_wndList.SetItemText(i,1,pData->szName);
m_wndList.SetItemText(i,2,pData->szLoginName);
m_wndList.SetItemText(i,3,GetName_KF(pData->lKFID));
m_wndList.SetItemText(i,4,GetName_Group(pData->lGroupID));
if ( pData->bBMManager )
m_wndList.SetItemText(i,5,_T(" ÊÇ"));
_stprintf(Buf , _T("%.2f") , pData->fZYS );
m_wndList.SetItemText(i,6,Buf);
m_wndList.SetItemText(i,7,GetName_Agent(pData->lAgentID));
pData ++;
}
return true;
}
//È¡¿Í·þÐÅÏ¢
if (pHead->lFuncType == SMSFUNC_KF_NAME)
{
ANS_KF_Name * pKF = (ANS_KF_Name *)pHead->pFrame;
ANS_KF_NameData * pData = (ANS_KF_NameData *)(pHead->pFrame+sizeof(ANS_KF_Name));
this->Close_KF();
for ( int i=0;i<pKF->lCount;i++ )
{
ANS_KF_NameData * pNewData = new ANS_KF_NameData;
*pNewData = *pData;
m_KF.AddTail(pNewData);
pData ++;
}
return true;
}
//È¡¿Í·þÐÅÏ¢
if (pHead->lFuncType == SMSFUNC_YWYGROUP_NAME)
{
ANS_YWYGroup_Name * pKF = (ANS_YWYGroup_Name *)pHead->pFrame;
ANS_YWYGroup_NameData * pData = (ANS_YWYGroup_NameData *)(pHead->pFrame+sizeof(ANS_YWYGroup_Name));
this->Close_Group();
for ( int i=0;i<pKF->lCount;i++ )
{
ANS_YWYGroup_NameData * pNewData = new ANS_YWYGroup_NameData;
*pNewData = *pData;
m_Group.AddTail(pNewData);
pData ++;
}
return true;
}
//È¡¿Í·þÐÅÏ¢
if (pHead->lFuncType == SMSFUNC_AGENT_NAME)
{
ANS_Agent_Name * pKF = (ANS_Agent_Name *)pHead->pFrame;
ANS_Agent_NameData * pData = (ANS_Agent_NameData *)(pHead->pFrame+sizeof(ANS_Agent_Name));
this->Close_Agent();
for ( int i=0;i<pKF->lCount;i++ )
{
ANS_Agent_NameData * pNewData = new ANS_Agent_NameData;
*pNewData = *pData;
m_Agent.AddTail(pNewData);
pData ++;
}
return true;
}
//Ð޸ĹÜÀíÔ±ÐÅÏ¢
if (pHead->lFuncType == SMSFUNC_YWY_MODIFY)
{
ANS_YWY_Modify * pModify = (ANS_YWY_Modify *)pHead->pFrame;
ANS_GetYWYData * pData = (ANS_GetYWYData *)(pHead->pFrame+sizeof(ANS_YWY_Modify));
SetLockItem( pModify->lItem , false ); //½âËø
if ( pModify->lCount == 1 ) //µÈÓÚ1ʱ±íʾÐ޸ijɹ¦
{
POSITION pos = (POSITION)m_wndList.GetItemData(pModify->lItem);
ANS_GetYWYData * pData2 = m_YWY.GetNext( pos );
if ( pData2 )
{
*pData2 = *pData; //È¡µ½ÐµÄÊý¾Ý
//ÉèÖÃеÄÊý¾Ý
m_wndList.SetItemText(pModify->lItem,1,pData->szName);
m_wndList.SetItemText(pModify->lItem,2,pData->szLoginName);
m_wndList.SetItemText(pModify->lItem,3,GetName_KF(pData->lKFID));
m_wndList.SetItemText(pModify->lItem,4,GetName_Group(pData->lGroupID));
if ( pData->bBMManager )
m_wndList.SetItemText(pModify->lItem,5,_T(" ÊÇ"));
else
m_wndList.SetItemText(pModify->lItem,5,_T(""));
m_wndList.SetItemText(pModify->lItem,7,GetName_Agent(pData->lAgentID));
}
}
return true;
}
//Ìí¼Ó¹ÜÀíÔ±
if (pHead->lFuncType == SMSFUNC_YWY_ADD)
{
ANS_YWY_Add * pAdd = (ANS_YWY_Add *)pHead->pFrame;
ANS_GetYWYData * pData = (ANS_GetYWYData *)(pHead->pFrame+sizeof(ANS_YWY_Add));
if ( pAdd->lCount == 1 ) //µÈÓÚ1ʱ±íʾÐ޸ijɹ¦
{
long lCount = m_wndList.GetItemCount();
TCHAR Buf[32];
_stprintf( Buf, _T("%d") , lCount +1 );
//ÉèÖÃеÄÊý¾Ý
m_wndList.InsertItem( lCount , Buf , 0 );
m_wndList.SetItemText(lCount,1,pData->szName);
m_wndList.SetItemText(lCount,2,pData->szLoginName);
m_wndList.SetItemText(lCount,3,GetName_KF(pData->lKFID));
m_wndList.SetItemText(lCount,4,GetName_Group(pData->lGroupID));
if ( pData->bBMManager )
m_wndList.SetItemText(lCount,5,_T(" ÊÇ"));
else
m_wndList.SetItemText(lCount,5,_T(""));
_stprintf( Buf, _T("%.2f") , pData->fZYS );
m_wndList.SetItemText(lCount,6,Buf);
m_wndList.SetItemText(lCount,7,GetName_Agent(pData->lAgentID));
ANS_GetYWYData * pData2 = new ANS_GetYWYData;
*pData2 = *pData;
POSITION pos = m_YWY.AddTail( pData2 );
m_wndList.SetItemData( lCount, (DWORD_PTR)pos );
//Èç¹û·µ»ØµÄÓû§ID´íÎó£¬ÔòÖØÐÂË¢ÐÂ
if ( pData->lYWYID <= 0 )
{
RefreshInfo();
}
}
return true;
}
//ɾ³ý¹ÜÀíÔ±
if (pHead->lFuncType == SMSFUNC_YWY_DEL)
{
ANS_YWY_Del * pDel = (ANS_YWY_Del *)pHead->pFrame;
ANS_YWY_DelData * pDelData = (ANS_YWY_DelData *)(pHead->pFrame+sizeof(ANS_YWY_Del));
POSITION pos,pos2;
ANS_GetYWYData * pYWYData;
for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
{
if ( pDelData[i].lUserID ) //ɾ³ý³É¹¦
{
pos = (POSITION)m_wndList.GetItemData( pDelData[i].lItem );
pos2 = pos;
pYWYData = m_YWY.GetNext( pos );
if ( pYWYData->lYWYID == pDelData[i].lUserID ) //IDÏàͬµÄ²Å¿Éɾ³ý
{
delete pYWYData; //ÏÈɾ³ýÊý¾Ý
m_YWY.RemoveAt(pos2); //´ÓÁбíÖÐɾ³ý
m_wndList.DeleteItem(pDelData[i].lItem); //´ÓListCtrlÖÐɾ³ý
}
}
}
return true;
}
return false;
}
void CC_YWY::ShowRMenu()
{
//PURVIEW_CORP_MODIFY
//PURVIEW_MANAGER_SEE
if (!m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY,false)) //ûÓв鿴ȨÏÞ
return ;
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
if ( lItem >= 0 )
bLock = isLockItem( lItem , false ); //È¡µÃÊÇ·ñÕýÔÚËø¶¨
//Ìí¼Ó
if ( m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD,false) )
{
menu.AppendMenu(MF_STRING , MENU_YWY_ADD, _T(" Ìí¼ÓÒµÎñÔ± ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_YWY_ADD , _T(" Ìí¼ÓÒµÎñÔ± ") );
}
//ÐÞ¸Ä
if ( m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_MODIFY,false) && lItem >=0 && !bLock)
{
menu.AppendMenu(MF_STRING , MENU_YWY_MODIFY, _T(" ÐÞ ¸Ä ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_YWY_MODIFY , _T(" ÐÞ ¸Ä ") );
}
//ɾ³ý
if ( m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_DEL,false) && lItem >=0 && !bLock )
{
menu.AppendMenu(MF_STRING , MENU_YWY_DEL, _T(" ɾ ³ý ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_YWY_DEL , _T(" ɾ ³ý ") );
}
//²éѯӦÊÕ
if ( m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY,false) && lItem >=0 )
{
menu.AppendMenu(MF_STRING , MENU_YWY_YSLIST, _T(" Ó¦ÊÕ¿îÃ÷ϸ ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_YWY_YSLIST , _T(" Ó¦ÊÕ¿îÃ÷ϸ ") );
}
//Ë¢ÐÂÓ¦ÊÕ
if ( m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY,false) )
{
menu.AppendMenu(MF_STRING , MENU_YWY_YSREFRESH, _T(" Ë¢ÐÂËùÓÐÓ¦ÊÕ ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_YWY_YSREFRESH , _T(" Ë¢ÐÂËùÓÐÓ¦ÊÕ ") );
}
menu.AppendMenu(MF_SEPARATOR );
if (lItem >= 0)
{
menu.AppendMenu(MF_STRING, MENU_YWY_ANALYSE, _T(" ¿Í»§¾­ÀíÊý¾Ý·ÖÎö "));
}
//Ë¢ÐÂ
menu.AppendMenu(MF_STRING , MENU_YWY_REFRESH, _T(" ˢ Р") );
//ÏÔʾ²Ëµ¥
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
BOOL CC_YWY::OnInitDialog()
{
CDialog::OnInitDialog();
//È¡µÃ¹²ÓòÎÊý
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
//³õʼ»¯List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_MANAGER) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("ÐòºÅ,50; ÐÕ Ãû,100; µÇ¼Ãû,100;Ö¸¶¨¿Í·þ,100; ²¿ ÃÅ,80;²¿Ãž­Àí,80;×ÜÓ¦ÊÕ,100; ´úÀíÉÌ,120;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CC_YWY::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
m_wndList.MoveWindow( 0 , 0 , cx,cy);
}
}
void CC_YWY::OnDblclkYwyList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_Modify();
}
void CC_YWY::OnRclickYwyList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CC_YWY::OnKeydownYwyList(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CC_YWY::On_User_Add()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD) )
{
return ;
}
ANS_GetYWYData YWYData={0};
DLG_C_YWY_Modify dlg(this);
dlg.SetParam( YWYData,0,true);
if ( dlg.DoModal() == IDOK )
{
long lSize = sizeof(REQ_YWY_Add)+sizeof(ANS_GetYWYData);
BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize);
REQ_YWY_Add * pAdd = (REQ_YWY_Add *)pAddData; //Í·
ANS_GetYWYData * pYWYData = (ANS_GetYWYData *)(pAddData+sizeof(REQ_YWY_Add));
*pYWYData = dlg.GetParam();
pAdd->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_YWY_ADD , pAddData , lSize );
}
}
void CC_YWY::On_User_Modify()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_MODIFY) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_GetYWYData * pData = m_YWY.GetNext( pos );
if (pData)
{
DLG_C_YWY_Modify dlg(this);
dlg.SetParam( *pData,pos2,false);
if ( dlg.DoModal() == IDOK )
{
SetLockItem( lItem ,true);
long lSize = sizeof(REQ_YWY_Modify)+sizeof(ANS_GetYWYData);
BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
REQ_YWY_Modify * pModify = (REQ_YWY_Modify *)pModifyData; //Í·
ANS_GetYWYData * pYWYData = (ANS_GetYWYData *)(pModifyData+sizeof(REQ_YWY_Modify));
*pYWYData = dlg.GetParam();
pModify->lItem = lItem;
pModify->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_YWY_MODIFY , pModifyData , lSize );
}
}
}
void CC_YWY::On_User_Del()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_DEL) )
{
return ;
}
long lRet = MessageBox( _T("´Ë²Ù×÷½«»áɾ³ýÒµÎñÔ±£¬ÊÇ·ñ¼ÌÐø£¿") , _T("ÌáÎÊ") , MB_ICONQUESTION|MB_YESNOCANCEL|MB_DEFBUTTON2);
if ( lRet != IDYES )
return;
long lCount = m_wndList.GetSelectedCount();
long lSize = sizeof(REQ_YWY_Del)+sizeof(ANS_YWY_DelData)*lCount;
BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize);
REQ_YWY_Del * pDel = (REQ_YWY_Del *)pDelSend; //Í·
ANS_YWY_DelData * pDelData = (ANS_YWY_DelData *)(pDelSend+sizeof(REQ_YWY_Del));
pDel->lCount = lCount;
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
ANS_GetYWYData * pYWYData;
POSITION pos2;
while(pos)
{
pDelData->lItem = m_wndList.GetNextSelectedItem(pos);
pos2 = (POSITION)m_wndList.GetItemData(pDelData->lItem);
pYWYData = m_YWY.GetNext(pos2); //È¡µÃÁбíÖеÄpos
pDelData->lUserID = pYWYData->lYWYID;
pDelData ++;
}
m_pMainFrame->SendFrame( SMSFUNC_YWY_DEL , pDelSend , lSize );
}
void CC_YWY::On_User_Refresh()
{
RefreshInfo();
}
void CC_YWY::On_User_YSList()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_GetYWYData * pData = m_YWY.GetNext( pos );
if (pData)
{
REQ_YWY_YS * pYS = new REQ_YWY_YS;
memset(pYS , 0 , sizeof(REQ_YWY_YS));
pYS->lYWYID = pData->lYWYID;
_tcscpy(pYS->szYWYName , pData->szName);
m_pMainFrame->SendFrame( SMSFUNC_YWY_YS , (BYTE*)pYS , sizeof(REQ_YWY_YS) );
}
}
void CC_YWY::On_User_YSRefresh()
{
REQ_YWY_YSRefresh * pYS = new REQ_YWY_YSRefresh;
memset(pYS , 0 , sizeof(REQ_YWY_YSRefresh));
pYS->lYWYID = -1;
m_pMainFrame->SendFrame( SMSFUNC_YWY_YSREFRESH , (BYTE*)pYS , sizeof(REQ_YWY_YSRefresh) );
}
BOOL CC_YWY::FindYWYLoginName(const TCHAR *pName, POSITION exPos)
{
POSITION pos = m_YWY.GetHeadPosition();
POSITION pos2;
while (pos)
{
pos2 = pos;
ANS_GetYWYData * pData = m_YWY.GetNext( pos );
if ( pos2 != exPos )
{
if ( !_tcscmp( pData->szLoginName , pName ) )
return true;
}
}
return false;
}
BOOL CC_YWY::FindYWYName(const TCHAR *pName, POSITION exPos)
{
POSITION pos = m_YWY.GetHeadPosition();
POSITION pos2;
while (pos)
{
pos2 = pos;
ANS_GetYWYData * pData = m_YWY.GetNext( pos );
if ( pos2 != exPos )
{
if ( !_tcscmp( pData->szName , pName ) )
return true;
}
}
return false;
}
void CC_YWY::Close_YWY()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_YWY.IsEmpty())
{
ANS_GetYWYData * pYWY = m_YWY.GetHead();
m_YWY.RemoveHead();
delete pYWY;
}
}
void CC_YWY::Close_KF()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_KF.IsEmpty())
{
ANS_KF_NameData * pKF = m_KF.GetHead();
m_KF.RemoveHead();
delete pKF;
}
}
CString CC_YWY::GetName_KF(long lKFID)
{
//ÒµÎñÔ±
CString strTemp=_T("ÎÞ¿Í·þ");
POSITION pos = m_KF.GetHeadPosition();
POSITION pos2;
while (pos)
{
pos2=pos;
ANS_KF_NameData * pKF = m_KF.GetNext( pos );
if ( pKF->lKFID == lKFID )
{
strTemp = pKF->szKFName;
break;
}
}
return strTemp;
}
void CC_YWY::Close_Agent()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_Agent.IsEmpty())
{
ANS_Agent_NameData * pAgent = m_Agent.GetHead();
m_Agent.RemoveHead();
delete pAgent;
}
}
void CC_YWY::Close_Group()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_Group.IsEmpty())
{
ANS_YWYGroup_NameData * pGroup = m_Group.GetHead();
m_Group.RemoveHead();
delete pGroup;
}
}
CString CC_YWY::GetName_Agent(long lAgentID)
{
//´úÀíÉÌ
CString strTemp=_T("ÎÞ´úÀíÉÌ");
POSITION pos = m_Agent.GetHeadPosition();
POSITION pos2;
while (pos)
{
pos2=pos;
ANS_Agent_NameData * pAgent = m_Agent.GetNext( pos );
if ( pAgent->lAgentID == lAgentID )
{
strTemp = pAgent->szAgentName;
break;
}
}
return strTemp;
}
CString CC_YWY::GetName_Group(long lGroupID)
{
//´úÀíÉÌ
CString strTemp=_T("ÎÞ²¿ÃÅ");
POSITION pos = m_Group.GetHeadPosition();
POSITION pos2;
while (pos)
{
pos2=pos;
ANS_YWYGroup_NameData * pGroup = m_Group.GetNext( pos );
if ( pGroup->lGroupID == lGroupID )
{
strTemp = pGroup->szName;
break;
}
}
return strTemp;
}
BOOL CC_YWY::ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame)
{
CString str;
//È¡Çåµ¥
if (pHead->lFuncType == SMSFUNC_YWY_YS)
{
ANS_YWY_YS * pYS = (ANS_YWY_YS *)pFrame;
ANS_YWY_YSData * pYSData = (ANS_YWY_YSData *)(pFrame+sizeof(ANS_YWY_YS));
if ( pYS->lErrCode==0 ) //³É¹¦,ÏÔʾ³öÀ´
{
DLG_YWY_YS dlg(this);
dlg.SetParam(pYS,pYSData);
dlg.DoModal();
}
else
{
CString strErrMsg;
strErrMsg.Format(_T("ȡҵÎñÔ±Ó¦ÊÕ¿îʧ°Ü,%d,%s") , pYS->lErrCode , pYS->szErrMsg);
MessageBox(strErrMsg , _T("´íÎó") , MB_ICONWARNING );
}
return true;
}
//Ë¢ÐÂÓ¦ÊÕ
if (pHead->lFuncType == SMSFUNC_YWY_YSREFRESH)
{
ANS_YWY_YSRefresh * pYS = (ANS_YWY_YSRefresh *)pFrame;
if ( pYS->lErrCode==0 ) //³É¹¦,ÏÔʾ³öÀ´
{
MessageBox(_T("Ë¢ÐÂÒµÎñÔ±Ó¦ÊÕ¿î³É¹¦") , _T("Ìáʾ") , MB_ICONINFORMATION );
this->RefreshInfo(); //ÖØÐÂË¢ÐÂÊý¾Ý
}
else
{
CString strErrMsg;
strErrMsg.Format(_T("Ë¢ÐÂÒµÎñÔ±Ó¦ÊÕ¿îʧ°Ü,%d,%s") , pYS->lErrCode , pYS->szErrMsg);
MessageBox(strErrMsg , _T("´íÎó") , MB_ICONWARNING );
}
return true;
}
if (pHead->lFuncType == SMSFUNC_YWY_ANALYSE)
{
if (m_pAnalyseDlg)
{
m_pAnalyseDlg->ProcessSocket(pHead, pFrame);
}
return true;
}
return false;
}
void CC_YWY::On_User_Analyse()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_MODIFY))
{
return;
}
long lItem = GetCurrentSelected();
if (lItem < 0)
return;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_GetYWYData * pData = m_YWY.GetNext(pos);
if (!pData)
return;
DLG_YWY_Analyse dlg(this);
dlg.SetParam(this->m_pMainFrame, pData->lYWYID, 1, lItem, pData->szName);
this->m_pAnalyseDlg = &dlg;
dlg.DoModal();
m_pAnalyseDlg = NULL;
}