// FGAddress.cpp : implementation file // #include "stdafx.h" #include "CorpSms.h" #include "FGAddress.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CFGAddress 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" CFGAddress::CFGAddress(CWnd* pParent /*=NULL*/) : CDialog(CFGAddress::IDD, pParent) { //{{AFX_DATA_INIT(CFGAddress) // 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_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; } void CFGAddress::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CFGAddress) DDX_Control(pDX, IDC_GADDRESS_LIST, m_wndList); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CFGAddress, CDialog) //{{AFX_MSG_MAP(CFGAddress) ON_WM_SIZE() ON_NOTIFY(NM_DBLCLK, IDC_GADDRESS_LIST, OnDblclkGaddressList) ON_NOTIFY(NM_RCLICK, IDC_GADDRESS_LIST, OnRclickGaddressList) ON_WM_TIMER() ON_NOTIFY(LVN_KEYDOWN, IDC_GADDRESS_LIST, OnKeydownGaddressList) ON_WM_DESTROY() //}}AFX_MSG_MAP ON_MESSAGE( LIST_DROP_BEGIN , On_List_DropBegin ) ON_COMMAND( MENU_GADDRESS_ADD , On_User_Add) ON_COMMAND( MENU_GADDRESS_ADDADDR, On_User_AddAddr) ON_COMMAND( MENU_GADDRESS_ADDGROUP , On_User_AddGroup) ON_COMMAND( MENU_GADDRESS_MODIFY , On_User_Modify) ON_COMMAND( MENU_GADDRESS_DEL , On_User_Del) ON_COMMAND( MENU_GADDRESS_FIND , On_User_Find) ON_COMMAND( MENU_GADDRESS_ADDTOLIST , On_User_AddToList) ON_COMMAND( MENU_GADDRESS_ADDTOLIST_FAX , On_User_AddToList_Fax) ON_COMMAND( MENU_GADDRESS_ADDTOLIST_MMS , On_User_AddToList_Mms) ON_COMMAND( MENU_GADDRESS_INPORT , On_User_Inport) ON_COMMAND( MENU_GADDRESS_EXPORT , On_User_Export) ON_COMMAND( MENU_GADDRESS_REFRESH, On_User_Refresh) ON_COMMAND( MENU_GADDRESS_LOG , On_User_Log) ON_COMMAND( MENU_GADDRESS_CUT , On_User_Cut) ON_COMMAND( MENU_GADDRESS_PASTE , On_User_Paste) ON_COMMAND(MENU_GADDRESS_MODIFYUSED, On_User_ModifyUsed) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFGAddress message handlers BOOL CFGAddress::OnInitDialog() { CDialog::OnInitDialog(); //取得共用参数 //CMainFrame * pFrame = static_cast ((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_USERM) ); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_USERW) ); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_USERN) ); //分不清性别的,不给图标 m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) ); m_wndList.SubClassWindow2(); #ifdef SUPPER_FUNC_MMS #ifdef SHOWBZ_VER m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;可用彩信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;备注,120;")); #else m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;可用彩信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;")); #endif #else #ifdef SHOWBZ_VER m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;备注,120;")); #else m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,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 CFGAddress::ReHide() { ShowWindow( SW_HIDE ); return true; } BOOL CFGAddress::ReShow(BOOL bRefresh) { ShowWindow( SW_SHOW ); if ( bRefresh || !m_bRefresh ) { RefreshInfo(); } return true; } BOOL CFGAddress::RefreshInfo() { return true; } void CFGAddress::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); if ( m_bInit ) { m_wndList.MoveWindow( 0 , 0 , cx,cy); } } long CFGAddress::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 users 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 users where GroupID is null or len(GroupID)=0 and UserType='1' order by UserID") ); //查找此组下的用户 else _stprintf( szSelect , _T("Select * from users 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; CString str; m_AdoRS.MoveFirst(); for ( int i = 0 ; i< lCount ; i++ ) { ANS_GAddress_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("Job") , user.szJob); 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("Email") , user.szEmail); m_AdoRS.GetCollect( _T("LoginName") , user.szLoginName); m_AdoRS.GetCollect( _T("PurviewType"), user.ulPurviewType); m_AdoRS.GetCollect( _T("Purview") , user.ulPurview); m_AdoRS.GetCollect( _T("LoginCount") , user.lLoginCount); m_AdoRS.GetCollect( _T("SMSNum") , user.szSMSNum); m_AdoRS.GetCollect( _T("LoginTime") , t); t.GetAsSystemTime(user.tLoginTime); m_AdoRS.GetCollect( _T("SMSUsed") , user.lSMSUsed); m_AdoRS.GetCollect( _T("SMSSendAll") , user.lSMSSendAll); m_AdoRS.GetCollect( _T("MmsUsed") , user.lMmsUsed); m_AdoRS.GetCollect( _T("MmsSendAll") , user.lMmsSendAll); //m_AdoRS.GetCollect( _T("OvrTime"), t); t.GetAsSystemTime(user.tOvrTime); m_AdoRS.GetCollect( _T("CreateUser") , user.szCreateUser); m_AdoRS.GetCollect( _T("CreateTime") , t);t.GetAsSystemTime(user.tCreateTime); m_AdoRS.GetCollect( _T("BZ") , user.szBZ); m_AdoRS.GetCollect( _T("AccessGroup") , user.lAccessGroupID); m_AdoRS.MoveNext(); //m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;已发短信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;")); m_wndList.InsertItem( i , _itot(i+1,szSelect,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 ); long lTemp=1; m_wndList.SetItemText(i,lTemp++, user.szLoginName ); m_wndList.SetItemText(i,lTemp++, user.szSMSNum ); if ( user.lSMSUsed == -100 ) str = _T(" 无限制"); else str.Format( _T("%8d"),user.lSMSUsed ); m_wndList.SetItemText(i,lTemp++, str ); #ifdef SUPPER_FUNC_MMS if ( user.lMmsUsed == -100 ) str = _T(" 无限制"); else str.Format( _T("%8d"),user.lMmsUsed ); m_wndList.SetItemText(i,lTemp++, str ); #endif switch(user.ulPurviewType) { case PURVIEWTYPE_ADMIN: str = _T("系统管理员"); break; case PURVIEWTYPE_KF: str = _T("客户服务员"); break; case PURVIEWTYPE_USERS: str = _T("一般员工"); break; case PURVIEWTYPE_INPUT: str = _T("资料录入员"); break; case PURVIEWTYPE_ADDRESS: default: str = _T("纯通讯录"); break; } m_wndList.SetItemText(i,lTemp++, str ); str.Format( _T("%8d"),user.lLoginCount ); m_wndList.SetItemText(i,lTemp++, str ); m_wndList.SetItemText(i,lTemp++, user.szName ); m_wndList.SetItemText(i,lTemp++, user.szNickName ); m_wndList.SetItemText(i,lTemp++, user.szMobile ); m_wndList.SetItemText(i,lTemp++, 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,lTemp++, str ); } else { m_wndList.SetItemText(i,lTemp++, _T("") ); } m_wndList.SetItemText(i,lTemp++, user.szJob ); m_wndList.SetItemText(i,lTemp++, user.szEmail ); #ifdef SHOWBZ_VER m_wndList.SetItemText(i,lTemp++, user.szBZ ); #endif } //return lCount; } m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度 return 0; } void CFGAddress::On_User_Add() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) ) { return ; } if ( m_bFind2 ) //属于查询出来的用户,此操作无效 return ; if ( isAddressFull() ) //通讯录已满 return ; // if ( m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFY,false ) && //要有修改权限与修改权限的权限才能打开专业的用户修改栏 // m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFYPURVIEW,false ) ) // { ANS_GAddress_SeeData Address={0}; _tcscpy(Address.szGroupID,m_szGroupID); Address.lCorpID = m_pMainFrame->m_lCorpID; //Address.ulPurviewType = m_pMainFrame->m_ulPurviewType; //Address.ulPurview = m_pMainFrame->m_ulPurview; //权限与自己的相同 //Address.ulPurviewType = PURVIEWTYPE_ADDRESS; //资料录入员仅能添加纯电话本的地址 //Address.ulPurview = 0; //没有任何权限 Address.ulPurviewType = PURVIEWTYPE_KF; Address.ulPurview=PURVIEW_LOGIN|PURVIEW_SENDG|PURVIEW_SENDP|PURVIEW_RECVP|PURVIEW_GADDRESS_SEE|PURVIEW_PADDRESS|PURVIEW_SMSEMAIL|PURVIEW_CALENDAR|PURVIEW_SMSSP; Address.szUserType[0]='1'; //用户类型 DLG_User_Modify dlg(this); dlg.SetParam( Address,m_pMainFrame->m_ulPurviewType,m_pMainFrame->m_ulPurview,Address.lCorpID,m_pMainFrame->m_lUserID,m_pMainFrame->m_strLoginIP,m_szLocal,true); dlg.DoModal(); /* } else { ANS_GAddress_SeeData Address={0}; _tcscpy(Address.szGroupID,m_szGroupID); Address.lCorpID = m_pMainFrame->m_lCorpID; Address.ulPurviewType = PURVIEWTYPE_ADDRESS; //资料录入员仅能添加纯电话本的地址 Address.ulPurview = 0; //没有任何权限 Address.szUserType[0]='1'; //用户类型 DLG_User_Modify2 dlg(this); dlg.SetParam( Address,m_pMainFrame->m_ulPurview,m_szLocal,true); dlg.DoModal(); } */ } void CFGAddress::On_User_AddAddr() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) ) { return ; } /* if ( m_bFind2 ) //属于查询出来的用户,此操作无效 return ; if ( isAddressFull() ) //通讯录已满 return ; ANS_GAddress_SeeData Address={0}; _tcscpy(Address.szGroupID,m_szGroupID); Address.lCorpID = m_pMainFrame->m_lCorpID; Address.ulPurviewType = PURVIEWTYPE_ADDRESS; //资料录入员仅能添加纯电话本的地址 Address.ulPurview = 0; //没有任何权限 Address.szUserType[0]='1'; //用户类型 DLG_User_Modify2 dlg(this); dlg.SetParam( Address,m_pMainFrame->m_ulPurview,m_szLocal,true); dlg.DoModal(); */ } void CFGAddress::On_User_AddGroup() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) ) { 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 users 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 ; jm_pCurUser->szUser ); ::GetLocalTime( &GAdd.tCreateTime ); DLG_Group_Modify dlg(this); dlg.SetParam( GAdd,m_szLocal,_T("users") ); if ( dlg.DoModal() == IDOK ) { long lSize = sizeof(REQ_GAddress_Group_Add)+sizeof(ANS_GAddress_Group_AddData); BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize); REQ_GAddress_Group_Add * pAdd = (REQ_GAddress_Group_Add *)pAddData; //头 ANS_GAddress_Group_AddData * pGAdd = (ANS_GAddress_Group_AddData *)(pAddData+sizeof(REQ_GAddress_Group_Add)); *pGAdd = dlg.GetParam(); pAdd->lCorpID= m_pMainFrame->m_lCorpID; pAdd->lCount = 1; m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_GROUP_ADD , pAddData , lSize ); } } void CFGAddress::On_User_Modify() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) ) { return ; } long lItem = GetCurrentSelected(); if ( lItem < 0 ) return ; if (isLockItem(lItem)) { return ; } long lUserID = m_wndList.GetItemData( lItem ); ANS_GAddress_SeeData Address = GetUserData(lUserID); if ( _tcslen(Address.szLoginName)>0 && Address.ulPurviewType == PURVIEWTYPE_ADMIN ) //要删除管理员 { if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MODIFY,false) ) //没有删除管理员的权限 { MessageBox(_T("对不起,你没有权限修改管理员帐号!") , _T("警告") , MB_ICONWARNING ); return ; } } // if (_tcslen(Address.szName) >0 || _tcslen(Address.szLoginName)) // { // if ( m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFY,false ) && //要有修改权限与修改权限的权限才能打开专业的用户修改栏 // m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFYPURVIEW,false ) ) // { DLG_User_Modify dlg(this); TCHAR szLocal[128]={0}; GetLocal(szLocal,Address.szGroupID); //取用户所在组位置 dlg.SetParam(Address,m_pMainFrame->m_ulPurviewType,m_pMainFrame->m_ulPurview,m_pMainFrame->m_lCorpID,m_pMainFrame->m_lUserID,m_pMainFrame->m_strLoginIP,szLocal,false); if ( dlg.DoModal() == IDOK ) { SetLockItem( lItem ,true); long lSize = sizeof(REQ_GAddress_Modify)+sizeof(ANS_GAddress_SeeData); BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize); REQ_GAddress_Modify * pModify = (REQ_GAddress_Modify *)pModifyData; //头 ANS_GAddress_SeeData * pAddress = (ANS_GAddress_SeeData *)(pModifyData+sizeof(REQ_GAddress_Modify)); *pAddress = dlg.GetParam(); pModify->lCorpID= m_pMainFrame->m_lCorpID; pModify->lItem = lItem; pModify->lCount = 1; m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_MODIFY , pModifyData , lSize ); } /* } else { //只能打开一般的修改窗口 DLG_User_Modify2 dlg(this); dlg.SetParam(Address,m_pMainFrame->m_ulPurview,m_szLocal,false); if ( dlg.DoModal() == IDOK ) { SetLockItem( lItem ,true); long lSize = sizeof(REQ_GAddress_Modify)+sizeof(ANS_GAddress_SeeData); BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize); REQ_GAddress_Modify * pModify = (REQ_GAddress_Modify *)pModifyData; //头 ANS_GAddress_SeeData * pAddress = (ANS_GAddress_SeeData *)(pModifyData+sizeof(REQ_GAddress_Modify)); *pAddress = dlg.GetParam(); pModify->lCorpID= m_pMainFrame->m_lCorpID; pModify->lItem = lItem; pModify->lCount = 1; m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_MODIFY , pModifyData , lSize ); } } } */ } void CFGAddress::On_User_Del() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER) ) { 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_GAddress_Del)+sizeof(ANS_GAddress_DelData)*lCount; BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize); REQ_GAddress_Del * pDel = (REQ_GAddress_Del *)pDelSend; //头 ANS_GAddress_DelData * pDelData = (ANS_GAddress_DelData *)(pDelSend+sizeof(REQ_GAddress_Del)); pDel->lCount = lCount; POSITION pos = m_wndList.GetFirstSelectedItemPosition(); while(pos) { long lItem = m_wndList.GetNextSelectedItem(pos); long lUserID = m_wndList.GetItemData(lItem); ANS_GAddress_SeeData Address = GetUserData(lUserID); 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 ( _tcslen(Address.szLoginName)>0 && Address.ulPurviewType == PURVIEWTYPE_ADMIN ) //要删除管理员 { if ( !m_pMainFrame->GetUserPurview(PURVIEW_USER_MODIFY,false) ) //没有删除管理员的权限 { CString str; str.Format( _T("要删除的用户中包含管理员帐号:%s,无法删除!"),Address.szLoginName); MessageBox(str,_T("提示"),MB_ICONINFORMATION); continue; } else { CString str; str.Format( _T("要删除的用户中包含管理员帐号:%s,是否真的删除此帐号?"),Address.szLoginName); long lRet = MessageBox(str,_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_GADDRESS_DEL , pDelSend , lSize ); } void CFGAddress::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 CFGAddress::On_User_AddToList() { On_User_AddToList_Public(0); } void CFGAddress::On_User_AddToList_Fax() { On_User_AddToList_Public(1); } void CFGAddress::On_User_AddToList_Mms() { On_User_AddToList_Public(2); } void CFGAddress::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 users 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 CFGAddress::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),1); //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_GAddress_SeeData[m_lInUserCount]; memset(m_pInUser,0,sizeof(ANS_GAddress_SeeData)*m_lInUserCount); POSITION pos = dlg.m_User.GetHeadPosition(); long i = 0; while (pos) { PAddress pAddress = *dlg.m_User.GetNext( pos ); m_pInUser[i].ulPurviewType = PURVIEWTYPE_ADDRESS; _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].szJob , pAddress.szJob); _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 CFGAddress::On_User_Export() { DLG_User_Inport2 dlg(this); dlg.SetInport(&m_AdoRS,m_szGroupID,false,false); dlg.SetOutportName(m_strGroupName); dlg.DoModal(); } void CFGAddress::On_User_Refresh() { ShowUser( m_lUserID ); //刷新 } void CFGAddress::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; } m_Copy_Data = new ANS_GAddress_SeeData[lCount]; memset(m_Copy_Data,0,sizeof(ANS_GAddress_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] = GetUserData(lUserID); i ++; } m_Copy_Count = i; m_Copy_Type = GADDRESS_COPYTYPE_COPY; } void CFGAddress::On_User_Cut() { On_User_Copy(); m_Copy_Type = GADDRESS_COPYTYPE_CUT; } void CFGAddress::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==GADDRESS_COPYTYPE_CUT) ) //不符合条件 return ; CString str; if ( m_Copy_Type == GADDRESS_COPYTYPE_CUT ) //剪切,直接更改组ID即可 { for ( int i=0 ; ilCount = m_Copy_Count; _tcscpy(pMove->szTagGroup , m_szGroupID); for ( i=0 ; ilUserID = m_Copy_Data[i].lUserID; pMoveData ++; } this->m_pMainFrame->SendFrame(SMSFUNC_GADDRESS_USER_MOVE,pData,lSize); } /* else { if ( m_AdoRS.Open("users",adCmdTable) ) { for ( int i=0 ; iGetUserPurview(PURVIEW_USER_MANAGER) ) { return ; } long lItem = GetCurrentSelected(); if ( lItem < 0 ) return ; CString strMobile = m_wndList.GetItemText(lItem,8); DLG_User_Log dlg(this); dlg.SetParam(&m_AdoRS,strMobile); dlg.DoModal(); } long CFGAddress::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndList.GetNextSelectedItem(pos); } return -1; } BOOL CFGAddress::isLockItem(long lItem, BOOL bShowWarning) { BOOL b = (m_wndList.GetIconIndex(lItem) == 3); if ( b && bShowWarning ) { MessageBox( _T("正录被锁定,请等待服务器返回后再操作!") , _T("锁定中") , MB_ICONINFORMATION ); } return b; } void CFGAddress::SetLockItem(long lItem, BOOL bLock) { if ( bLock ) m_wndList.SetIconIndex( lItem , 3 ); else { m_wndList.SetIconIndex( lItem , 2 ); //这里无法分出男女,用中性的表示 } } void CFGAddress::ShowRMenu() { if (!m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER,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 ) { if ( m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFY,false ) && //要有修改权限与修改权限的权限才能打开专业的用户修改栏 m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_MODIFYPURVIEW,false ) ) { */ menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADD , _T(" 添加登录帐号 ") ); /* } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADD , _T(" 添加登录帐号 ") ); } //menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDADDR, _T(" 添加通讯录 ") ); menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDGROUP, _T(" 添加用户组 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADD , _T(" 添加登录帐号 ") ); //menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDADDR, _T(" 添加通讯录 ") ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDGROUP , _T(" 添加用户组 ") ); } */ menu.AppendMenu(MF_SEPARATOR ); //修改 if ( m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER,false) && lItem >=0 && !bLock) { menu.AppendMenu(MF_STRING , MENU_GADDRESS_MODIFY, _T(" 修 改 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_MODIFY , _T(" 修 改 ") ); } //删除 if ( m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER,false) && lItem >=0 && !bLock ) { menu.AppendMenu(MF_STRING , MENU_GADDRESS_DEL, _T(" 删 除 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_DEL , _T(" 删 除 ") ); } menu.AppendMenu(MF_SEPARATOR ); //发送短信 if ( m_pMainFrame->GetUserPurview(PURVIEW_SENDG,false) && lItem >=0 && !bLock ) { menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDTOLIST, _T(" 发送短信 ") ); #ifdef SUPPER_FUNC_FAX menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDTOLIST_FAX, _T(" 发送传真 ") ); #endif #ifdef SUPPER_FUNC_MMS menu.AppendMenu(MF_STRING , MENU_GADDRESS_ADDTOLIST_MMS, _T(" 发送彩信 ") ); #endif } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDTOLIST , _T(" 发送短信 ") ); #ifdef SUPPER_FUNC_FAX menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDTOLIST_FAX, _T(" 发送传真 ") ); #endif #ifdef SUPPER_FUNC_MMS menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_ADDTOLIST_MMS, _T(" 发送彩信 ") ); #endif } menu.AppendMenu(MF_SEPARATOR ); //if ( !m_bFind2 ) menu.AppendMenu(MF_STRING , MENU_GADDRESS_FIND, _T(" 查找... ") ); //else // menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_FIND, _T(" 查找... ") ); if ( lItem >=0 ) menu.AppendMenu(MF_STRING , MENU_GADDRESS_LOG, _T(" 收发日志... ") ); else menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_LOG, _T(" 收发日志... ") ); menu.AppendMenu(MF_SEPARATOR ); if ( lItem >=0 && !m_bFind2 ) { menu.AppendMenu(MF_STRING , MENU_GADDRESS_CUT , _T(" 剪 切 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_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==GADDRESS_COPYTYPE_CUT)) menu.AppendMenu(MF_STRING , MENU_GADDRESS_PASTE , _T(" 粘 贴 ") ); else menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_PASTE , _T(" 粘 贴 ") ); menu.AppendMenu(MF_SEPARATOR ); /* //导入用户 if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_ADD,false) && !m_bFind2 ) { menu.AppendMenu(MF_STRING , MENU_GADDRESS_INPORT, _T(" 导入用户 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_INPORT , _T(" 导入用户 ") ); } */ //导出用户 if ( m_pMainFrame->GetUserPurview(PURVIEW_GADDRESS_MODIFY,false) ) { menu.AppendMenu(MF_STRING , MENU_GADDRESS_EXPORT, _T(" 导出用户 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_GADDRESS_EXPORT , _T(" 导出用户 ") ); } menu.AppendMenu(MF_SEPARATOR ); //刷新 menu.AppendMenu(MF_STRING , MENU_GADDRESS_REFRESH, _T(" 刷 新 ") ); //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } ANS_GAddress_SeeData CFGAddress::GetUserData(long lUserID) { ANS_GAddress_SeeData Address={0}; TCHAR szSelect[128]={0}; _stprintf( szSelect , _T("Select * from users 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("CorpID") , Address.lCorpID); 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("Job") , Address.szJob); 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("LoginName") , Address.szLoginName); m_AdoRS.GetCollect( _T("Passwd") , Address.szPasswd); m_AdoRS.GetCollect( _T("PurviewType"), Address.ulPurviewType); m_AdoRS.GetCollect( _T("Purview") , Address.ulPurview); m_AdoRS.GetCollect( _T("LoginCount") , Address.lLoginCount); m_AdoRS.GetCollect( _T("LoginTime") , t); t.GetAsSystemTime(Address.tLoginTime); m_AdoRS.GetCollect( _T("SMSNum") , Address.szSMSNum); m_AdoRS.GetCollect( _T("SMSUsed") , Address.lSMSUsed); m_AdoRS.GetCollect( _T("SMSSendAll") , Address.lSMSSendAll); m_AdoRS.GetCollect( _T("MmsUsed") , Address.lMmsUsed); m_AdoRS.GetCollect( _T("MmsSendAll") , Address.lMmsSendAll); //m_AdoRS.GetCollect( _T("OvrTime"), t); t.GetAsSystemTime(Address.tOvrTime); m_AdoRS.GetCollect( _T("CreateUser") , Address.szCreateUser); m_AdoRS.GetCollect( _T("CreateTime") , t); t.GetAsSystemTime(Address.tCreateTime); m_AdoRS.GetCollect( _T("BZ") , Address.szBZ); m_AdoRS.GetCollect( _T("AccessGroup") , Address.lAccessGroupID); } return Address; } void CFGAddress::OnDblclkGaddressList(NMHDR* pNMHDR, LRESULT* pResult) { On_User_Modify(); *pResult = 0; } BOOL CFGAddress::ProcessSocket(Socket_Head *pHead) { CString str; //修改公用地址本 if (pHead->lFuncType == SMSFUNC_GADDRESS_MODIFY) { ANS_GAddress_Modify * pModify = (ANS_GAddress_Modify *)pHead->pFrame; ANS_GAddress_SeeData * pData = (ANS_GAddress_SeeData *)(pHead->pFrame+sizeof(ANS_GAddress_Modify)); SetLockItem( pModify->lItem , false ); //解锁 if ( pModify->lCount == 1 ) //等于1时表示修改成功 { long lUserID = m_wndList.GetItemData(pModify->lItem); if ( lUserID == pData->lUserID ) { //m_wndList.SetHeadings(_T("序号,50;登录名,80;特服号,80;可用短信,80;已发短信,80;帐号类型,90;登录次数,80; 姓名,80; 昵称,80;手机,100;电话,80; 生日,90;职务,80;Email,80;")); 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); long lTemp=1; m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szLoginName ); m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szSMSNum ); if ( pData->lSMSUsed == -100 ) str = _T(" 无限制"); else str.Format( _T("%8d"),pData->lSMSUsed ); m_wndList.SetItemText(pModify->lItem,lTemp++, str ); #ifdef SUPPER_FUNC_MMS if ( pData->lMmsUsed == -100 ) str = _T(" 无限制"); else str.Format( _T("%8d"),pData->lMmsUsed ); m_wndList.SetItemText(pModify->lItem,lTemp++, str ); #endif switch(pData->ulPurviewType) { case PURVIEWTYPE_ADMIN: str = _T("系统管理员"); break; case PURVIEWTYPE_KF: str = _T("客户服务员"); break; case PURVIEWTYPE_USERS: str = _T("一般员工"); break; case PURVIEWTYPE_INPUT: str = _T("资料录入员"); break; case PURVIEWTYPE_ADDRESS: default: str = _T("纯通讯录"); break; } m_wndList.SetItemText(pModify->lItem,lTemp++, str ); str.Format( _T("%8d"),pData->lLoginCount ); m_wndList.SetItemText(pModify->lItem,lTemp++, str ); m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szName ); m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szNickName ); m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szMobile ); m_wndList.SetItemText(pModify->lItem,lTemp++, 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(pModify->lItem,lTemp++, str ); } else { m_wndList.SetItemText(pModify->lItem,lTemp++, _T("") ); } m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szJob ); m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szEmail ); #ifdef SHOWBZ_VER m_wndList.SetItemText(pModify->lItem,lTemp++, pData->szBZ ); #endif } //将新的数据写入本地数据库 TCHAR szSelect[128]={0}; _stprintf( szSelect , _T("select * from users where UserID=%d ") , pData->lUserID ); BOOL b = m_AdoRS.Open( szSelect ); if ( b && m_AdoRS.GetRecordCount() ) { m_AdoRS.MoveFirst(); 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("Job") ,pData->szJob ); 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("LoginName") ,pData->szLoginName ); m_AdoRS.PutCollect(_T("Passwd") ,pData->szPasswd ); m_AdoRS.PutCollect(_T("PurviewType") ,pData->ulPurviewType ); m_AdoRS.PutCollect(_T("Purview") ,pData->ulPurview ); m_AdoRS.PutCollect(_T("SMSNum") ,pData->szSMSNum ); m_AdoRS.PutCollect(_T("SMSUsed") ,pData->lSMSUsed ); m_AdoRS.PutCollect( _T("MmsUsed") , pData->lMmsUsed); m_AdoRS.PutCollect( _T("MmsSendAll") , pData->lMmsSendAll); //m_AdoRS.PutCollect(_T("OvrTime") ,pData->tOvrTime); m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ); m_AdoRS.PutCollect( _T("AccessGroup"), pData->lAccessGroupID); m_AdoRS.Update(); m_AdoRS.Close(); } } return true; } //添加用户 if (pHead->lFuncType == SMSFUNC_GADDRESS_ADD) { ANS_GAddress_Add * pAdd = (ANS_GAddress_Add *)pHead->pFrame; ANS_GAddress_SeeData * pData = (ANS_GAddress_SeeData *)(pHead->pFrame+sizeof(ANS_GAddress_Add)); if ( pAdd->lCount == 1 && pData->lUserID >0) //等于1时表示修改成功 { long lCount = m_wndList.GetItemCount(); TCHAR Buf[32]; //设置新的数据 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 ); long lTemp=1; m_wndList.SetItemText(lCount,lTemp++, pData->szLoginName ); m_wndList.SetItemText(lCount,lTemp++, pData->szSMSNum ); if ( pData->lSMSUsed == -100 ) str = _T(" 无限制"); else str.Format( _T("%8d"),pData->lSMSUsed ); m_wndList.SetItemText(lCount,lTemp++, str ); #ifdef SUPPER_FUNC_MMS if ( pData->lMmsUsed == -100 ) str = _T(" 无限制"); else str.Format( _T("%8d"),pData->lMmsUsed ); m_wndList.SetItemText(lCount,lTemp++, str ); #endif switch(pData->ulPurviewType) { case PURVIEWTYPE_ADMIN: str = _T("系统管理员"); break; case PURVIEWTYPE_KF: str = _T("客户服务员"); break; case PURVIEWTYPE_USERS: str = _T("一般员工"); break; case PURVIEWTYPE_INPUT: str = _T("资料录入员"); break; case PURVIEWTYPE_ADDRESS: default: str = _T("纯通讯录"); break; } m_wndList.SetItemText(lCount,lTemp++, str ); str.Format( _T("%8d"),pData->lLoginCount ); m_wndList.SetItemText(lCount,lTemp++, str ); m_wndList.SetItemText(lCount,lTemp++, pData->szName ); m_wndList.SetItemText(lCount,lTemp++, pData->szNickName ); m_wndList.SetItemText(lCount,lTemp++, pData->szMobile ); m_wndList.SetItemText(lCount,lTemp++, 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,lTemp++, str ); } else { m_wndList.SetItemText(lCount,lTemp++, _T("") ); } m_wndList.SetItemText(lCount,lTemp++, pData->szJob ); m_wndList.SetItemText(lCount,lTemp++, pData->szEmail ); #ifdef SHOWBZ_VER m_wndList.SetItemText(lCount,lTemp++, pData->szBZ ); #endif //添加到数据库里 BOOL b = m_AdoRS.Open( _T("users") , adCmdTable ); if ( b ) { m_AdoRS.AddNew(); m_AdoRS.PutCollect(_T("UserID") ,pData->lUserID); m_AdoRS.PutCollect(_T("CorpID") ,pData->lCorpID); 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("Job") ,pData->szJob ); 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("LoginName") ,pData->szLoginName ); m_AdoRS.PutCollect(_T("Passwd") ,pData->szPasswd ); m_AdoRS.PutCollect(_T("PurviewType") ,pData->ulPurviewType ); m_AdoRS.PutCollect(_T("Purview") ,pData->ulPurview ); m_AdoRS.PutCollect(_T("SMSNum") ,pData->szSMSNum ); m_AdoRS.PutCollect(_T("SMSUsed") ,pData->lSMSUsed ); m_AdoRS.PutCollect(_T("SMSSendAll"),pData->lSMSSendAll); m_AdoRS.PutCollect(_T("MmsUsed") ,pData->lMmsUsed ); m_AdoRS.PutCollect(_T("MmsSendAll"),pData->lMmsSendAll); //m_AdoRS.PutCollect(_T("OvrTime") ,pData->tOvrTime); m_AdoRS.PutCollect(_T("LoginCount") ,pData->lLoginCount); m_AdoRS.PutCollect(_T("LoginTime") ,pData->tLoginTime); m_AdoRS.PutCollect(_T("CreateUser") ,pData->szCreateUser); m_AdoRS.PutCollect(_T("CreateTime") ,pData->tCreateTime); m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ); m_AdoRS.PutCollect( _T("AccessGroup"), pData->lAccessGroupID); m_AdoRS.Update(); } m_AdoRS.Close(); } if ( m_bInUser ) //是导入用户,需要显示进度条,并导入下一条 { m_lInUserIndex ++; m_DLGGetUser.SetProcess( m_lInUserCount , m_lInUserIndex ); Inport_Next(); } return true; } //删除用户 if (pHead->lFuncType == SMSFUNC_GADDRESS_DEL) { ANS_GAddress_Del * pDel = (ANS_GAddress_Del *)pHead->pFrame; ANS_GAddress_DelData * pDelData = (ANS_GAddress_DelData *)(pHead->pFrame+sizeof(ANS_GAddress_Del)); 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 users 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_GADDRESS_GROUP_ADD) { ANS_GAddress_Group_Add * pAdd = (ANS_GAddress_Group_Add *)pHead->pFrame; ANS_GAddress_Group_AddData * pData = (ANS_GAddress_Group_AddData *)(pHead->pFrame+sizeof(ANS_GAddress_Group_Add)); if ( pAdd->lCount == 1 && pData->lUserID >0) //等于1时表示添加成功 { //添加到树 m_pFuncView->AddGGroup( pData->szGroupName , m_lUserID , pData->lUserID ); //添加到数据库里 BOOL b = m_AdoRS.Open( _T("users") , adCmdTable ); if ( b ) { m_AdoRS.AddNew(); m_AdoRS.PutCollect(_T("UserID") ,pData->lUserID); m_AdoRS.PutCollect(_T("CorpID") ,m_pMainFrame->m_lCorpID); 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("CreateUser") ,pData->szCreateUser); m_AdoRS.PutCollect(_T("CreateTime") ,pData->tCreateTime); m_AdoRS.PutCollect(_T("BZ") ,pData->szBZ); m_AdoRS.Update(); } } 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 ; ilCount;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 ; ilCount;i++ ) { m_AdoRS.AddNew(); m_AdoRS.PutCollect(_T("UserID") ,m_Copy_Data[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 ; im_pFuncView; return ; } } LRESULT CFGAddress::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 users 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 CFGAddress::Inport_Next() { USES_CONVERSION; if ( m_lInUserIndex >= m_lInUserCount ) //添加已完成 return ; if ( isAddressFull() ) //通讯录已满 { m_DLGGetUser.SetProcess( 1 , 1 ); //停止进度显示 return ; } long lSize = sizeof(REQ_GAddress_Add)+sizeof(ANS_GAddress_SeeData); BYTE * pAddSent = new BYTE[lSize];memset(pAddSent,0,lSize); REQ_GAddress_Add * pAdd = (REQ_GAddress_Add *)pAddSent; //头 ANS_GAddress_SeeData * pAddData = (ANS_GAddress_SeeData *)(pAddSent+sizeof(REQ_GAddress_Add)); *pAddData = m_pInUser[m_lInUserIndex]; //取得数据 _tcscpy(pAddData->szGroupID,m_szGroupID); pAddData->lCorpID = m_pMainFrame->m_lCorpID; pAddData->szUserType[0]='1'; //用户类型 /* //一汽定制的,导入用户 _tcscpy( pAddData->szLoginName , pAddData->szNickName ); memset( pAddData->szNickName , 0 , sizeof(pAddData->szNickName)); //_tcscpy( pAddData->szBZ , pAddData->szEmail ); //memset( pAddData->szEmail , 0 , sizeof(pAddData->szEmail)); _stprintf( pAddData->szSMSNum , "%03d" , m_lInUserIndex+1 ); pAddData->lSMSSendAll = 0; pAddData->lSMSUsed = 100; pAddData->ulPurviewType = PURVIEWTYPE_KF; pAddData->ulPurview = PURVIEW_LOGIN|PURVIEW_SENDP|PURVIEW_RECVP|PURVIEW_PADDRESS; */ //生成密码 CDes des; #ifdef UNICODE char szPasswd[64]={0}; char szPasswd2[64]={0}; char szUser[64]={0}; strcpy( szPasswd , "888888" ); strcpy( szUser , W2A(pAddData->szLoginName) ); long lLen=sizeof(szPasswd2); des.Encrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lLen , szUser , 8 ); _tcscpy(pAddData->szPasswd,A2W(szPasswd2)); #else char szPasswd[32]={0}; _tcscpy(szPasswd,"888888"); long lOut = sizeof(pAddData->szPasswd); des.Encrypt( szPasswd , _tcslen(szPasswd) , pAddData->szPasswd , lOut,pAddData->szLoginName,8); #endif pAdd->lCount = 1; m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_ADD , pAddSent , lSize ); } void CFGAddress::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 users 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 CFGAddress::AddUser(ANS_GAddress_SeeData user) { if ( isAddressFull() ) //通讯录已满 return false; long lSize = sizeof(REQ_GAddress_Add)+sizeof(ANS_GAddress_SeeData); BYTE * pAddSent = new BYTE[lSize];memset(pAddSent,0,lSize); REQ_GAddress_Add * pAdd = (REQ_GAddress_Add *)pAddSent; //头 ANS_GAddress_SeeData * pAddData = (ANS_GAddress_SeeData *)(pAddSent+sizeof(REQ_GAddress_Add)); *pAddData = user; pAdd->lCount = 1; m_pMainFrame->SendFrame( SMSFUNC_GADDRESS_ADD , pAddSent , lSize ); return true; } void CFGAddress::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_Add(); } 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 CFGAddress::OnOK() { //CDialog::OnOK(); } void CFGAddress::OnCancel() { //CDialog::OnCancel(); } void CFGAddress::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 users where 1<>1 "); } else { //查询本组 if ( _tcslen(m_szGroupID)>0 ) strFind.Format(_T("select * from users where GroupID='%s' and ( 1<>1 "),m_szGroupID); else strFind.Format(_T("select * from users 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_GAddress_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("Job") , user.szJob); 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("LoginName") , user.szLoginName); m_AdoRS.GetCollect( _T("PurviewType"), user.ulPurviewType); m_AdoRS.GetCollect( _T("Purview") , user.ulPurview); m_AdoRS.GetCollect( _T("LoginCount") , user.lLoginCount); m_AdoRS.GetCollect( _T("LoginTime") , t); t.GetAsSystemTime(user.tLoginTime); m_AdoRS.GetCollect( _T("SMSUsed") , user.lSMSUsed); m_AdoRS.GetCollect( _T("SMSSendAll") , user.lSMSSendAll); m_AdoRS.GetCollect( _T("MmsUsed") , user.lMmsUsed); m_AdoRS.GetCollect( _T("MmsSendAll") , user.lMmsSendAll); //m_AdoRS.GetCollect( _T("OvrTime"), t); t.GetAsSystemTime(user.tOvrTime); m_AdoRS.GetCollect( _T("CreateUser") , user.szCreateUser); m_AdoRS.GetCollect( _T("CreateTime") , t);t.GetAsSystemTime(user.tCreateTime); m_AdoRS.GetCollect( _T("BZ") , user.szBZ); m_AdoRS.GetCollect( _T("AccessGroup") , user.lAccessGroupID); m_AdoRS.MoveNext(); //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 ); long lTemp=1; m_wndList.SetItemText(i,lTemp++, user.szLoginName ); m_wndList.SetItemText(i,lTemp++, user.szSMSNum ); if ( user.lSMSUsed == -100 ) str = _T(" 无限制"); else str.Format( _T("%8d"),user.lSMSUsed ); m_wndList.SetItemText(i,lTemp++, str ); #ifdef SUPPER_FUNC_MMS if ( user.lMmsUsed == -100 ) str = _T(" 无限制"); else str.Format( _T("%8d"),user.lMmsUsed ); m_wndList.SetItemText(i,lTemp++, str ); #endif switch(user.ulPurviewType) { case PURVIEWTYPE_ADMIN: str = _T("系统管理员"); break; case PURVIEWTYPE_KF: str = _T("客户服务员"); break; case PURVIEWTYPE_USERS: str = _T("一般员工"); break; case PURVIEWTYPE_INPUT: str = _T("资料录入员"); break; case PURVIEWTYPE_ADDRESS: default: str = _T("纯通讯录"); break; } m_wndList.SetItemText(i,lTemp++, str ); str.Format( _T("%8d"),user.lLoginCount ); m_wndList.SetItemText(i,lTemp++, str ); m_wndList.SetItemText(i,lTemp++, user.szName ); m_wndList.SetItemText(i,lTemp++, user.szNickName ); m_wndList.SetItemText(i,lTemp++, user.szMobile ); m_wndList.SetItemText(i,lTemp++, 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,lTemp++, str ); } else { m_wndList.SetItemText(i,lTemp++, _T("") ); } m_wndList.SetItemText(i,lTemp++, user.szJob ); m_wndList.SetItemText(i,lTemp++, user.szEmail ); #ifdef SHOWBZ_VER m_wndList.SetItemText(i,lTemp++, user.szBZ ); #endif } } else { MessageBox( _T("对不起,没有找到相应的记录,请重新查询!"),_T("信息"),MB_ICONINFORMATION); } m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度 } void CFGAddress::OnDestroy() { CDialog::OnDestroy(); if ( m_pInUser ) {delete m_pInUser;m_pInUser=NULL;}; } BOOL CFGAddress::isAddressFull(BOOL bTip) { long lCount=0; CString str=_T("select count(*) as abc from users"); if ( m_AdoRS.Open( str ) && m_AdoRS.GetRecordCount()>0 ) { m_AdoRS.MoveFirst(); m_AdoRS.GetCollect(_T("abc"), lCount ); m_AdoRS.Close(); } if ( lCountGetMaxUsersCount() ) return false; if ( bTip ) { MessageBox( _T("你的帐号容量已达上限,不能继续添加,请联系服务提供商!") , _T("错误") , MB_ICONWARNING ); } return true; } void CFGAddress::On_User_ModifyUsed() { if (!m_pMainFrame->GetUserPurview(PURVIEW_USER_MANAGER)) { return; } long lItem = GetCurrentSelected(); if (lItem < 0) return; if (isLockItem(lItem)) { return; } long lUserID = m_wndList.GetItemData(lItem); ANS_GAddress_SeeData Address = GetUserData(lUserID); }