2486 lines
74 KiB
C++
2486 lines
74 KiB
C++
// FGAddress2.cpp : implementation file
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "CorpSms.h"
|
||
#include "FGAddress2.h"
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CFGAddress2 dialog
|
||
#include "MainFrm.h"
|
||
#include "ProcessSocket.h"
|
||
#include "DLG_User_Modify.h"
|
||
#include "DLG_User_Modify2.h"
|
||
#include "DLG_Group_Modify.h"
|
||
#include "FuncView.h"
|
||
#include "DLG_User_Inport2.h"
|
||
#include "DLG_User_ModifyP.h"
|
||
#include "DLG_User_Log.h"
|
||
#include "DLG_User_InportP2.h"
|
||
#include "..\public\StringSort\StringSort.h"
|
||
|
||
|
||
CFGAddress2::CFGAddress2(CWnd* pParent /*=NULL*/)
|
||
: CDialog(CFGAddress2::IDD, pParent)
|
||
{
|
||
//{{AFX_DATA_INIT(CFGAddress2)
|
||
// NOTE: the ClassWizard will add member initialization here
|
||
//}}AFX_DATA_INIT
|
||
|
||
m_bInit = false;
|
||
m_bRefresh = false;
|
||
m_pInUser = NULL;
|
||
m_bInUser = false; //不是在插入用户
|
||
|
||
m_lUserID = 0;
|
||
m_bFind2 = false;
|
||
memset(m_szGroupID,0,sizeof(m_szGroupID));
|
||
memset(m_szLocal,0,sizeof(m_szLocal));
|
||
|
||
//复制,粘贴所用到的变量
|
||
m_Copy_UserID = 0;
|
||
memset(m_Copy_GroupID,0,sizeof(m_Copy_GroupID));
|
||
m_Copy_Count = 0;
|
||
m_Copy_Type = 0;
|
||
m_Copy_Data = NULL;
|
||
m_bReBack = false;
|
||
m_lReBackIndex=0;
|
||
m_lReBackCount=0;
|
||
m_bUpLoad = false;
|
||
m_lReBackType = 0;
|
||
|
||
m_FindPro.m_bName = TRUE;
|
||
m_FindPro.m_bNickName = TRUE;
|
||
m_FindPro.m_bJob = TRUE;
|
||
m_FindPro.m_bTel = TRUE;
|
||
m_FindPro.m_bMobile = TRUE;
|
||
m_FindPro.m_bEmail = TRUE;
|
||
m_FindPro.m_bSex = TRUE;
|
||
m_FindPro.m_bBZ = TRUE;
|
||
m_FindPro.m_bLTD = TRUE;
|
||
|
||
m_lCurUserID = 0;
|
||
}
|
||
|
||
|
||
void CFGAddress2::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
//{{AFX_DATA_MAP(CFGAddress2)
|
||
DDX_Control(pDX, IDC_GADDRESS2_LIST, m_wndList);
|
||
//}}AFX_DATA_MAP
|
||
}
|
||
|
||
|
||
BEGIN_MESSAGE_MAP(CFGAddress2, CDialog)
|
||
//{{AFX_MSG_MAP(CFGAddress2)
|
||
ON_WM_SIZE()
|
||
ON_NOTIFY(NM_DBLCLK, IDC_GADDRESS2_LIST, OnDblclkGaddressList)
|
||
ON_NOTIFY(NM_RCLICK, IDC_GADDRESS2_LIST, OnRclickGaddressList)
|
||
ON_WM_TIMER()
|
||
ON_NOTIFY(LVN_KEYDOWN, IDC_GADDRESS2_LIST, OnKeydownGaddressList)
|
||
ON_WM_DESTROY()
|
||
//}}AFX_MSG_MAP
|
||
ON_MESSAGE( LIST_DROP_BEGIN , On_List_DropBegin )
|
||
ON_COMMAND( MENU_GADDRESS2_ADDADDR, On_User_AddAddr)
|
||
ON_COMMAND( MENU_GADDRESS2_ADDGROUP , On_User_AddGroup)
|
||
ON_COMMAND( MENU_GADDRESS2_MODIFY , On_User_Modify)
|
||
ON_COMMAND( MENU_GADDRESS2_DEL , On_User_Del)
|
||
ON_COMMAND( MENU_GADDRESS2_FIND , On_User_Find)
|
||
ON_COMMAND( MENU_GADDRESS2_ADDTOLIST , On_User_AddToList)
|
||
ON_COMMAND( MENU_GADDRESS2_ADDTOLIST_FAX , On_User_AddToList_Fax)
|
||
ON_COMMAND( MENU_GADDRESS2_ADDTOLIST_MMS , On_User_AddToList_Mms)
|
||
ON_COMMAND( MENU_GADDRESS2_INPORT , On_User_Inport)
|
||
ON_COMMAND( MENU_GADDRESS2_EXPORT , On_User_Export)
|
||
ON_COMMAND( MENU_GADDRESS2_REFRESH, On_User_Refresh)
|
||
ON_COMMAND( MENU_GADDRESS2_LOG , On_User_Log)
|
||
|
||
ON_COMMAND( MENU_GADDRESS2_COPY , On_User_Copy)
|
||
ON_COMMAND( MENU_GADDRESS2_CUT , On_User_Cut)
|
||
ON_COMMAND( MENU_GADDRESS2_PASTE , On_User_Paste)
|
||
|
||
ON_COMMAND( MENU_GADDRESS2_UBOX_MOBILE , On_User_UBox_Mobile)
|
||
ON_COMMAND( MENU_GADDRESS2_UBOX_TEL , On_User_UBox_Tel)
|
||
ON_COMMAND( MENU_GADDRESS2_UBOX_LOG , On_User_UBox_Log)
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CFGAddress2 message handlers
|
||
|
||
BOOL CFGAddress2::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;
|
||
m_AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection );
|
||
SetTimer( 1 , 200 , NULL ); //为了取得m_pFuncView;
|
||
|
||
//初始化List
|
||
m_Image.Create(16,16,ILC_COLOR32|ILC_MASK,5,5);
|
||
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_ADDRESSM) );
|
||
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_ADDRESSW) );
|
||
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_ADDRESSN) ); //分不清性别的,不给图标
|
||
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
|
||
m_wndList.SubClassWindow2();
|
||
#ifdef SHOWBZ_VER
|
||
m_wndList.SetHeadings(_T("序号,50; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90; 公 司,120;职务,80;Email,80;备注,120;"));
|
||
#else
|
||
#ifdef MOBSET_OEM_YTLE
|
||
m_wndList.SetHeadings(_T("序号,50; 姓名,80; 行业,80;手机,100;行业通,80;电话,80; 公 司,120;产品,80;Email,80; 生日,90;备注,120;"));
|
||
#else
|
||
m_wndList.SetHeadings(_T("序号,50; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90; 公 司,120;职务,80;Email,80;"));
|
||
#endif
|
||
#endif
|
||
m_wndList.SetGridLines(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;
|
||
|
||
|
||
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// EXCEPTION: OCX Property Pages should return FALSE
|
||
}
|
||
|
||
BOOL CFGAddress2::ReHide()
|
||
{
|
||
ShowWindow( SW_HIDE );
|
||
return true;
|
||
}
|
||
|
||
BOOL CFGAddress2::ReShow(BOOL bRefresh)
|
||
{
|
||
ShowWindow( SW_SHOW );
|
||
if ( bRefresh || !m_bRefresh )
|
||
{
|
||
RefreshInfo();
|
||
}
|
||
return true;
|
||
}
|
||
|
||
BOOL CFGAddress2::RefreshInfo()
|
||
{
|
||
return true;
|
||
}
|
||
|
||
void CFGAddress2::OnSize(UINT nType, int cx, int cy)
|
||
{
|
||
CDialog::OnSize(nType, cx, cy);
|
||
|
||
if ( m_bInit )
|
||
{
|
||
m_wndList.MoveWindow( 0 , 0 , cx,cy);
|
||
}
|
||
}
|
||
|
||
long CFGAddress2::ShowUser(long lUserID)
|
||
{
|
||
m_bFind2 = false;
|
||
|
||
m_wndList.ShowWindow( SW_HIDE ); //为了加快显示速度
|
||
m_wndList.DeleteAllItems();
|
||
|
||
TCHAR szSelect[128]={0};
|
||
CString str;
|
||
m_lUserID = lUserID;
|
||
memset( m_szGroupID , 0 , sizeof(m_szGroupID) );
|
||
if ( lUserID != -1 ) //等于-1是代表根
|
||
{
|
||
_stprintf( szSelect , _T("select GroupID from gaddress where UserID=%d AND UserType='0' ") , lUserID ); //查询用户ID,并且只能为组
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
long lCount = m_AdoRS.GetRecordCount();
|
||
if ( b && lCount )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect( _T("GroupID") , m_szGroupID );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度
|
||
return 0;
|
||
}
|
||
}
|
||
|
||
GetLocal( m_szLocal , m_szGroupID ); //取用户路径
|
||
|
||
if ( lUserID == -1 ) //如果是根,用户组为NULL
|
||
_tcscpy( szSelect , _T("select * from gaddress where GroupID is null or len(GroupID)=0 and UserType='1' order by UserID ") ); //查找此组下的用户
|
||
else
|
||
_stprintf( szSelect , _T("Select * from gaddress where GroupID='%s' AND UserType='1' order by UserID ") , m_szGroupID ); //查找此组下的用户
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
long lCount = m_AdoRS.GetRecordCount();
|
||
if ( b && lCount )
|
||
{
|
||
COleDateTime t;
|
||
m_AdoRS.MoveFirst();
|
||
for ( int i = 0 ; i< lCount ; i++ )
|
||
{
|
||
ANS_GAddress22_SeeData user={0};
|
||
|
||
m_AdoRS.GetCollect( _T("UserID") , user.lUserID);
|
||
m_AdoRS.GetCollect( _T("UserType") , user.szUserType);
|
||
m_AdoRS.GetCollect( _T("GroupID") , user.szGroupID);
|
||
m_AdoRS.GetCollect( _T("Name") , user.szName);
|
||
m_AdoRS.GetCollect( _T("NickName") , user.szNickName);
|
||
m_AdoRS.GetCollect( _T("Sex") , user.szSex);
|
||
m_AdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(user.tBirthday);
|
||
m_AdoRS.GetCollect( _T("LTD") , user.szLTD);
|
||
m_AdoRS.GetCollect( _T("Job") , user.szJob);
|
||
m_AdoRS.GetCollect( _T("Addr") , user.szAddr);
|
||
m_AdoRS.GetCollect( _T("Tel") , user.szTel);
|
||
m_AdoRS.GetCollect( _T("Fax") , user.szFax);
|
||
m_AdoRS.GetCollect( _T("Email") , user.szEmail);
|
||
m_AdoRS.GetCollect( _T("Mobile") , user.szMobile);
|
||
m_AdoRS.GetCollect( _T("QQ") , user.szQQ);
|
||
|
||
m_AdoRS.GetCollect( _T("CreateTime"), t);t.GetAsSystemTime(user.tCreateTime);
|
||
m_AdoRS.GetCollect( _T("BZ") , user.szBZ);
|
||
|
||
m_AdoRS.MoveNext();
|
||
|
||
if ( this->m_pMainFrame->GetUserPurview_HideNum() )
|
||
{
|
||
user.szMobile[4]='*';
|
||
user.szMobile[5]='*';
|
||
user.szMobile[6]='*';
|
||
user.szMobile[7]='*';
|
||
//user.szMobile[8]='*';
|
||
}
|
||
|
||
//m_wndList.SetHeadings(_T("序号,50; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90; 公 司,120;职务,80;Email,80;"));
|
||
_stprintf(szSelect, _T("%d"), i + 1);
|
||
m_wndList.InsertItem( i , szSelect); //序号
|
||
|
||
long lIcon = 2;
|
||
if ( _tcscmp(user.szSex,_T("男"))==0 )
|
||
lIcon = 0;
|
||
if ( _tcscmp(user.szSex,_T("女"))==0 )
|
||
lIcon = 1;
|
||
m_wndList.SetIconIndex(i,lIcon);
|
||
|
||
m_wndList.SetItemData( i , user.lUserID );
|
||
|
||
|
||
m_wndList.SetItemText(i,1, user.szName );
|
||
m_wndList.SetItemText(i,2, user.szNickName );
|
||
m_wndList.SetItemText(i,3, user.szMobile );
|
||
m_wndList.SetItemText(i,4, user.szTel );
|
||
#ifdef MOBSET_OEM_YTLE
|
||
m_wndList.SetItemText(i,5, user.szFax );
|
||
#else
|
||
COleDateTime t(user.tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(i,5, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(i,5, _T("") );
|
||
}
|
||
#endif
|
||
m_wndList.SetItemText(i,6, user.szLTD );
|
||
m_wndList.SetItemText(i,7, user.szJob );
|
||
m_wndList.SetItemText(i,8, user.szEmail );
|
||
#ifdef MOBSET_OEM_YTLE
|
||
COleDateTime t(user.tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(i,9, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(i,9, _T("") );
|
||
}
|
||
m_wndList.SetItemText(i,10, user.szBZ );
|
||
#endif
|
||
#ifdef SHOWBZ_VER
|
||
m_wndList.SetItemText(i,9, user.szBZ );
|
||
#endif
|
||
}
|
||
//return lCount;
|
||
}
|
||
m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度
|
||
return 0;
|
||
}
|
||
void CFGAddress2::On_User_AddAddr()
|
||
{
|
||
if ( !m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_ADD) )
|
||
{
|
||
return ;
|
||
}
|
||
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
|
||
return ;
|
||
|
||
if ( isAddressFull() ) //通讯录已满
|
||
return ;
|
||
|
||
|
||
PAddress Address={0};
|
||
_tcscpy(Address.szGroupID,m_szGroupID);
|
||
Address.szUserType[0]='1'; //用户类型
|
||
DLG_User_ModifyP dlg(this);
|
||
dlg.SetParam( Address,m_szLocal,true,1);
|
||
dlg.DoModal();
|
||
|
||
}
|
||
void CFGAddress2::On_User_AddGroup()
|
||
{
|
||
if ( !m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_ADD) )
|
||
{
|
||
return ;
|
||
}
|
||
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
|
||
return ;
|
||
|
||
if ( isAddressFull() ) //通讯录已满
|
||
return ;
|
||
|
||
//最多仅能建12层的组
|
||
if ( _tcslen(m_szGroupID) >12 )
|
||
{
|
||
MessageBox( _T("对不起,组的数量已满,此目录下已不能新建用户组!") , _T("错误") , MB_ICONWARNING );
|
||
return ;
|
||
}
|
||
|
||
ANS_GAddress_Group_AddData GAdd={0};
|
||
//查找空闲的组ID
|
||
long lGroupLen = _tcslen( m_szGroupID );
|
||
TCHAR szSelect[128]={0};
|
||
_stprintf( szSelect , _T("select GroupID from gaddress where GroupID like '%s_' AND UserType='0' ") , m_szGroupID); //查找当前组下的第一层
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
|
||
CStringSort sort;
|
||
CString strTemp;
|
||
while(!m_AdoRS.IsEOF() )
|
||
{
|
||
m_AdoRS.GetCollect( _T("GroupID") , strTemp );
|
||
sort.Add(strTemp);
|
||
m_AdoRS.MoveNext();
|
||
}
|
||
|
||
long lCount = sort.GetCount();
|
||
long lAllCount=GROUPID_END-GROUPID_BEGIN;
|
||
if ( lCount >= GROUPID_END-GROUPID_BEGIN )
|
||
{
|
||
MessageBox( _T("对不起,组的数量已满,此目录下已不能新建用户组!") , _T("错误") , MB_ICONWARNING );
|
||
return ;
|
||
}
|
||
TCHAR szGroupID[16]={0};
|
||
_tcscpy( szGroupID , m_szGroupID );
|
||
//记住所有的组ID
|
||
TCHAR szAllID[200][24]={0};
|
||
for ( int i = 0 ; i< lCount ;i++ )
|
||
{
|
||
_tcscpy(szAllID[i],sort.GetAt(i));
|
||
}
|
||
|
||
//查找组ID
|
||
for ( i=0 ; i< lCount ; i++ )
|
||
{
|
||
BOOL bFound = false;
|
||
for ( int j= 0 ; j<lCount ; j++ )
|
||
{
|
||
if ( szAllID[j][lGroupLen] == GROUPID_BEGIN+i )
|
||
{
|
||
bFound = true;
|
||
}
|
||
}
|
||
if ( !bFound )
|
||
break;
|
||
}
|
||
szGroupID[lGroupLen] = GROUPID_BEGIN+i; //新的组ID
|
||
//新的组ID应由服务器生成,送过去的是母ID,返回的是新组ID
|
||
//_tcscpy( GAdd.szGroupID , szGroupID );
|
||
_tcscpy( GAdd.szGroupID , m_szGroupID );
|
||
_tcscpy( GAdd.szCreateUser , m_pMainFrame->m_pCurUser->szUser );
|
||
|
||
|
||
DLG_Group_Modify dlg(this);
|
||
dlg.SetParam( GAdd,m_szLocal,_T("gaddress") );
|
||
if ( dlg.DoModal() == IDOK )
|
||
{
|
||
long lSize = sizeof(REQ_GAddress2_Group_Add)+sizeof(ANS_GAddress2_Group_AddData);
|
||
BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize);
|
||
REQ_GAddress2_Group_Add * pAdd = (REQ_GAddress2_Group_Add *)pAddData; //头
|
||
ANS_GAddress2_Group_AddData * pGAdd = (ANS_GAddress2_Group_AddData *)(pAddData+sizeof(REQ_GAddress2_Group_Add));
|
||
GAdd = dlg.GetParam();
|
||
pGAdd->lUserID = GAdd.lUserID;
|
||
_tcscpy(pGAdd->szBZ , GAdd.szBZ );
|
||
_tcscpy(pGAdd->szCreateUser , GAdd.szCreateUser );
|
||
_tcscpy(pGAdd->szGroupID , GAdd.szGroupID );
|
||
_tcscpy(pGAdd->szGroupName , GAdd.szGroupName );
|
||
::GetLocalTime( &pGAdd->tCreateTime );
|
||
pAdd->lCorpID= m_pMainFrame->m_lCorpID;
|
||
pAdd->lCount = 1;
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS2_GROUP_ADD , pAddData , lSize );
|
||
}
|
||
}
|
||
|
||
void CFGAddress2::On_User_Modify()
|
||
{
|
||
if ( !m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_SEE) )
|
||
{
|
||
return ;
|
||
}
|
||
long lItem = GetCurrentSelected();
|
||
if ( lItem < 0 )
|
||
return ;
|
||
|
||
if (isLockItem(lItem))
|
||
{
|
||
return ;
|
||
}
|
||
long lUserID = m_wndList.GetItemData( lItem );
|
||
|
||
PAddress Address = GetUserData(lUserID);
|
||
if (_tcslen(Address.szName) >0 )
|
||
{
|
||
if ( m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFY,false ))
|
||
{
|
||
DLG_User_ModifyP dlg(this);
|
||
TCHAR szLocal[128]={0};
|
||
GetLocal(szLocal,Address.szGroupID); //取用户所在组位置
|
||
dlg.SetParam(Address,szLocal,false,1);
|
||
if ( dlg.DoModal() == IDOK )
|
||
{
|
||
SetLockItem( lItem ,true);
|
||
long lSize = sizeof(REQ_GAddress22_Modify)+sizeof(ANS_GAddress22_SeeData);
|
||
BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
|
||
REQ_GAddress22_Modify * pModify = (REQ_GAddress22_Modify *)pModifyData; //头
|
||
ANS_GAddress22_SeeData * pAddress = (ANS_GAddress22_SeeData *)(pModifyData+sizeof(REQ_GAddress22_Modify));
|
||
Address = dlg.GetParam();
|
||
pAddress->lUserID = Address.lUserID;
|
||
_tcscpy(pAddress->szBZ , Address.szBZ );
|
||
_tcscpy(pAddress->szEmail , Address.szEmail );
|
||
_tcscpy(pAddress->szFax , Address.szFax );
|
||
_tcscpy(pAddress->szGroupID , Address.szGroupID );
|
||
_tcscpy(pAddress->szJob , Address.szJob );
|
||
_tcscpy(pAddress->szAddr , Address.szAddress );
|
||
_tcscpy(pAddress->szLTD , Address.szLtd );
|
||
_tcscpy(pAddress->szMobile , Address.szMobile );
|
||
_tcscpy(pAddress->szName , Address.szName );
|
||
_tcscpy(pAddress->szNickName , Address.szNickName );
|
||
_tcscpy(pAddress->szQQ , Address.szQQ );
|
||
_tcscpy(pAddress->szSex , Address.szSex );
|
||
_tcscpy(pAddress->szTel , Address.szTel );
|
||
_tcscpy(pAddress->szUserType , Address.szUserType );
|
||
pAddress->tBirthday = Address.tBirthday;
|
||
pAddress->tCreateTime = Address.tCreateTime;
|
||
|
||
pModify->lCorpID= m_pMainFrame->m_lCorpID;
|
||
pModify->lItem = lItem;
|
||
pModify->lCount = 1;
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS22_MODIFY , pModifyData , lSize );
|
||
}
|
||
}
|
||
}
|
||
}
|
||
void CFGAddress2::On_User_Del()
|
||
{
|
||
if ( !m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_DEL) )
|
||
{
|
||
return ;
|
||
}
|
||
long lRet = MessageBox( _T("确实要删除选中的用户吗?"),_T("提问"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
|
||
if ( lRet != IDYES )
|
||
return ;
|
||
|
||
long lCount = m_wndList.GetSelectedCount();
|
||
long lSize = sizeof(REQ_GAddress2_Del)+sizeof(ANS_GAddress2_DelData)*lCount;
|
||
BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize);
|
||
REQ_GAddress2_Del * pDel = (REQ_GAddress2_Del *)pDelSend; //头
|
||
ANS_GAddress2_DelData * pDelData = (ANS_GAddress2_DelData *)(pDelSend+sizeof(REQ_GAddress2_Del));
|
||
pDel->lCount = lCount;
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
while(pos)
|
||
{
|
||
long lItem = m_wndList.GetNextSelectedItem(pos);
|
||
long lUserID = m_wndList.GetItemData(lItem);
|
||
CString strLogin = m_wndList.GetItemText(lItem,1);
|
||
/*
|
||
if ( lUserID == m_pMainFrame->m_lUserID )
|
||
{
|
||
long lRet = MessageBox( _T("要删除的用户中包含当前登录用户,删除后你将不能通过本帐号登录!\r\n是否真的删除本帐号?"),_T("提问"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
|
||
if ( lRet != IDYES )
|
||
continue;
|
||
}
|
||
if ( strLogin == _T("Admin") )
|
||
{
|
||
MessageBox( _T("要删除的用户中包含管理员帐号,此帐号不可删除!"),_T("提示"),MB_ICONINFORMATION);
|
||
continue;
|
||
}
|
||
*/
|
||
pDelData->lItem = lItem;
|
||
pDelData->lUserID = lUserID;
|
||
this->SetLockItem( lItem,true); //加锁
|
||
pDelData ++;
|
||
}
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS2_DEL , pDelSend , lSize );
|
||
}
|
||
void CFGAddress2::On_User_Find()
|
||
{
|
||
DLG_FindUser dlg(this);
|
||
dlg.SetParam(m_FindPro);
|
||
if ( dlg.DoModal()==IDOK )
|
||
{
|
||
m_FindPro = dlg.m_FindPro;
|
||
On_User_Find2(&dlg);
|
||
}
|
||
return ;
|
||
|
||
/*
|
||
m_wndList.UnSelectAllItems();
|
||
DLG_FindUser dlg(this);
|
||
if ( dlg.DoModal()==IDOK )
|
||
{
|
||
if ( dlg.m_bFindAll )
|
||
{
|
||
On_User_Find2(&dlg);
|
||
return ;
|
||
}
|
||
long lFindItem = -1;
|
||
BOOL bFind;
|
||
char szFind[32]={0};
|
||
_tcscpy(szFind , dlg.m_strMsg );
|
||
long lCount = m_wndList.GetItemCount();
|
||
char szMsg[64];
|
||
for ( int i =0 ; i< lCount ; i++ )
|
||
{
|
||
bFind = false;
|
||
if ( dlg.m_bName ) //name
|
||
{
|
||
memset( szMsg , 0 , sizeof(szMsg) );
|
||
m_wndList.GetItemText( i , 3 , szMsg,sizeof(szMsg) );
|
||
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
|
||
}
|
||
if ( !bFind && dlg.m_bNickName )//nickname
|
||
{
|
||
memset( szMsg , 0 , sizeof(szMsg) );
|
||
m_wndList.GetItemText( i , 4 , szMsg,sizeof(szMsg) );
|
||
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
|
||
}
|
||
if ( !bFind && dlg.m_bSex )//sex
|
||
{
|
||
memset( szMsg , 0 , sizeof(szMsg) );
|
||
m_wndList.GetItemText( i , 4 , szMsg,sizeof(szMsg) );
|
||
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
|
||
}
|
||
if ( !bFind && dlg.m_bJob ) //job
|
||
{
|
||
memset( szMsg , 0 , sizeof(szMsg) );
|
||
m_wndList.GetItemText( i , 8 , szMsg,sizeof(szMsg) );
|
||
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
|
||
}
|
||
if ( !bFind && dlg.m_bTel ) //Tel
|
||
{
|
||
memset( szMsg , 0 , sizeof(szMsg) );
|
||
m_wndList.GetItemText( i , 6 , szMsg,sizeof(szMsg) );
|
||
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
|
||
}
|
||
if ( !bFind && dlg.m_bMobile ) //Mobile
|
||
{
|
||
memset( szMsg , 0 , sizeof(szMsg) );
|
||
m_wndList.GetItemText( i , 5 , szMsg,sizeof(szMsg) );
|
||
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
|
||
}
|
||
if ( !bFind && dlg.m_bEmail ) //Email
|
||
{
|
||
memset( szMsg , 0 , sizeof(szMsg) );
|
||
m_wndList.GetItemText( i , 9 , szMsg,sizeof(szMsg) );
|
||
bFind = FoundChar(szMsg , szFind , _tcslen(szMsg) );
|
||
}
|
||
if ( bFind )
|
||
{
|
||
if (lFindItem==-1)
|
||
lFindItem = i; //记录第一条找到的记录
|
||
m_wndList.SelectItem( i );
|
||
}
|
||
}
|
||
|
||
if ( lFindItem != -1 ) //显示第一条找到的
|
||
{
|
||
m_wndList.EnsureVisible( lFindItem , false );
|
||
m_wndList.SetFocus();
|
||
}
|
||
else
|
||
{
|
||
MessageBox( "对不起,没有找到相应的记录,请重新查询!","信息",MB_ICONINFORMATION);
|
||
}
|
||
}
|
||
*/
|
||
}
|
||
void CFGAddress2::On_User_AddToList()
|
||
{
|
||
On_User_AddToList_Public(0);
|
||
}
|
||
void CFGAddress2::On_User_AddToList_Fax()
|
||
{
|
||
On_User_AddToList_Public(1);
|
||
}
|
||
void CFGAddress2::On_User_AddToList_Mms()
|
||
{
|
||
On_User_AddToList_Public(2);
|
||
}
|
||
void CFGAddress2::On_User_AddToList_Public(long lSendType)
|
||
{
|
||
if ( !m_pMainFrame->GetUserPurview(PURVIEW_SENDG) )
|
||
{
|
||
return ;
|
||
}
|
||
|
||
long lCount = m_wndList.GetSelectedCount();
|
||
if ( lCount <= 0 )
|
||
return ;
|
||
//分配数据
|
||
long lSize = sizeof(Send_User)*lCount;
|
||
BYTE *pS = new BYTE[lSize];
|
||
memset( pS , 0 , lSize );
|
||
Send_User * pUser = (Send_User * )pS;
|
||
|
||
TCHAR szSelect[128]={0};
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
while ( pos )
|
||
{
|
||
long lItem = m_wndList.GetNextSelectedItem( pos );
|
||
long lUserID = m_wndList.GetItemData( lItem );
|
||
if ( lUserID > 0 )
|
||
{
|
||
_stprintf( szSelect , _T("select * from gaddress where UserID=%d"), lUserID );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if ( b && m_AdoRS.GetRecordCount() )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect( _T("Name") , pUser->szName);
|
||
m_AdoRS.GetCollect( _T("NickName") , pUser->szNickName);
|
||
if ( lSendType == 1 ) //传真
|
||
m_AdoRS.GetCollect( _T("Fax") , pUser->szMobile);
|
||
else
|
||
m_AdoRS.GetCollect( _T("Mobile") , pUser->szMobile);
|
||
m_AdoRS.GetCollect( _T("BZ") , pUser->szBZ);
|
||
}
|
||
}
|
||
pUser ++;
|
||
}
|
||
switch(lSendType)
|
||
{
|
||
case 0:
|
||
m_pFuncView->On_User_List_AddUser(lCount,(Send_User*)pS);
|
||
break;
|
||
case 1:
|
||
m_pFuncView->On_User_List_AddUser_Fax(lCount,(Send_User*)pS);
|
||
break;
|
||
case 2:
|
||
m_pFuncView->On_User_List_AddUser_Mms(lCount,(Send_User*)pS);
|
||
break;
|
||
}
|
||
|
||
delete pS;
|
||
}
|
||
void CFGAddress2::On_User_Inport()
|
||
{
|
||
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
|
||
return ;
|
||
|
||
Inport_Field Field[] =
|
||
{
|
||
{_T("姓名"),0,0,-1},
|
||
{_T("昵称"),0,1,-1},
|
||
{_T("性别"),0,2,-1},
|
||
{_T("生日"),0,3,-1},
|
||
{_T("公司"),0,4,-1},
|
||
{_T("职务"),0,5,-1},
|
||
{_T("地址"),0,6,-1},
|
||
{_T("手机号码"),0,7,-1},
|
||
{_T("电话号码"),0,8,-1},
|
||
{_T("传真号码"),0,9,-1},
|
||
{_T("Email"),0,10,-1},
|
||
{_T("QQ号码"),0,11,-1},
|
||
{_T("备注"),0,12,-1},
|
||
};
|
||
DLG_User_InportP2 dlg(this);
|
||
dlg.SetParam(&Field[0],sizeof(Field)/sizeof(Inport_Field),5);
|
||
|
||
//DLG_User_Inport dlg(this);
|
||
//dlg.SetInport(NULL,&m_wndList,true,false);
|
||
if ( dlg.DoModal() == IDOK )
|
||
{
|
||
if ( m_pInUser )
|
||
{delete m_pInUser;m_pInUser=NULL;};
|
||
m_lInUserCount = dlg.m_User.GetCount();
|
||
m_lInUserIndex = 0;
|
||
if ( m_lInUserCount > 0 )
|
||
{
|
||
//取信息
|
||
m_pInUser =new ANS_GAddress22_SeeData[m_lInUserCount];
|
||
memset(m_pInUser,0,sizeof(ANS_GAddress22_SeeData)*m_lInUserCount);
|
||
POSITION pos = dlg.m_User.GetHeadPosition();
|
||
long i = 0;
|
||
while (pos)
|
||
{
|
||
PAddress pAddress = *dlg.m_User.GetNext( pos );
|
||
|
||
_tcscpy(m_pInUser[i].szName , pAddress.szName);
|
||
_tcscpy(m_pInUser[i].szSex , pAddress.szSex);
|
||
_tcscpy(m_pInUser[i].szNickName , pAddress.szNickName);
|
||
_tcscpy(m_pInUser[i].szMobile , pAddress.szMobile);
|
||
_tcscpy(m_pInUser[i].szTel , pAddress.szTel);
|
||
_tcscpy(m_pInUser[i].szFax , pAddress.szFax);
|
||
m_pInUser[i].tBirthday = pAddress.tBirthday;
|
||
_tcscpy(m_pInUser[i].szLTD , pAddress.szLtd);
|
||
_tcscpy(m_pInUser[i].szJob , pAddress.szJob);
|
||
_tcscpy(m_pInUser[i].szAddr , pAddress.szAddress);
|
||
_tcscpy(m_pInUser[i].szEmail , pAddress.szEmail);
|
||
_tcscpy(m_pInUser[i].szQQ , pAddress.szQQ);
|
||
_tcscpy(m_pInUser[i].szBZ , pAddress.szBZ);
|
||
|
||
i++;
|
||
}
|
||
m_bInUser = true; //正在导入地址本
|
||
m_DLGGetUser.SetProcessTitle( _T("正在导入地址本,请稍候...") );
|
||
//发送添加地址本信息
|
||
Inport_Next();
|
||
//启动进度条
|
||
m_DLGGetUser.DoModal();
|
||
delete m_pInUser;
|
||
m_pInUser = NULL;
|
||
m_bInUser = false; //不正在导入地址本
|
||
}
|
||
TCHAR Buf[64]={0};
|
||
_stprintf( Buf , _T("导入地址本成功,共导入%d个有效用户!") , m_lInUserIndex );
|
||
MessageBox( Buf , _T("信息") , MB_ICONASTERISK );
|
||
}
|
||
dlg.Close(); //关闭链表
|
||
}
|
||
void CFGAddress2::On_User_ReBack()
|
||
{
|
||
USES_CONVERSION;
|
||
int iRet = MessageBox(_T("恢复通讯录后,将会覆盖现有的所有通讯录数据,请慎重!\r\n是否继续?") , _T("确认") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
|
||
if ( iRet != IDYES )
|
||
return ;
|
||
|
||
#define FILE_FILTER_TEXT \
|
||
TEXT("bak备份文件 (*.bak)\0*.bak\0")\
|
||
TEXT("所有文件 (*.*)\0*.*;\0\0")
|
||
|
||
CString strFileName;
|
||
TCHAR szFile[ 256 ];
|
||
TCHAR szFileB[ 256 ];
|
||
*szFileB = NULL;
|
||
_stprintf( szFile , _T("Address.bak") );
|
||
|
||
OPENFILENAME sOpen;
|
||
sOpen.lStructSize = sizeof( sOpen );
|
||
sOpen.hwndOwner = this->m_hWnd ;
|
||
sOpen.Flags = OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
|
||
sOpen.lpstrFilter = FILE_FILTER_TEXT;
|
||
sOpen.lpstrDefExt = _T("bak");
|
||
sOpen.lpstrCustomFilter = NULL;
|
||
sOpen.nMaxCustFilter = 0;
|
||
sOpen.lpstrFile = szFile;
|
||
sOpen.nMaxFile = sizeof( szFile );
|
||
sOpen.lpstrFileTitle = szFileB;
|
||
sOpen.nMaxFileTitle = sizeof( szFileB );
|
||
sOpen.lpstrInitialDir = NULL;
|
||
sOpen.lpstrTitle = _T("选择通讯录备份的文件");
|
||
if ( !::GetOpenFileName( &sOpen ) )
|
||
{
|
||
return ;
|
||
}
|
||
strFileName = sOpen.lpstrFile;
|
||
|
||
//解密码
|
||
char szPasswd[64]={0};strcpy(szPasswd , ACCESS_PASSWD );
|
||
char szKey[64]={0};strcpy( szKey , ACCESS_KEY );
|
||
char szNew2[64]={0};long lOut=sizeof(szNew2);
|
||
TCHAR szNew[64]={0};
|
||
CDes des;
|
||
des.Decrypt( szPasswd , strlen(szPasswd),szNew2,lOut,szKey,8);
|
||
#ifdef UNICODE
|
||
_tcscpy(szNew , A2W(szNew2));
|
||
#else
|
||
strcpy(szNew , szNew2);
|
||
#endif
|
||
if ( !m_BadoConnection.ConnectAccess(strFileName,szNew ) ) //连接数据库错误,需要重新创建
|
||
{
|
||
MessageBox( _T("打开通讯录备份文件错误,请检查!"),_T("错误") ,MB_ICONWARNING );
|
||
return ;
|
||
}
|
||
m_BAdoRS.SetAdoConnection( &m_BadoConnection ); //设置连接
|
||
long lCount = 0;
|
||
m_BAdoRS.Open(_T("select * from paddress order by GroupID,usertype"));
|
||
m_lReBackCount=m_BAdoRS.GetRecordCount();
|
||
m_lReBackIndex=0;
|
||
if (m_lReBackCount<=0 )
|
||
{
|
||
MessageBox( _T("备份文件没有任何记录,无法导入!"),_T("错误") ,MB_ICONWARNING );
|
||
return ;
|
||
}
|
||
strFileName.Format( _T("需要恢复的通迅录共有%d条记录,是否继续?"),m_lReBackCount );
|
||
iRet = MessageBox(strFileName , _T("确认") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
|
||
if ( iRet != IDYES )
|
||
return ;
|
||
|
||
m_lReBackType = 0;
|
||
//先清除此ID的所有通迅录
|
||
long lSize = sizeof(REQ_GAddress2_Del)+sizeof(ANS_GAddress2_DelData);
|
||
BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize);
|
||
REQ_GAddress2_Del * pDel = (REQ_GAddress2_Del *)pDelSend; //头
|
||
ANS_GAddress2_DelData * pDelData = (ANS_GAddress2_DelData *)(pDelSend+sizeof(REQ_GAddress2_Del));
|
||
pDel->lCount = 1;
|
||
pDelData->lItem = -100;
|
||
pDelData->lUserID=-100;
|
||
_tcscpy(pDelData->szGroupID,m_pMainFrame->m_strMainGroupID);
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS2_DEL , pDelSend , lSize );
|
||
|
||
|
||
|
||
|
||
/*
|
||
m_AdoRS.Open(_T("delete from paddress") ); //先删除所有记录
|
||
m_AdoRS.Open(_T("paddress") , adCmdTable);
|
||
|
||
AdoRS.MoveFirst();
|
||
while ( !AdoRS.IsEOF() )
|
||
{
|
||
PAddress Address={0};
|
||
COleDateTime t;
|
||
AdoRS.GetCollect( _T("UserID") , Address.lUserID);
|
||
AdoRS.GetCollect( _T("UserType") , Address.szUserType);
|
||
AdoRS.GetCollect( _T("GroupID") , Address.szGroupID);
|
||
AdoRS.GetCollect( _T("Name") , Address.szName);
|
||
AdoRS.GetCollect( _T("NickName") , Address.szNickName);
|
||
AdoRS.GetCollect( _T("Sex") , Address.szSex);
|
||
AdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(Address.tBirthday);
|
||
AdoRS.GetCollect( _T("Ltd") , Address.szLtd);
|
||
AdoRS.GetCollect( _T("Addr") , Address.szAddress);
|
||
AdoRS.GetCollect( _T("Job") , Address.szJob);
|
||
AdoRS.GetCollect( _T("Tel") , Address.szTel);
|
||
AdoRS.GetCollect( _T("Fax") , Address.szFax);
|
||
AdoRS.GetCollect( _T("Email") , Address.szEmail);
|
||
AdoRS.GetCollect( _T("Mobile") , Address.szMobile);
|
||
AdoRS.GetCollect( _T("QQ") , Address.szQQ);
|
||
AdoRS.GetCollect( _T("CreateTime"), t); t.GetAsSystemTime(Address.tCreateTime);
|
||
AdoRS.GetCollect( _T("BZ") , Address.szBZ);
|
||
|
||
m_AdoRS.AddNew();
|
||
//m_AdoRS.PutCollect( _T("UserID") , Address.lUserID);
|
||
m_AdoRS.PutCollect( _T("UserType") , Address.szUserType);
|
||
m_AdoRS.PutCollect( _T("GroupID") , Address.szGroupID);
|
||
m_AdoRS.PutCollect( _T("Name") , Address.szName);
|
||
m_AdoRS.PutCollect( _T("NickName") , Address.szNickName);
|
||
m_AdoRS.PutCollect( _T("Sex") , Address.szSex);
|
||
m_AdoRS.PutCollect( _T("Birthday") , Address.tBirthday);
|
||
m_AdoRS.PutCollect( _T("Ltd") , Address.szLtd);
|
||
m_AdoRS.PutCollect( _T("Addr") , Address.szAddress);
|
||
m_AdoRS.PutCollect( _T("Job") , Address.szJob);
|
||
m_AdoRS.PutCollect( _T("Tel") , Address.szTel);
|
||
m_AdoRS.PutCollect( _T("Fax") , Address.szFax);
|
||
m_AdoRS.PutCollect( _T("Email") , Address.szEmail);
|
||
m_AdoRS.PutCollect( _T("Mobile") , Address.szMobile);
|
||
m_AdoRS.PutCollect( _T("QQ") , Address.szQQ);
|
||
m_AdoRS.PutCollect( _T("CreateTime") , Address.tCreateTime);
|
||
m_AdoRS.PutCollect( _T("BZ") , Address.szBZ);
|
||
m_AdoRS.Update();
|
||
|
||
AdoRS.MoveNext();
|
||
lCount ++;
|
||
}
|
||
m_AdoRS.Close();
|
||
AdoRS.Close();
|
||
adoConnection.Close();
|
||
|
||
CString strTemp;
|
||
strTemp.Format( _T("备份通讯录成功,信息如下:\r\n文件名:%s\r\n记录数:%d") , strFileName,lCount );
|
||
MessageBox(strTemp , _T("信息") , MB_ICONINFORMATION );
|
||
On_User2_Refresh();
|
||
*/
|
||
}
|
||
void CFGAddress2::On_User_Export()
|
||
{
|
||
DLG_User_Inport2 dlg(this);
|
||
dlg.SetInport(&m_AdoRS,m_szGroupID,2,false);
|
||
dlg.SetOutportName(m_strGroupName);
|
||
dlg.DoModal();
|
||
}
|
||
void CFGAddress2::On_User_Refresh()
|
||
{
|
||
ShowUser( m_lUserID ); //刷新
|
||
}
|
||
|
||
void CFGAddress2::On_User_Copy()
|
||
{
|
||
if ( m_bFind2 ) //属于查询出来的用户,此操作无效
|
||
return ;
|
||
|
||
long lCount = m_wndList.GetSelectedCount();
|
||
if ( lCount<=0 )
|
||
return ;
|
||
|
||
m_Copy_UserID = m_lUserID;
|
||
_tcscpy(m_Copy_GroupID,m_szGroupID);
|
||
m_Copy_Count = lCount;
|
||
if ( m_Copy_Data )
|
||
{
|
||
delete m_Copy_Data;
|
||
m_Copy_Data = NULL;
|
||
}
|
||
if ( m_Copy_Data )
|
||
{
|
||
delete m_Copy_Data;m_Copy_Data=NULL;
|
||
}
|
||
m_Copy_Data = new ANS_GAddress22_SeeData[lCount];
|
||
memset(m_Copy_Data,0,sizeof(ANS_GAddress22_SeeData)*lCount);
|
||
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
long i = 0;
|
||
long lItem=0;
|
||
long lUserID=0;
|
||
while(pos)
|
||
{
|
||
lItem = m_wndList.GetNextSelectedItem(pos);
|
||
lUserID = m_wndList.GetItemData(lItem);
|
||
m_Copy_Data[i] = GetUserData2(lUserID);
|
||
i ++;
|
||
}
|
||
m_Copy_Count = i;
|
||
m_Copy_Type = GADDRESS2_COPYTYPE_COPY;
|
||
}
|
||
void CFGAddress2::On_User_Cut()
|
||
{
|
||
On_User_Copy();
|
||
m_Copy_Type = GADDRESS2_COPYTYPE_CUT;
|
||
}
|
||
void CFGAddress2::On_User_Paste()
|
||
{
|
||
//if (m_bFind2 || m_lUserID==m_Copy_UserID || m_Copy_Count<=0) //不符合条件
|
||
// return ;
|
||
|
||
if (m_bFind2 || m_Copy_Count<=0 || (m_lUserID==m_Copy_UserID && m_Copy_Type==GADDRESS2_COPYTYPE_CUT) ) //不符合条件
|
||
return ;
|
||
|
||
CString str;
|
||
//向服务器发送请求,告知用户已移动
|
||
long lSize = sizeof(REQ_GAddress2_User_Move)+sizeof(REQ_GAddress2_User_Move_Data)*m_Copy_Count;
|
||
BYTE * pData = new BYTE[lSize];
|
||
memset(pData,0,lSize);
|
||
REQ_GAddress2_User_Move * pMove = (REQ_GAddress2_User_Move *)pData;
|
||
REQ_GAddress2_User_Move_Data * pMoveData = (REQ_GAddress2_User_Move_Data *)(pData+sizeof(REQ_GAddress2_User_Move));
|
||
pMove->lCount = m_Copy_Count;
|
||
pMove->lMoveType = 0; //移动
|
||
if ( m_Copy_Type == GADDRESS2_COPYTYPE_COPY )
|
||
pMove->lMoveType = 1; //复制
|
||
_tcscpy(pMove->szTagGroup , m_szGroupID);
|
||
for ( int i=0 ; i<m_Copy_Count;i++ )
|
||
{
|
||
pMoveData->lUserID = m_Copy_Data[i].lUserID;
|
||
pMoveData ++;
|
||
}
|
||
this->m_pMainFrame->SendFrame(SMSFUNC_GADDRESS2_USER_MOVE,pData,lSize);
|
||
}
|
||
|
||
void CFGAddress2::On_User_Log()
|
||
{
|
||
if ( !m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_SEE) )
|
||
{
|
||
return ;
|
||
}
|
||
long lItem = GetCurrentSelected();
|
||
if ( lItem < 0 )
|
||
return ;
|
||
|
||
long lUserID = m_wndList.GetItemData( lItem );
|
||
PAddress Address = GetUserData(lUserID);
|
||
|
||
//CString strMobile = m_wndList.GetItemText(lItem,3);
|
||
CString strMobile = Address.szMobile;
|
||
|
||
DLG_User_Log dlg(this);
|
||
dlg.SetHideNum(m_pMainFrame->GetUserPurview_HideNum());
|
||
dlg.SetParam(&m_AdoRS,strMobile);
|
||
dlg.DoModal();
|
||
}
|
||
|
||
|
||
long CFGAddress2::GetCurrentSelected()
|
||
{
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
if ( pos )
|
||
{
|
||
return m_wndList.GetNextSelectedItem(pos);
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
BOOL CFGAddress2::isLockItem(long lItem, BOOL bShowWarning)
|
||
{
|
||
BOOL b = (m_wndList.GetIconIndex(lItem) == 3);
|
||
if ( b && bShowWarning )
|
||
{
|
||
MessageBox( _T("正录被锁定,请等待服务器返回后再操作!") , _T("锁定中") , MB_ICONINFORMATION );
|
||
}
|
||
return b;
|
||
}
|
||
|
||
void CFGAddress2::SetLockItem(long lItem, BOOL bLock)
|
||
{
|
||
if ( bLock )
|
||
m_wndList.SetIconIndex( lItem , 3 );
|
||
else
|
||
{
|
||
m_wndList.SetIconIndex( lItem , 2 ); //用未知性别
|
||
}
|
||
}
|
||
|
||
void CFGAddress2::ShowRMenu()
|
||
{
|
||
if (!m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_SEE,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_GADDRESS_ADD,false) && !m_bFind2 )
|
||
{
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_ADDADDR, _T(" 添加通讯录 ") );
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_ADDGROUP, _T(" 添加用户组 ") );
|
||
}
|
||
else
|
||
{
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_ADDADDR, _T(" 添加通讯录 ") );
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_ADDGROUP , _T(" 添加用户组 ") );
|
||
}
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
//修改
|
||
if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_MODIFY,false) && lItem >=0 && !bLock)
|
||
{
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_MODIFY, _T(" 修 改 ") );
|
||
}
|
||
else
|
||
{
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_MODIFY , _T(" 修 改 ") );
|
||
}
|
||
//删除
|
||
if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_DEL,false) && lItem >=0 && !bLock )
|
||
{
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_DEL, _T(" 删 除 ") );
|
||
}
|
||
else
|
||
{
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_DEL , _T(" 删 除 ") );
|
||
}
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
//发送短信
|
||
if ( m_pMainFrame->GetUserPurview(PURVIEW_SENDG,false) && lItem >=0 && !bLock )
|
||
{
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_ADDTOLIST, _T(" 发送短信 ") );
|
||
#ifdef SUPPER_FUNC_FAX
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_ADDTOLIST_FAX, _T(" 发送传真 ") );
|
||
#endif
|
||
#ifdef SUPPER_FUNC_MMS
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_ADDTOLIST_MMS, _T(" 发送彩信 ") );
|
||
#endif
|
||
}
|
||
else
|
||
{
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_ADDTOLIST , _T(" 发送短信 ") );
|
||
#ifdef SUPPER_FUNC_FAX
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_ADDTOLIST_FAX, _T(" 发送传真 ") );
|
||
#endif
|
||
#ifdef SUPPER_FUNC_MMS
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_ADDTOLIST_MMS, _T(" 发送彩信 ") );
|
||
#endif
|
||
|
||
}
|
||
#ifdef SUPPER_UBOX
|
||
BOOL bUBox = m_pMainFrame->m_Setup.bSDK & SDK_UBOX ? true:false;
|
||
CMenu popMenuUBox;
|
||
popMenuUBox.CreatePopupMenu();
|
||
menu.AppendMenu( MF_STRING|MF_POPUP,(UINT)popMenuUBox.GetSafeHmenu(), _T(" 拨打电话") );
|
||
PAddress address={0};
|
||
m_lCurUserID = 0;
|
||
if ( lItem>=0 )
|
||
m_lCurUserID=m_wndList.GetItemData(lItem);
|
||
if ( m_lCurUserID>0 )
|
||
address = this->GetUserData(m_lCurUserID);
|
||
m_strCurName = address.szName;
|
||
m_strCurMobile = address.szMobile;
|
||
m_strCurTel = address.szTel;
|
||
|
||
CString str;
|
||
str.Format(_T(" 拨打手机:%s") , m_strCurMobile );
|
||
if ( bUBox && m_strCurMobile.GetLength()>0 )
|
||
{
|
||
popMenuUBox.AppendMenu(MF_STRING , MENU_GADDRESS2_UBOX_MOBILE, str );
|
||
}
|
||
else
|
||
{
|
||
popMenuUBox.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_UBOX_MOBILE, str );
|
||
}
|
||
str.Format(_T(" 拨打电话:%s") , m_strCurTel );
|
||
if ( bUBox && m_strCurTel.GetLength()>0 )
|
||
{
|
||
popMenuUBox.AppendMenu(MF_STRING , MENU_GADDRESS2_UBOX_TEL, str );
|
||
}
|
||
else
|
||
{
|
||
popMenuUBox.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_UBOX_TEL, str );
|
||
}
|
||
|
||
popMenuUBox.AppendMenu(MF_SEPARATOR );
|
||
|
||
if ( bUBox )
|
||
{
|
||
popMenuUBox.AppendMenu(MF_STRING , MENU_GADDRESS2_UBOX_LOG, _T(" 通话日志") );
|
||
}
|
||
else
|
||
{
|
||
popMenuUBox.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_UBOX_LOG, _T(" 通话日志") );
|
||
}
|
||
|
||
|
||
#endif
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
|
||
//if ( !m_bFind2 )
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_FIND, _T(" 查找... ") );
|
||
//else
|
||
// menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_FIND, _T(" 查找... ") );
|
||
|
||
if ( lItem >=0 )
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_LOG, _T(" 收发日志... ") );
|
||
else
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_LOG, _T(" 收发日志... ") );
|
||
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
if ( lItem >=0 && !m_bFind2 )
|
||
{
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_COPY , _T(" 复 制 ") );
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_CUT , _T(" 剪 切 ") );
|
||
}
|
||
else
|
||
{
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_CUT , _T(" 剪 切 ") );
|
||
}
|
||
|
||
//if (!m_bFind2 && m_lUserID!=m_Copy_UserID&&m_Copy_Count>0)
|
||
if (!m_bFind2 && m_Copy_Count>0 && !(m_lUserID==m_Copy_UserID && m_Copy_Type==GADDRESS2_COPYTYPE_CUT))
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_PASTE , _T(" 粘 贴 ") );
|
||
else
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_PASTE , _T(" 粘 贴 ") );
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
//导入用户
|
||
if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_ADD,false) && !m_bFind2 )
|
||
{
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_INPORT, _T(" 导入通讯录 ") );
|
||
}
|
||
else
|
||
{
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_INPORT , _T(" 导入通讯录 ") );
|
||
}
|
||
//导出用户
|
||
if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_MODIFY,false) )
|
||
{
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_EXPORT, _T(" 导出通讯录 ") );
|
||
}
|
||
else
|
||
{
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS2_EXPORT , _T(" 导出通讯录 ") );
|
||
}
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
//刷新
|
||
menu.AppendMenu(MF_STRING , MENU_GADDRESS2_REFRESH, _T(" 刷 新 ") );
|
||
|
||
//显示菜单
|
||
POINT pt ;
|
||
::GetCursorPos( &pt );
|
||
//this->ClientToScreen( &pt);
|
||
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
|
||
menu.DestroyMenu();
|
||
}
|
||
|
||
PAddress CFGAddress2::GetUserData(long lUserID)
|
||
{
|
||
PAddress Address={0};
|
||
TCHAR szSelect[128]={0};
|
||
_stprintf( szSelect , _T("Select * from gaddress where UserID=%d AND UserType='1' ") , lUserID );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if ( b && m_AdoRS.GetRecordCount() )
|
||
{
|
||
COleDateTime t;
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect( _T("UserID") , Address.lUserID);
|
||
m_AdoRS.GetCollect( _T("UserType") , Address.szUserType);
|
||
m_AdoRS.GetCollect( _T("GroupID") , Address.szGroupID);
|
||
m_AdoRS.GetCollect( _T("Name") , Address.szName);
|
||
m_AdoRS.GetCollect( _T("NickName") , Address.szNickName);
|
||
m_AdoRS.GetCollect( _T("Sex") , Address.szSex);
|
||
m_AdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(Address.tBirthday);
|
||
m_AdoRS.GetCollect( _T("LTD") , Address.szLtd);
|
||
m_AdoRS.GetCollect( _T("Job") , Address.szJob);
|
||
m_AdoRS.GetCollect( _T("Addr") , Address.szAddress);
|
||
m_AdoRS.GetCollect( _T("Tel") , Address.szTel);
|
||
m_AdoRS.GetCollect( _T("Fax") , Address.szFax);
|
||
m_AdoRS.GetCollect( _T("Email") , Address.szEmail);
|
||
m_AdoRS.GetCollect( _T("Mobile") , Address.szMobile);
|
||
m_AdoRS.GetCollect( _T("QQ") , Address.szQQ);
|
||
m_AdoRS.GetCollect( _T("CreateTime"), t); t.GetAsSystemTime(Address.tCreateTime);
|
||
m_AdoRS.GetCollect( _T("BZ") , Address.szBZ);
|
||
}
|
||
|
||
return Address;
|
||
}
|
||
|
||
void CFGAddress2::OnDblclkGaddressList(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
On_User_Modify();
|
||
|
||
*pResult = 0;
|
||
}
|
||
|
||
|
||
BOOL CFGAddress2::ProcessSocket(Socket_Head *pHead)
|
||
{
|
||
CString str;
|
||
//修改公用地址本
|
||
if (pHead->lFuncType == SMSFUNC_GADDRESS22_MODIFY)
|
||
{
|
||
ANS_GAddress22_Modify * pModify = (ANS_GAddress22_Modify *)pHead->pFrame;
|
||
ANS_GAddress22_SeeData * pData = (ANS_GAddress22_SeeData *)(pHead->pFrame+sizeof(ANS_GAddress22_Modify));
|
||
SetLockItem( pModify->lItem , false ); //解锁
|
||
if ( pModify->lCount == 1 ) //等于1时表示修改成功
|
||
{
|
||
long lUserID = m_wndList.GetItemData(pModify->lItem);
|
||
if ( lUserID == pData->lUserID )
|
||
{
|
||
long lIcon = 2;
|
||
if ( _tcscmp( pData->szSex,_T("男"))==0 )
|
||
lIcon = 0;
|
||
if ( _tcscmp( pData->szSex,_T("女"))==0 )
|
||
lIcon = 1;
|
||
m_wndList.SetIconIndex(pModify->lItem,lIcon);
|
||
m_wndList.SetItemText(pModify->lItem,1, pData->szName );
|
||
m_wndList.SetItemText(pModify->lItem,2, pData->szNickName );
|
||
m_wndList.SetItemText(pModify->lItem,3, pData->szMobile );
|
||
m_wndList.SetItemText(pModify->lItem,4, pData->szTel );
|
||
#ifdef MOBSET_OEM_YTLE
|
||
m_wndList.SetItemText(pModify->lItem,5, pData->szFax );
|
||
#else
|
||
COleDateTime t(pData->tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(pModify->lItem,5, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(pModify->lItem,5, _T("") );
|
||
}
|
||
#endif
|
||
m_wndList.SetItemText(pModify->lItem,6, pData->szLTD );
|
||
m_wndList.SetItemText(pModify->lItem,7, pData->szJob );
|
||
m_wndList.SetItemText(pModify->lItem,8, pData->szEmail );
|
||
#ifdef MOBSET_OEM_YTLE
|
||
COleDateTime t(pData->tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(pModify->lItem,9, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(pModify->lItem,9, _T("") );
|
||
}
|
||
m_wndList.SetItemText(pModify->lItem,10, pData->szBZ );
|
||
#endif
|
||
#ifdef SHOWBZ_VER
|
||
m_wndList.SetItemText(pModify->lItem,9, pData->szBZ );
|
||
#endif
|
||
|
||
}
|
||
//将新的数据写入本地数据库
|
||
TCHAR szSelect[128]={0};
|
||
_stprintf( szSelect , _T("select * from gaddress where UserID=%d ") , pData->lUserID );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if ( b && !m_AdoRS.IsEOF() )
|
||
{
|
||
m_AdoRS.PutCollect(_T("GroupID") ,pData->szGroupID);
|
||
m_AdoRS.PutCollect(_T("Name") ,pData->szName );
|
||
m_AdoRS.PutCollect(_T("NickName") ,pData->szNickName );
|
||
m_AdoRS.PutCollect(_T("Sex") ,pData->szSex );
|
||
m_AdoRS.PutCollect(_T("Birthday") ,pData->tBirthday );
|
||
m_AdoRS.PutCollect(_T("LTD") ,pData->szLTD );
|
||
m_AdoRS.PutCollect(_T("Job") ,pData->szJob );
|
||
m_AdoRS.PutCollect(_T("Addr") ,pData->szAddr );
|
||
m_AdoRS.PutCollect(_T("Tel") ,pData->szTel );
|
||
m_AdoRS.PutCollect(_T("Fax") ,pData->szFax );
|
||
m_AdoRS.PutCollect(_T("Mobile") ,pData->szMobile );
|
||
m_AdoRS.PutCollect(_T("Email") ,pData->szEmail );
|
||
m_AdoRS.PutCollect(_T("QQ") ,pData->szQQ );
|
||
m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ);
|
||
m_AdoRS.Update();
|
||
m_AdoRS.Close();
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户
|
||
if (pHead->lFuncType == SMSFUNC_GADDRESS22_ADD)
|
||
{
|
||
ANS_GAddress22_Add * pAdd = (ANS_GAddress22_Add *)pHead->pFrame;
|
||
ANS_GAddress22_SeeData * pData = (ANS_GAddress22_SeeData *)(pHead->pFrame+sizeof(ANS_GAddress22_Add));
|
||
if ( pAdd->lCount == 1 && pData->lUserID >0) //等于1时表示修改成功
|
||
{
|
||
if ( !m_bReBack )
|
||
{
|
||
long lCount = m_wndList.GetItemCount();
|
||
TCHAR Buf[32];
|
||
//设置新的数据
|
||
//m_wndList.SetHeadings(_T("序号,50;登录名,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;"));
|
||
m_wndList.InsertItem( lCount , _itot(lCount+1,Buf,10)); //序号
|
||
long lIcon = 2;
|
||
if ( _tcscmp( pData->szSex,_T("男"))==0 )
|
||
lIcon = 0;
|
||
if ( _tcscmp( pData->szSex,_T("女"))==0 )
|
||
lIcon = 1;
|
||
m_wndList.SetIconIndex(lCount,lIcon);
|
||
m_wndList.SetItemData( lCount , pData->lUserID );
|
||
|
||
m_wndList.SetItemText(lCount,1, pData->szName );
|
||
m_wndList.SetItemText(lCount,2, pData->szNickName );
|
||
m_wndList.SetItemText(lCount,3, pData->szMobile );
|
||
m_wndList.SetItemText(lCount,4, pData->szTel );
|
||
COleDateTime t(pData->tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(lCount,5, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(lCount,5, _T("") );
|
||
}
|
||
m_wndList.SetItemText(lCount,6, pData->szLTD );
|
||
m_wndList.SetItemText(lCount,7, pData->szJob );
|
||
m_wndList.SetItemText(lCount,8, pData->szEmail );
|
||
#ifdef SHOWBZ_VER
|
||
m_wndList.SetItemText(lCount,9, pData->szBZ );
|
||
#endif
|
||
|
||
}
|
||
|
||
|
||
//添加到数据库里
|
||
BOOL b = m_AdoRS.Open( _T("gaddress") , adCmdTable );
|
||
if ( b )
|
||
{
|
||
m_AdoRS.AddNew();
|
||
m_AdoRS.PutCollect(_T("UserID") ,pData->lUserID);
|
||
m_AdoRS.PutCollect(_T("UserType") ,pData->szUserType);
|
||
m_AdoRS.PutCollect(_T("GroupID") ,pData->szGroupID);
|
||
m_AdoRS.PutCollect(_T("Name") ,pData->szName );
|
||
m_AdoRS.PutCollect(_T("NickName") ,pData->szNickName );
|
||
m_AdoRS.PutCollect(_T("Sex") ,pData->szSex );
|
||
m_AdoRS.PutCollect(_T("Birthday") ,pData->tBirthday );
|
||
m_AdoRS.PutCollect(_T("LTD") ,pData->szLTD );
|
||
m_AdoRS.PutCollect(_T("Job") ,pData->szJob );
|
||
m_AdoRS.PutCollect(_T("Addr") ,pData->szAddr );
|
||
m_AdoRS.PutCollect(_T("Tel") ,pData->szTel );
|
||
m_AdoRS.PutCollect(_T("Fax") ,pData->szFax );
|
||
m_AdoRS.PutCollect(_T("Mobile") ,pData->szMobile );
|
||
m_AdoRS.PutCollect(_T("Email") ,pData->szEmail );
|
||
m_AdoRS.PutCollect(_T("QQ") ,pData->szQQ );
|
||
m_AdoRS.PutCollect(_T("CreateTime") ,pData->tCreateTime);
|
||
m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ);
|
||
m_AdoRS.Update();
|
||
}
|
||
m_AdoRS.Close();
|
||
}
|
||
if ( m_bReBack )
|
||
{
|
||
m_lReBackIndex ++;
|
||
m_DLGGetUser.SetProcess( m_lReBackCount , m_lReBackIndex );
|
||
ReBack_Next();
|
||
}
|
||
if ( m_bInUser ) //是导入用户,需要显示进度条,并导入下一条
|
||
{
|
||
m_lInUserIndex ++;
|
||
m_DLGGetUser.SetProcess( m_lInUserCount , m_lInUserIndex );
|
||
Inport_Next();
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//删除用户
|
||
if (pHead->lFuncType == SMSFUNC_GADDRESS2_DEL)
|
||
{
|
||
ANS_GAddress2_Del * pDel = (ANS_GAddress2_Del *)pHead->pFrame;
|
||
ANS_GAddress2_DelData * pDelData = (ANS_GAddress2_DelData *)(pHead->pFrame+sizeof(ANS_GAddress2_Del));
|
||
if ( pDel->lCount == -100 ) //删除通迅录
|
||
{
|
||
m_AdoRS.Open( _T("delete from gaddress") ); //清空本地数据
|
||
m_AdoRS.Close();
|
||
m_bReBack = true;
|
||
m_DLGGetUser.SetProcessTitle( _T("正在上传地址本,请稍候...") );
|
||
//发送添加地址本信息
|
||
m_BAdoRS.MoveFirst();
|
||
ReBack_Next();
|
||
//启动进度条
|
||
m_DLGGetUser.DoModal();
|
||
m_bReBack = false; //不正在导入地址本
|
||
m_pMainFrame->ReadGAddress2(true);
|
||
return true;
|
||
}
|
||
m_wndList.ShowWindow( SW_HIDE ); //为了加快显示速度
|
||
for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
|
||
{
|
||
if ( pDelData[i].lItem >= 0 )
|
||
{
|
||
long lUserID = m_wndList.GetItemData(pDelData[i].lItem);
|
||
if ( pDelData[i].lUserID && lUserID == pDelData[i].lUserID) //删除成功
|
||
{
|
||
m_wndList.DeleteItem(pDelData[i].lItem); //从ListCtrl中删除
|
||
//从数据库中删除
|
||
TCHAR szSelect[128]={0};
|
||
_stprintf( szSelect , _T("delete from gaddress where UserID=%d ") ,pDelData[i].lUserID );
|
||
m_AdoRS.Open( szSelect );
|
||
m_AdoRS.Close();
|
||
}
|
||
else
|
||
{
|
||
this->SetLockItem( pDelData[i].lItem , false ); //解锁
|
||
}
|
||
}
|
||
}
|
||
m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度
|
||
return true;
|
||
}
|
||
//添加用户组
|
||
if (pHead->lFuncType == SMSFUNC_GADDRESS2_GROUP_ADD)
|
||
{
|
||
ANS_GAddress2_Group_Add * pAdd = (ANS_GAddress2_Group_Add *)pHead->pFrame;
|
||
ANS_GAddress2_Group_AddData * pData = (ANS_GAddress2_Group_AddData *)(pHead->pFrame+sizeof(ANS_GAddress2_Group_Add));
|
||
if ( pAdd->lCount == 1 && pData->lUserID >0) //等于1时表示添加成功
|
||
{
|
||
//添加到树
|
||
if ( !m_bReBack )
|
||
{
|
||
m_pFuncView->AddGGroup2( pData->szGroupName , m_lUserID , pData->lUserID );
|
||
}
|
||
if ( m_bUpLoad )
|
||
{
|
||
m_bUpLoad = false;
|
||
m_bReBack = true;
|
||
m_strTagGroupID = pData->szGroupID;
|
||
m_DLGGetUser.SetProcessTitle( _T("正在上传地址本,请稍候...") );
|
||
//发送添加地址本信息
|
||
if ( m_lReBackCount>1 && !isAddressFull() )
|
||
{
|
||
m_BAdoRS.MoveFirst();
|
||
ReBack_Next();
|
||
//启动进度条
|
||
m_DLGGetUser.DoModal();
|
||
}
|
||
m_bReBack = false; //不正在导入地址本
|
||
m_pMainFrame->ReadGAddress2(true);
|
||
return true;
|
||
}
|
||
|
||
//添加到数据库里
|
||
BOOL b = m_AdoRS.Open( _T("gaddress") , adCmdTable );
|
||
if ( b )
|
||
{
|
||
m_AdoRS.AddNew();
|
||
m_AdoRS.PutCollect(_T("UserID") ,pData->lUserID);
|
||
m_AdoRS.PutCollect(_T("UserType") ,_T("0") ); //用户组
|
||
m_AdoRS.PutCollect(_T("GroupID") ,pData->szGroupID);
|
||
m_AdoRS.PutCollect(_T("Name") ,pData->szGroupName );
|
||
m_AdoRS.PutCollect(_T("CreateTime") ,pData->tCreateTime);
|
||
m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ);
|
||
m_AdoRS.Update();
|
||
}
|
||
}
|
||
if ( m_bReBack )
|
||
{
|
||
m_lReBackIndex ++;
|
||
m_DLGGetUser.SetProcess( m_lReBackCount , m_lReBackIndex );
|
||
ReBack_Next();
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户组
|
||
if (pHead->lFuncType == SMSFUNC_GADDRESS2_USER_MOVE)
|
||
{
|
||
ANS_GAddress2_User_Move * pMove = (ANS_GAddress2_User_Move *)pHead->pFrame;
|
||
REQ_GAddress2_User_Move_Data * pMoveData = (REQ_GAddress2_User_Move_Data *)(pHead->pFrame+sizeof(ANS_GAddress2_User_Move));
|
||
if ( pMove->lCount>0 && pMove->lCount==m_Copy_Count) //等于1时表示添加成功
|
||
{
|
||
if ( pMove->lMoveType == 0 ) //剪切,直接更改组ID即可
|
||
{
|
||
for ( int i=0 ; i<pMove->lCount;i++ )
|
||
{
|
||
str.Format( _T("Update gaddress set GroupID='%s' where UserID=%d"),pMove->szTagGroup,pMoveData[i].lUserID );
|
||
m_AdoRS.Open(str);
|
||
m_AdoRS.Close();
|
||
}
|
||
}
|
||
|
||
if ( pMove->lMoveType == 1 ) //复制,
|
||
{
|
||
//添加到数据库里
|
||
BOOL b = m_AdoRS.Open( _T("gaddress") , adCmdTable );
|
||
if ( b )
|
||
{
|
||
for ( int i=0 ; i<pMove->lCount;i++ )
|
||
{
|
||
m_AdoRS.AddNew();
|
||
m_AdoRS.PutCollect(_T("UserID") ,pMoveData[i].lUserID);
|
||
m_AdoRS.PutCollect(_T("UserType") ,m_Copy_Data[i].szUserType);
|
||
m_AdoRS.PutCollect(_T("GroupID") ,pMove->szTagGroup);
|
||
m_AdoRS.PutCollect(_T("Name") ,m_Copy_Data[i].szName );
|
||
m_AdoRS.PutCollect(_T("NickName") ,m_Copy_Data[i].szNickName );
|
||
m_AdoRS.PutCollect(_T("Sex") ,m_Copy_Data[i].szSex );
|
||
m_AdoRS.PutCollect(_T("Birthday") ,m_Copy_Data[i].tBirthday );
|
||
m_AdoRS.PutCollect(_T("LTD") ,m_Copy_Data[i].szLTD );
|
||
m_AdoRS.PutCollect(_T("Job") ,m_Copy_Data[i].szJob );
|
||
m_AdoRS.PutCollect(_T("Addr") ,m_Copy_Data[i].szAddr );
|
||
m_AdoRS.PutCollect(_T("Tel") ,m_Copy_Data[i].szTel );
|
||
m_AdoRS.PutCollect(_T("Fax") ,m_Copy_Data[i].szFax );
|
||
m_AdoRS.PutCollect(_T("Mobile") ,m_Copy_Data[i].szMobile );
|
||
m_AdoRS.PutCollect(_T("Email") ,m_Copy_Data[i].szEmail );
|
||
m_AdoRS.PutCollect(_T("QQ") ,m_Copy_Data[i].szQQ );
|
||
m_AdoRS.PutCollect(_T("CreateTime") ,m_Copy_Data[i].tCreateTime);
|
||
m_AdoRS.PutCollect(_T("BZ") ,m_Copy_Data[i].szBZ);
|
||
m_AdoRS.Update();
|
||
m_AdoRS.GetCollect(_T("UserID") ,m_Copy_Data[i].lUserID ); //取得新添加的UserID
|
||
}
|
||
}
|
||
m_AdoRS.Close();
|
||
}
|
||
|
||
//显示出来
|
||
if (CString(pMove->szTagGroup) == CString(this->m_szGroupID) )
|
||
{
|
||
for ( int i=0 ; i<m_Copy_Count;i++ )
|
||
{
|
||
TCHAR szBuf[32]={0};
|
||
long lCount = m_wndList.GetItemCount();
|
||
m_wndList.InsertItem( lCount , _itot(lCount+1,szBuf,10)); //序号
|
||
long lIcon = 2;
|
||
if ( _tcscmp(m_Copy_Data[i].szSex,_T("男"))==0 )
|
||
lIcon = 0;
|
||
if ( _tcscmp(m_Copy_Data[i].szSex,_T("女"))==0 )
|
||
lIcon = 1;
|
||
m_wndList.SetIconIndex(lCount,lIcon);
|
||
m_wndList.SetItemData( lCount , m_Copy_Data[i].lUserID );
|
||
|
||
m_wndList.SetItemText(lCount,1, m_Copy_Data[i].szName );
|
||
m_wndList.SetItemText(lCount,2, m_Copy_Data[i].szNickName );
|
||
m_wndList.SetItemText(lCount,3, m_Copy_Data[i].szMobile );
|
||
m_wndList.SetItemText(lCount,4, m_Copy_Data[i].szTel );
|
||
COleDateTime t(m_Copy_Data[i].tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(lCount,5, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(lCount,5, _T("") );
|
||
}
|
||
m_wndList.SetItemText(lCount,6, m_Copy_Data[i].szLTD );
|
||
m_wndList.SetItemText(lCount,7, m_Copy_Data[i].szJob );
|
||
m_wndList.SetItemText(lCount,8, m_Copy_Data[i].szEmail );
|
||
#ifdef SHOWBZ_VER
|
||
m_wndList.SetItemText(lCount,9, m_Copy_Data[i].szBZ );
|
||
#endif
|
||
}
|
||
}
|
||
|
||
if ( m_Copy_Type == GADDRESS2_COPYTYPE_CUT )
|
||
{
|
||
//每次只允许一次操作
|
||
m_Copy_UserID = 0;
|
||
memset(m_Copy_GroupID,0,sizeof(m_Copy_GroupID));
|
||
m_Copy_Count = 0;
|
||
m_Copy_Type = 0;
|
||
if ( m_Copy_Data )
|
||
{
|
||
delete m_Copy_Data;
|
||
m_Copy_Data = NULL;
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
return false;
|
||
}
|
||
|
||
BOOL CFGAddress2::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
|
||
{
|
||
|
||
CString str;
|
||
//修改公用地址本
|
||
if (pHead->lFuncType == SMSFUNC_GADDRESS22_MODIFY)
|
||
{
|
||
ANS_GAddress22_Modify * pModify = (ANS_GAddress22_Modify *)pFrame;
|
||
ANS_GAddress22_SeeData * pData = (ANS_GAddress22_SeeData *)(pFrame+sizeof(ANS_GAddress22_Modify));
|
||
SetLockItem( pModify->lItem , false ); //解锁
|
||
if ( pModify->lCount == 1 ) //等于1时表示修改成功
|
||
{
|
||
long lUserID = m_wndList.GetItemData(pModify->lItem);
|
||
if ( lUserID == pData->lUserID )
|
||
{
|
||
long lIcon = 2;
|
||
if ( _tcscmp( pData->szSex,_T("男"))==0 )
|
||
lIcon = 0;
|
||
if ( _tcscmp( pData->szSex,_T("女"))==0 )
|
||
lIcon = 1;
|
||
m_wndList.SetIconIndex(pModify->lItem,lIcon);
|
||
m_wndList.SetItemText(pModify->lItem,1, pData->szName );
|
||
m_wndList.SetItemText(pModify->lItem,2, pData->szNickName );
|
||
m_wndList.SetItemText(pModify->lItem,3, pData->szMobile );
|
||
m_wndList.SetItemText(pModify->lItem,4, pData->szTel );
|
||
#ifdef MOBSET_OEM_YTLE
|
||
m_wndList.SetItemText(pModify->lItem,5, pData->szFax );
|
||
#else
|
||
COleDateTime t(pData->tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(pModify->lItem,5, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(pModify->lItem,5, _T("") );
|
||
}
|
||
#endif
|
||
m_wndList.SetItemText(pModify->lItem,6, pData->szLTD );
|
||
m_wndList.SetItemText(pModify->lItem,7, pData->szJob );
|
||
m_wndList.SetItemText(pModify->lItem,8, pData->szEmail );
|
||
#ifdef MOBSET_OEM_YTLE
|
||
COleDateTime t(pData->tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(pModify->lItem,9, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(pModify->lItem,9, _T("") );
|
||
}
|
||
m_wndList.SetItemText(pModify->lItem,10, pData->szBZ );
|
||
#endif
|
||
#ifdef SHOWBZ_VER
|
||
m_wndList.SetItemText(pModify->lItem,9, pData->szBZ );
|
||
#endif
|
||
|
||
}
|
||
//将新的数据写入本地数据库
|
||
TCHAR szSelect[128]={0};
|
||
_stprintf( szSelect , _T("select * from gaddress where UserID=%d ") , pData->lUserID );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if ( b && !m_AdoRS.IsEOF() )
|
||
{
|
||
m_AdoRS.PutCollect(_T("GroupID") ,pData->szGroupID);
|
||
m_AdoRS.PutCollect(_T("Name") ,pData->szName );
|
||
m_AdoRS.PutCollect(_T("NickName") ,pData->szNickName );
|
||
m_AdoRS.PutCollect(_T("Sex") ,pData->szSex );
|
||
m_AdoRS.PutCollect(_T("Birthday") ,pData->tBirthday );
|
||
m_AdoRS.PutCollect(_T("LTD") ,pData->szLTD );
|
||
m_AdoRS.PutCollect(_T("Job") ,pData->szJob );
|
||
m_AdoRS.PutCollect(_T("Addr") ,pData->szAddr );
|
||
m_AdoRS.PutCollect(_T("Tel") ,pData->szTel );
|
||
m_AdoRS.PutCollect(_T("Fax") ,pData->szFax );
|
||
m_AdoRS.PutCollect(_T("Mobile") ,pData->szMobile );
|
||
m_AdoRS.PutCollect(_T("Email") ,pData->szEmail );
|
||
m_AdoRS.PutCollect(_T("QQ") ,pData->szQQ );
|
||
m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ);
|
||
m_AdoRS.Update();
|
||
m_AdoRS.Close();
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//添加用户
|
||
if (pHead->lFuncType == SMSFUNC_GADDRESS22_ADD)
|
||
{
|
||
ANS_GAddress22_Add * pAdd = (ANS_GAddress22_Add *)pFrame;
|
||
ANS_GAddress22_SeeData * pData = (ANS_GAddress22_SeeData *)(pFrame+sizeof(ANS_GAddress22_Add));
|
||
if ( pAdd->lCount == 1 && pData->lUserID >0) //等于1时表示修改成功
|
||
{
|
||
if ( !m_bReBack )
|
||
{
|
||
long lCount = m_wndList.GetItemCount();
|
||
TCHAR Buf[32];
|
||
//设置新的数据
|
||
//m_wndList.SetHeadings(_T("序号,50;登录名,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;"));
|
||
m_wndList.InsertItem( lCount , _itot(lCount+1,Buf,10)); //序号
|
||
long lIcon = 2;
|
||
if ( _tcscmp( pData->szSex,_T("男"))==0 )
|
||
lIcon = 0;
|
||
if ( _tcscmp( pData->szSex,_T("女"))==0 )
|
||
lIcon = 1;
|
||
m_wndList.SetIconIndex(lCount,lIcon);
|
||
m_wndList.SetItemData( lCount , pData->lUserID );
|
||
|
||
m_wndList.SetItemText(lCount,1, pData->szName );
|
||
m_wndList.SetItemText(lCount,2, pData->szNickName );
|
||
m_wndList.SetItemText(lCount,3, pData->szMobile );
|
||
m_wndList.SetItemText(lCount,4, pData->szTel );
|
||
COleDateTime t(pData->tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(lCount,5, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(lCount,5, _T("") );
|
||
}
|
||
m_wndList.SetItemText(lCount,6, pData->szLTD );
|
||
m_wndList.SetItemText(lCount,7, pData->szJob );
|
||
m_wndList.SetItemText(lCount,8, pData->szEmail );
|
||
#ifdef SHOWBZ_VER
|
||
m_wndList.SetItemText(lCount,9, pData->szBZ );
|
||
#endif
|
||
|
||
}
|
||
|
||
|
||
//添加到数据库里
|
||
BOOL b = m_AdoRS.Open( _T("gaddress") , adCmdTable );
|
||
if ( b )
|
||
{
|
||
m_AdoRS.AddNew();
|
||
m_AdoRS.PutCollect(_T("UserID") ,pData->lUserID);
|
||
m_AdoRS.PutCollect(_T("UserType") ,pData->szUserType);
|
||
m_AdoRS.PutCollect(_T("GroupID") ,pData->szGroupID);
|
||
m_AdoRS.PutCollect(_T("Name") ,pData->szName );
|
||
m_AdoRS.PutCollect(_T("NickName") ,pData->szNickName );
|
||
m_AdoRS.PutCollect(_T("Sex") ,pData->szSex );
|
||
m_AdoRS.PutCollect(_T("Birthday") ,pData->tBirthday );
|
||
m_AdoRS.PutCollect(_T("LTD") ,pData->szLTD );
|
||
m_AdoRS.PutCollect(_T("Job") ,pData->szJob );
|
||
m_AdoRS.PutCollect(_T("Addr") ,pData->szAddr );
|
||
m_AdoRS.PutCollect(_T("Tel") ,pData->szTel );
|
||
m_AdoRS.PutCollect(_T("Fax") ,pData->szFax );
|
||
m_AdoRS.PutCollect(_T("Mobile") ,pData->szMobile );
|
||
m_AdoRS.PutCollect(_T("Email") ,pData->szEmail );
|
||
m_AdoRS.PutCollect(_T("QQ") ,pData->szQQ );
|
||
m_AdoRS.PutCollect(_T("CreateTime") ,pData->tCreateTime);
|
||
m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ);
|
||
m_AdoRS.Update();
|
||
}
|
||
m_AdoRS.Close();
|
||
}
|
||
if ( m_bReBack )
|
||
{
|
||
m_lReBackIndex ++;
|
||
m_DLGGetUser.SetProcess( m_lReBackCount , m_lReBackIndex );
|
||
ReBack_Next();
|
||
}
|
||
if ( m_bInUser ) //是导入用户,需要显示进度条,并导入下一条
|
||
{
|
||
m_lInUserIndex ++;
|
||
m_DLGGetUser.SetProcess( m_lInUserCount , m_lInUserIndex );
|
||
Inport_Next();
|
||
}
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
void CFGAddress2::OnRclickGaddressList(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
ShowRMenu();
|
||
|
||
*pResult = 0;
|
||
}
|
||
|
||
void CFGAddress2::OnTimer(UINT_PTR nIDEvent)
|
||
{
|
||
CDialog::OnTimer(nIDEvent);
|
||
|
||
if ( nIDEvent == 1 )
|
||
{
|
||
KillTimer( 1 );
|
||
m_pFuncView = m_pMainFrame->m_pFuncView;
|
||
return ;
|
||
}
|
||
}
|
||
|
||
LRESULT CFGAddress2::On_List_DropBegin( WPARAM wParam , LPARAM lParam )
|
||
{
|
||
//看有没有发送公用地址本的权限
|
||
if ( !m_pMainFrame->GetUserPurview( PURVIEW_SENDG , false ) )
|
||
return false;
|
||
|
||
long lCount = m_wndList.GetSelectedCount();
|
||
if ( lCount <= 0 )
|
||
return false;
|
||
|
||
//分配数据
|
||
long lSize = sizeof(Send_User)*lCount+sizeof(long);
|
||
HGLOBAL hData = GlobalAlloc(GHND|GMEM_SHARE, lSize );
|
||
BYTE *pS = (BYTE *)GlobalLock( hData );
|
||
memset( pS , 0 , lSize );
|
||
long * plCount = (long *)pS;
|
||
Send_User * pUser = (Send_User * )(pS+sizeof(long));
|
||
*plCount = lCount; //数据总量
|
||
|
||
TCHAR szSelect[128]={0};
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
while ( pos )
|
||
{
|
||
long lItem = m_wndList.GetNextSelectedItem( pos );
|
||
long lUserID = m_wndList.GetItemData( lItem );
|
||
if ( lUserID > 0 )
|
||
{
|
||
_stprintf( szSelect , _T("select * from gaddress where UserID=%d"), lUserID );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if ( b && m_AdoRS.GetRecordCount() )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect( _T("Name") , pUser->szName);
|
||
m_AdoRS.GetCollect( _T("NickName") , pUser->szNickName);
|
||
m_AdoRS.GetCollect( _T("Mobile") , pUser->szMobile);
|
||
m_AdoRS.GetCollect( _T("BZ") , pUser->szBZ);
|
||
}
|
||
}
|
||
pUser ++;
|
||
}
|
||
GlobalUnlock( hData );
|
||
//设置数据
|
||
COleDataSource data ;
|
||
UINT iCF = ::RegisterClipboardFormat( _T("CORPSMS_USER") );
|
||
data.CacheGlobalData( iCF , hData );
|
||
|
||
CUserDropTarget::m_shWndTreeCtrl = NULL;
|
||
CUserDropTarget::m_lAddressType = -1;
|
||
|
||
// Begin Drag operation
|
||
DROPEFFECT dropeffect = data.DoDragDrop();
|
||
GlobalFree( hData );
|
||
|
||
return true;
|
||
}
|
||
|
||
void CFGAddress2::Inport_Next()
|
||
{
|
||
USES_CONVERSION;
|
||
if ( m_lInUserIndex >= m_lInUserCount ) //添加已完成
|
||
return ;
|
||
|
||
if ( isAddressFull() ) //通讯录已满
|
||
{
|
||
m_DLGGetUser.SetProcess( 1 , 1 ); //停止进度显示
|
||
return ;
|
||
}
|
||
|
||
|
||
long lSize = sizeof(REQ_GAddress22_Add)+sizeof(ANS_GAddress22_SeeData);
|
||
BYTE * pAddSent = new BYTE[lSize];memset(pAddSent,0,lSize);
|
||
REQ_GAddress22_Add * pAdd = (REQ_GAddress22_Add *)pAddSent; //头
|
||
ANS_GAddress22_SeeData * pAddData = (ANS_GAddress22_SeeData *)(pAddSent+sizeof(REQ_GAddress22_Add));
|
||
*pAddData = m_pInUser[m_lInUserIndex]; //取得数据
|
||
::GetLocalTime( &pAddData->tCreateTime );
|
||
_tcscpy(pAddData->szGroupID,m_szGroupID);
|
||
pAddData->lCorpID = m_pMainFrame->m_lCorpID;
|
||
pAddData->szUserType[0]='1'; //用户类型
|
||
|
||
|
||
|
||
pAdd->lCount = 1;
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS22_ADD , pAddSent , lSize );
|
||
}
|
||
|
||
void CFGAddress2::GetLocal(TCHAR *pLocal, TCHAR *pGroupID)
|
||
{
|
||
long lLen = _tcslen( pGroupID );
|
||
TCHAR szGroup[16]={0};
|
||
TCHAR szTemp[16]={0};
|
||
TCHAR szSelect[128]={0};
|
||
_stprintf( pLocal , _T("公用通讯录") );
|
||
|
||
m_strGroupName = pLocal;
|
||
for ( int i = 1 ; i<= lLen ; i++ )
|
||
{
|
||
_tcsncpy( szGroup , pGroupID , i );
|
||
_stprintf( szSelect , _T("select Name from gaddress where GroupID='%s' AND UserType='0' ") , szGroup );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if (b && !m_AdoRS.IsEOF())
|
||
{
|
||
m_AdoRS.GetCollect( _T("Name") , szTemp );
|
||
_tcscat( pLocal , _T("\\") );
|
||
_tcscat( pLocal , szTemp );
|
||
m_strGroupName = szTemp;
|
||
}
|
||
}
|
||
}
|
||
|
||
BOOL CFGAddress2::AddUser(PAddress user)
|
||
{
|
||
if ( isAddressFull() ) //通讯录已满
|
||
return false;
|
||
|
||
long lSize = sizeof(REQ_GAddress22_Add)+sizeof(ANS_GAddress22_SeeData);
|
||
BYTE * pAddSent = new BYTE[lSize];memset(pAddSent,0,lSize);
|
||
REQ_GAddress22_Add * pAdd = (REQ_GAddress22_Add *)pAddSent; //头
|
||
ANS_GAddress22_SeeData * pAddData = (ANS_GAddress22_SeeData *)(pAddSent+sizeof(REQ_GAddress22_Add));
|
||
pAddData->lUserID = user.lUserID;
|
||
_tcscpy(pAddData->szBZ , user.szBZ );
|
||
_tcscpy(pAddData->szEmail , user.szEmail );
|
||
_tcscpy(pAddData->szFax , user.szFax );
|
||
_tcscpy(pAddData->szGroupID , user.szGroupID );
|
||
_tcscpy(pAddData->szJob , user.szJob );
|
||
_tcscpy(pAddData->szAddr, user.szAddress );
|
||
_tcscpy(pAddData->szLTD , user.szLtd );
|
||
_tcscpy(pAddData->szMobile , user.szMobile );
|
||
_tcscpy(pAddData->szName , user.szName );
|
||
_tcscpy(pAddData->szNickName , user.szNickName );
|
||
_tcscpy(pAddData->szQQ , user.szQQ );
|
||
_tcscpy(pAddData->szSex , user.szSex );
|
||
_tcscpy(pAddData->szTel , user.szTel );
|
||
_tcscpy(pAddData->szUserType , user.szUserType );
|
||
pAddData->tBirthday = user.tBirthday;
|
||
::GetLocalTime( &pAddData->tCreateTime );
|
||
|
||
|
||
pAdd->lCount = 1;
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS22_ADD , pAddSent , lSize );
|
||
return true;
|
||
}
|
||
|
||
void CFGAddress2::OnKeydownGaddressList(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
|
||
*pResult = 0;
|
||
|
||
if ( pLVKeyDow->wVKey == VK_DELETE )
|
||
{
|
||
On_User_Del();
|
||
}
|
||
if ( pLVKeyDow->wVKey == VK_INSERT)
|
||
{
|
||
On_User_AddAddr();
|
||
}
|
||
if ( pLVKeyDow->wVKey == VK_SPACE)
|
||
{
|
||
On_User_Modify();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'S' || pLVKeyDow->wVKey == 's')
|
||
{
|
||
On_User_AddToList();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'G' || pLVKeyDow->wVKey == 'g')
|
||
{
|
||
On_User_AddGroup();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'F' || pLVKeyDow->wVKey == 'f')
|
||
{
|
||
On_User_Find();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'R' || pLVKeyDow->wVKey == 'r')
|
||
{
|
||
On_User_Refresh();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'L' || pLVKeyDow->wVKey == 'l')
|
||
{
|
||
On_User_Log();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'A' || pLVKeyDow->wVKey == 'a')
|
||
{
|
||
m_wndList.SelectAllItems();
|
||
}
|
||
//if ( pLVKeyDow->wVKey == 'C' || pLVKeyDow->wVKey == 'c')
|
||
//{
|
||
// On_User_Copy();
|
||
//}
|
||
if ( pLVKeyDow->wVKey == 'X' || pLVKeyDow->wVKey == 'x')
|
||
{
|
||
On_User_Cut();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'V' || pLVKeyDow->wVKey == 'v')
|
||
{
|
||
On_User_Paste();
|
||
}
|
||
}
|
||
|
||
|
||
void CFGAddress2::OnOK()
|
||
{
|
||
//CDialog::OnOK();
|
||
}
|
||
|
||
void CFGAddress2::OnCancel()
|
||
{
|
||
//CDialog::OnCancel();
|
||
}
|
||
|
||
void CFGAddress2::On_User_Find2(DLG_FindUser * pDlg)
|
||
{
|
||
CString str;
|
||
CString strFind;
|
||
|
||
|
||
if ( pDlg->m_bFindAll ) //查询所有组
|
||
{
|
||
m_bFind2 = true; //属于查询出来的用户,有些操作不能进行
|
||
memset(m_szGroupID,0,sizeof(m_szGroupID));
|
||
strFind = _T("select * from gaddress where 1<>1 ");
|
||
}
|
||
else
|
||
{
|
||
//查询本组
|
||
if ( _tcslen(m_szGroupID)>0 )
|
||
strFind.Format(_T("select * from gaddress where GroupID='%s' and ( 1<>1 "),m_szGroupID);
|
||
else
|
||
strFind.Format(_T("select * from gaddress where (GroupID='' or GroupID is null) and ( 1<>1 "),m_szGroupID);
|
||
}
|
||
|
||
if ( pDlg->m_bName ) //name
|
||
{
|
||
str.Format(_T(" or name like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( pDlg->m_bNickName )//nickname
|
||
{
|
||
str.Format(_T(" or nickname like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( pDlg->m_bSex )//sex
|
||
{
|
||
str.Format(_T(" or sex like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( pDlg->m_bLTD ) //LTD
|
||
{
|
||
str.Format(_T(" or LTD like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( pDlg->m_bJob ) //job
|
||
{
|
||
str.Format(_T(" or job like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( pDlg->m_bTel ) //Tel
|
||
{
|
||
str.Format(_T(" or tel like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( pDlg->m_bMobile ) //Mobile
|
||
{
|
||
str.Format(_T(" or mobile like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( pDlg->m_bEmail ) //Email
|
||
{
|
||
str.Format(_T(" or email like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( pDlg->m_bBZ ) //BZ
|
||
{
|
||
str.Format(_T(" or BZ like '%%%s%%' "),pDlg->m_strMsg);
|
||
strFind += str;
|
||
}
|
||
if ( !pDlg->m_bFindAll )
|
||
{
|
||
strFind += _T(" )");
|
||
}
|
||
m_wndList.ShowWindow ( SW_HIDE ); //加快显示速度
|
||
m_wndList.DeleteAllItems();
|
||
|
||
TCHAR szBuf[32]={0};
|
||
BOOL b = m_AdoRS.Open( strFind );
|
||
long lCount = m_AdoRS.GetRecordCount();
|
||
if ( b && lCount )
|
||
{
|
||
COleDateTime t;
|
||
m_AdoRS.MoveFirst();
|
||
for ( int i = 0 ; i< lCount ; i++ )
|
||
{
|
||
ANS_GAddress22_SeeData user={0};
|
||
|
||
m_AdoRS.GetCollect( _T("UserID") , user.lUserID);
|
||
m_AdoRS.GetCollect( _T("UserType") , user.szUserType);
|
||
m_AdoRS.GetCollect( _T("GroupID") , user.szGroupID);
|
||
m_AdoRS.GetCollect( _T("Name") , user.szName);
|
||
m_AdoRS.GetCollect( _T("NickName") , user.szNickName);
|
||
m_AdoRS.GetCollect( _T("Sex") , user.szSex);
|
||
m_AdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(user.tBirthday);
|
||
m_AdoRS.GetCollect( _T("LTD") , user.szLTD);
|
||
m_AdoRS.GetCollect( _T("Job") , user.szJob);
|
||
m_AdoRS.GetCollect( _T("Addr") , user.szAddr);
|
||
m_AdoRS.GetCollect( _T("Tel") , user.szTel);
|
||
m_AdoRS.GetCollect( _T("Fax") , user.szFax);
|
||
m_AdoRS.GetCollect( _T("Email") , user.szEmail);
|
||
m_AdoRS.GetCollect( _T("Mobile") , user.szMobile);
|
||
m_AdoRS.GetCollect( _T("QQ") , user.szQQ);
|
||
m_AdoRS.GetCollect( _T("CreateTime"), t);t.GetAsSystemTime(user.tCreateTime);
|
||
m_AdoRS.GetCollect( _T("BZ") , user.szBZ);
|
||
|
||
m_AdoRS.MoveNext();
|
||
|
||
if ( this->m_pMainFrame->GetUserPurview_HideNum() )
|
||
{
|
||
user.szMobile[4]='*';
|
||
user.szMobile[5]='*';
|
||
user.szMobile[6]='*';
|
||
user.szMobile[7]='*';
|
||
//user.szMobile[8]='*';
|
||
}
|
||
|
||
//m_wndList.SetHeadings(_T("序号,50;登录名,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;"));
|
||
m_wndList.InsertItem( i , _itot(i+1,szBuf,10)); //序号
|
||
long lIcon = 2;
|
||
if ( _tcscmp( user.szSex,_T("男"))==0 )
|
||
lIcon = 0;
|
||
if ( _tcscmp( user.szSex,_T("女"))==0 )
|
||
lIcon = 1;
|
||
m_wndList.SetIconIndex(i,lIcon);
|
||
m_wndList.SetItemData( i , user.lUserID );
|
||
|
||
m_wndList.SetItemText(i,1, user.szName );
|
||
m_wndList.SetItemText(i,2, user.szNickName );
|
||
m_wndList.SetItemText(i,3, user.szMobile );
|
||
m_wndList.SetItemText(i,4, user.szTel );
|
||
COleDateTime t(user.tBirthday);
|
||
if ( t.GetStatus()==COleDateTime::valid )
|
||
{
|
||
str.Format( _T("%04d.%02d.%02d"),t.GetYear(),t.GetMonth(),t.GetDay());
|
||
m_wndList.SetItemText(i,5, str );
|
||
}
|
||
else
|
||
{
|
||
m_wndList.SetItemText(i,5, _T("") );
|
||
}
|
||
m_wndList.SetItemText(i,6, user.szLTD );
|
||
m_wndList.SetItemText(i,7, user.szJob );
|
||
m_wndList.SetItemText(i,8, user.szEmail );
|
||
#ifdef SHOWBZ_VER
|
||
m_wndList.SetItemText(i,9, user.szBZ );
|
||
#endif
|
||
|
||
}
|
||
}
|
||
else
|
||
{
|
||
MessageBox( _T("对不起,没有找到相应的记录,请重新查询!"),_T("信息"),MB_ICONINFORMATION);
|
||
}
|
||
m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度
|
||
}
|
||
|
||
void CFGAddress2::OnDestroy()
|
||
{
|
||
|
||
CDialog::OnDestroy();
|
||
|
||
if ( m_Copy_Data )
|
||
{
|
||
delete m_Copy_Data;
|
||
m_Copy_Data = NULL;
|
||
}
|
||
|
||
if ( m_pInUser )
|
||
{delete m_pInUser;m_pInUser=NULL;};
|
||
|
||
}
|
||
|
||
BOOL CFGAddress2::isAddressFull(BOOL bTip)
|
||
{
|
||
long lCount=0;
|
||
CString str=_T("select count(*) as abc from gaddress");
|
||
if ( m_AdoRS.Open( str ) && m_AdoRS.GetRecordCount()>0 )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect(_T("abc"), lCount );
|
||
m_AdoRS.Close();
|
||
}
|
||
|
||
if ( lCount<m_pMainFrame->GetMaxAddressCount() )
|
||
return false;
|
||
|
||
|
||
if ( bTip )
|
||
{
|
||
MessageBox( _T("你的公用通讯录容量已达上限,不能继续添加,请联系服务提供商!") , _T("错误") , MB_ICONWARNING );
|
||
}
|
||
return true;
|
||
}
|
||
|
||
ANS_GAddress22_SeeData CFGAddress2::GetUserData2(long lUserID)
|
||
{
|
||
ANS_GAddress22_SeeData Address={0};
|
||
TCHAR szSelect[128]={0};
|
||
_stprintf( szSelect , _T("Select * from gaddress where UserID=%d AND UserType='1' ") , lUserID );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if ( b && m_AdoRS.GetRecordCount() )
|
||
{
|
||
COleDateTime t;
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect( _T("UserID") , Address.lUserID);
|
||
m_AdoRS.GetCollect( _T("UserType") , Address.szUserType);
|
||
m_AdoRS.GetCollect( _T("GroupID") , Address.szGroupID);
|
||
m_AdoRS.GetCollect( _T("Name") , Address.szName);
|
||
m_AdoRS.GetCollect( _T("NickName") , Address.szNickName);
|
||
m_AdoRS.GetCollect( _T("Sex") , Address.szSex);
|
||
m_AdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(Address.tBirthday);
|
||
m_AdoRS.GetCollect( _T("LTD") , Address.szLTD);
|
||
m_AdoRS.GetCollect( _T("Job") , Address.szJob);
|
||
m_AdoRS.GetCollect( _T("Addr") , Address.szAddr);
|
||
m_AdoRS.GetCollect( _T("Tel") , Address.szTel);
|
||
m_AdoRS.GetCollect( _T("Fax") , Address.szFax);
|
||
m_AdoRS.GetCollect( _T("Email") , Address.szEmail);
|
||
m_AdoRS.GetCollect( _T("Mobile") , Address.szMobile);
|
||
m_AdoRS.GetCollect( _T("QQ") , Address.szQQ);
|
||
m_AdoRS.GetCollect( _T("CreateTime"), t); t.GetAsSystemTime(Address.tCreateTime);
|
||
m_AdoRS.GetCollect( _T("BZ") , Address.szBZ);
|
||
}
|
||
|
||
return Address;
|
||
}
|
||
|
||
void CFGAddress2::ReBack_Next()
|
||
{
|
||
USES_CONVERSION;
|
||
if ( m_lReBackIndex >= m_lReBackCount ) //添加已完成
|
||
{
|
||
return ;
|
||
}
|
||
|
||
if ( m_BAdoRS.IsEOF() )
|
||
{
|
||
return ;
|
||
}
|
||
|
||
if ( isAddressFull() ) //通讯录已满
|
||
{
|
||
if ( m_DLGGetUser.IsWindowVisible() )
|
||
m_DLGGetUser.SetProcess( 1 , 1 ); //停止进度显示
|
||
return ;
|
||
}
|
||
|
||
//取通迅录数据
|
||
COleDateTime t;
|
||
ANS_GAddress22_SeeData Address={0};
|
||
m_BAdoRS.GetCollect( _T("UserID") , Address.lUserID);
|
||
m_BAdoRS.GetCollect( _T("UserType") , Address.szUserType);
|
||
m_BAdoRS.GetCollect( _T("GroupID") , Address.szGroupID);
|
||
m_BAdoRS.GetCollect( _T("Name") , Address.szName);
|
||
m_BAdoRS.GetCollect( _T("NickName") , Address.szNickName);
|
||
m_BAdoRS.GetCollect( _T("Sex") , Address.szSex);
|
||
m_BAdoRS.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(Address.tBirthday);
|
||
m_BAdoRS.GetCollect( _T("LTD") , Address.szLTD);
|
||
m_BAdoRS.GetCollect( _T("Job") , Address.szJob);
|
||
m_BAdoRS.GetCollect( _T("Addr") , Address.szAddr);
|
||
m_BAdoRS.GetCollect( _T("Tel") , Address.szTel);
|
||
m_BAdoRS.GetCollect( _T("Fax") , Address.szFax);
|
||
m_BAdoRS.GetCollect( _T("Email") , Address.szEmail);
|
||
m_BAdoRS.GetCollect( _T("Mobile") , Address.szMobile);
|
||
m_BAdoRS.GetCollect( _T("QQ") , Address.szQQ);
|
||
m_BAdoRS.GetCollect( _T("CreateTime"), t); t.GetAsSystemTime(Address.tCreateTime);
|
||
m_BAdoRS.GetCollect( _T("BZ") , Address.szBZ);
|
||
|
||
if ( m_lReBackType == 0 ) //恢复通迅录
|
||
{
|
||
if ( m_pMainFrame->m_lMainGroupID>0 && m_pMainFrame->m_strMainGroupID.GetLength()>0 )
|
||
{
|
||
TCHAR szTemp[32]={0};
|
||
_stprintf(szTemp, _T("%s%s") , m_pMainFrame->m_strMainGroupID , Address.szGroupID );
|
||
_tcscpy(Address.szGroupID,szTemp);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//上传通迅录
|
||
if ( Address.lUserID == m_lSrcGroupID )
|
||
{
|
||
m_lReBackIndex ++;
|
||
m_BAdoRS.MoveNext();
|
||
ReBack_Next();
|
||
return ;
|
||
}
|
||
//改变用户组
|
||
CString strTemp = Address.szGroupID;
|
||
strTemp.Replace( m_strSrcGroupID , m_strTagGroupID );
|
||
_tcscpy( Address.szGroupID , strTemp );
|
||
|
||
}
|
||
|
||
if ( Address.szUserType[0] == '0' )
|
||
{ //导入用户组
|
||
long lSize = sizeof(REQ_GAddress2_Group_Add)+sizeof(ANS_GAddress2_Group_AddData);
|
||
BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize);
|
||
REQ_GAddress2_Group_Add * pAdd = (REQ_GAddress2_Group_Add *)pAddData; //头
|
||
ANS_GAddress2_Group_AddData * pGAdd = (ANS_GAddress2_Group_AddData *)(pAddData+sizeof(REQ_GAddress2_Group_Add));
|
||
pAdd->bReBack = true;
|
||
pAdd->lCorpID = m_pMainFrame->m_lCorpID;
|
||
pAdd->lCount = 1;
|
||
pGAdd->lUserID = Address.lUserID;
|
||
_tcscpy(pGAdd->szBZ , Address.szBZ );
|
||
_tcscpy(pGAdd->szCreateUser , Address.szCreateUser );
|
||
_tcscpy(pGAdd->szGroupID , Address.szGroupID );
|
||
_tcscpy(pGAdd->szGroupName , Address.szName );
|
||
pGAdd->tCreateTime = Address.tCreateTime;
|
||
pAdd->lCorpID= m_pMainFrame->m_lCorpID;
|
||
pAdd->lCount = 1;
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS2_GROUP_ADD , pAddData , lSize );
|
||
|
||
}
|
||
else
|
||
{
|
||
//导入用户
|
||
long lSize = sizeof(REQ_GAddress22_Add)+sizeof(ANS_GAddress22_SeeData);
|
||
BYTE * pAddSent = new BYTE[lSize];memset(pAddSent,0,lSize);
|
||
REQ_GAddress22_Add * pAdd = (REQ_GAddress22_Add *)pAddSent; //头
|
||
ANS_GAddress22_SeeData * pAddData = (ANS_GAddress22_SeeData *)(pAddSent+sizeof(REQ_GAddress22_Add));
|
||
*pAddData = Address; //取得数据
|
||
pAdd->lCount = 1;
|
||
pAdd->bReBack= true;
|
||
pAddData->lCorpID = m_pMainFrame->m_lCorpID;
|
||
pAddData->szUserType[0]='1'; //用户类型
|
||
pAdd->lCount = 1;
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS22_ADD , pAddSent , lSize );
|
||
}
|
||
|
||
m_BAdoRS.MoveNext();
|
||
}
|
||
|
||
void CFGAddress2::On_User_UpLoad(ANS_GAddress_Group_AddData GAdd)
|
||
{
|
||
if ( isAddressFull() ) //通讯录已满
|
||
{
|
||
return ;
|
||
}
|
||
|
||
m_lSrcGroupID = GAdd.lUserID;
|
||
m_strSrcGroupID = GAdd.szGroupID;
|
||
|
||
m_bUpLoad = true;
|
||
m_lReBackType = 1;
|
||
|
||
CString str;
|
||
m_BAdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection ); //设置连接
|
||
//查找相同组名的,开始重新编号
|
||
CString strName[100];
|
||
long lNameCount=0;
|
||
str.Format( _T("select * from gaddress where GroupID like '_' and UserType='0' and name like '%s%%'") , GAdd.szGroupName );
|
||
if ( m_BAdoRS.Open(str) && !m_BAdoRS.IsEOF() )
|
||
{
|
||
while ( !m_BAdoRS.IsEOF() )
|
||
{
|
||
m_BAdoRS.GetCollect( _T("Name") , strName[lNameCount] );
|
||
m_BAdoRS.MoveNext();
|
||
lNameCount ++;
|
||
}
|
||
}
|
||
if ( lNameCount>0 ) //有同名的文件,开始重新编号
|
||
{
|
||
CString strTempName=GAdd.szGroupName;
|
||
for ( int i=1 ; i<100 ; i++ )
|
||
{
|
||
_stprintf(GAdd.szGroupName, _T("%s%d") , strTempName , i );
|
||
for ( int j=0 ; j<lNameCount ; j++ )
|
||
{
|
||
if ( CString(GAdd.szGroupName) == strName[j] )
|
||
break;
|
||
}
|
||
if ( j>=lNameCount )
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
long lCount = 0;
|
||
str.Format( _T("select * from paddress where GroupID like '%s%%' order by GroupID,usertype"),m_strSrcGroupID );
|
||
m_BAdoRS.Open(str);
|
||
m_lReBackCount=m_BAdoRS.GetRecordCount();
|
||
m_lReBackIndex=0;
|
||
str.Format( _T("需要上传的通迅录共有%d条记录,是否继续?"),m_lReBackCount-1 );
|
||
int iRet = MessageBox(str , _T("确认") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
|
||
if ( iRet != IDYES )
|
||
return ;
|
||
|
||
m_pFuncView->SelectMainGAddress2();
|
||
|
||
long lSize = sizeof(REQ_GAddress2_Group_Add)+sizeof(ANS_GAddress2_Group_AddData);
|
||
BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize);
|
||
REQ_GAddress2_Group_Add * pAdd = (REQ_GAddress2_Group_Add *)pAddData; //头
|
||
ANS_GAddress2_Group_AddData * pGAdd = (ANS_GAddress2_Group_AddData *)(pAddData+sizeof(REQ_GAddress2_Group_Add));
|
||
_tcscpy(pGAdd->szBZ , GAdd.szBZ );
|
||
_tcscpy(pGAdd->szGroupID , m_pMainFrame->m_strMainGroupID ); //只能上传到根目录
|
||
_tcscpy(pGAdd->szGroupName , GAdd.szGroupName );
|
||
::GetLocalTime( &pGAdd->tCreateTime );
|
||
pAdd->lCorpID= m_pMainFrame->m_lCorpID;
|
||
pAdd->lCount = 1;
|
||
m_pMainFrame->SendFrame( SMSFUNC_GADDRESS2_GROUP_ADD , pAddData , lSize );
|
||
|
||
return ;
|
||
}
|
||
|
||
void CFGAddress2::On_User_UBox_Mobile()
|
||
{
|
||
#ifdef SUPPER_UBOX
|
||
if ( m_lCurUserID<=0 )
|
||
return ;
|
||
if ( m_strCurMobile.GetLength()<=0 )
|
||
return;
|
||
|
||
m_pMainFrame->m_DlgUBoxDial.SetDialNumber(m_strCurMobile);
|
||
#endif
|
||
}
|
||
|
||
void CFGAddress2::On_User_UBox_Tel()
|
||
{
|
||
#ifdef SUPPER_UBOX
|
||
if ( m_lCurUserID<=0 )
|
||
return ;
|
||
if ( m_strCurTel.GetLength()<=0 )
|
||
return;
|
||
|
||
m_pMainFrame->m_DlgUBoxDial.SetDialNumber(m_strCurTel);
|
||
#endif
|
||
}
|
||
|
||
void CFGAddress2::On_User_UBox_Log()
|
||
{
|
||
if ( m_lCurUserID<=0 )
|
||
return ;
|
||
|
||
REQ_UBox_GetLog2 * pGetLog = new REQ_UBox_GetLog2;
|
||
memset(pGetLog , 0 , sizeof(REQ_UBox_GetLog2));
|
||
|
||
pGetLog->lCorpID = m_pMainFrame->m_lCorpID;
|
||
pGetLog->lUserID = m_pMainFrame->m_lUserID;
|
||
_tcscpy(pGetLog->szKH_Name , m_strCurName );
|
||
pGetLog->lAddressType = 0; //公用通讯录
|
||
pGetLog->lKH_UserID = m_lCurUserID;
|
||
|
||
m_pMainFrame->SendFrame(SMSFUNC_UBOX_GETLOG2,(BYTE*)pGetLog,sizeof(REQ_UBox_GetLog2));
|
||
}
|