CorpSms/FSAddress.cpp

1284 lines
37 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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

// FKAddress.cpp : implementation file
//
#include "stdafx.h"
#include "corpsms.h"
#include "FSAddress.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFSAddress dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_Group_Modify.h"
#include "FuncView.h"
#include "DLG_User_InportP2.h"
#include "DLG_User_Log.h"
#include "DLG_User_ModifyS.h"
#include "DLG_User_InportC.h"
#include "..\public\StringSort\StringSort.h"
CFSAddress::CFSAddress(CWnd* pParent /*=NULL*/)
: CDialog(CFSAddress::IDD, pParent)
{
//{{AFX_DATA_INIT(CFSAddress)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = 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;
}
void CFSAddress::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFSAddress)
DDX_Control(pDX, IDC_SADDRESS_LIST, m_wndList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFSAddress, CDialog)
//{{AFX_MSG_MAP(CFSAddress)
ON_WM_SIZE()
ON_WM_TIMER()
ON_NOTIFY(NM_DBLCLK, IDC_SADDRESS_LIST, OnDblclkKaddressList)
ON_NOTIFY(NM_RCLICK, IDC_SADDRESS_LIST, OnRclickKaddressList)
ON_NOTIFY(LVN_KEYDOWN, IDC_SADDRESS_LIST, OnKeydownKaddressList)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
ON_MESSAGE( LIST_DROP_BEGIN , On_List_DropBegin )
ON_COMMAND( MENU_SADDRESS_ADD , On_User_Add)
ON_COMMAND( MENU_SADDRESS_ADDGROUP , On_User_AddGroup)
ON_COMMAND( MENU_SADDRESS_MODIFY , On_User_Modify)
ON_COMMAND( MENU_SADDRESS_DEL , On_User_Del)
ON_COMMAND( MENU_SADDRESS_FIND , On_User_Find)
ON_COMMAND( MENU_SADDRESS_ADDTOLIST , On_User_AddToList)
ON_COMMAND( MENU_SADDRESS_INPORT , On_User_Inport)
ON_COMMAND( MENU_SADDRESS_EXPORT , On_User_Export)
ON_COMMAND( MENU_SADDRESS_REFRESH, On_User_Refresh)
ON_COMMAND( MENU_SADDRESS_COPY , On_User_Copy)
ON_COMMAND( MENU_SADDRESS_CUT , On_User_Cut)
ON_COMMAND( MENU_SADDRESS_PASTE , On_User_Paste)
ON_COMMAND( MENU_SADDRESS_LOG , On_User_Log)
ON_COMMAND( MENU_SADDRESS_LOG2 , On_User_Log2)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFSAddress message handlers
BOOL CFSAddress::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CFSAddress::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CFSAddress::RefreshInfo()
{
return true;
}
long CFSAddress::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CFSAddress::OnOK()
{
//CDialog::OnOK();
}
void CFSAddress::OnCancel()
{
//CDialog::OnCancel();
}
BOOL CFSAddress::OnInitDialog()
{
CDialog::OnInitDialog();
//ȡ<>ù<EFBFBD><C3B9>ò<EFBFBD><C3B2><EFBFBD>
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
m_AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection );
SetTimer( 1 , 200 , NULL ); //Ϊ<><CEAA>ȡ<EFBFBD><C8A1>m_pFuncView;
//<2F><>ʼ<EFBFBD><CABC>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_LOCK) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD>,80;<3B>dz<EFBFBD>,80;<3B>Ա<EFBFBD>,60;<3B><><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,100;<3B><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>,100;<3B><>ϵ<EFBFBD>绰,120;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>,100;Email,120; <20><> ַ,120;ҵ<><D2B5>Ա,80;<3B><><EFBFBD><EFBFBD>,80;<3B><>ע,120;"));
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
}
void CFSAddress::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
m_wndList.MoveWindow( 0 , 0 , cx,cy);
}
}
void CFSAddress::OnTimer(UINT_PTR nIDEvent)
{
CDialog::OnTimer(nIDEvent);
if ( nIDEvent == 1 )
{
KillTimer( 1 );
m_pFuncView = m_pMainFrame->m_pFuncView;
return ;
}
}
long CFSAddress::ShowUser(long lUserID,const TCHAR * pWhere,BOOL bGroupAll)
{
if ( bGroupAll )
m_bFind2 = true;
else
m_bFind2 = false;
m_wndList.ShowWindow( SW_HIDE ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
m_wndList.DeleteAllItems();
CString strWhere;
if ( pWhere )
strWhere = pWhere;
TCHAR szSelect[1024]={0};
CString str;
m_lUserID = lUserID;
memset( m_szGroupID , 0 , sizeof(m_szGroupID) );
if ( bGroupAll )
{
_stprintf( szSelect , _T("Select * from saddress where UserType='1' %s ") , strWhere ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
}
else
{
if ( lUserID != -1 ) //<2F><><EFBFBD><EFBFBD>-1<>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD>
{
_stprintf( szSelect , _T("select GroupID from saddress where UserID=%d AND UserType='0'") , lUserID); //<2F><>ѯ<EFBFBD>û<EFBFBD>ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>Ϊ<EFBFBD><CEAA>
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 ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
return 0;
}
}
GetLocal( m_szLocal , m_szGroupID ); //ȡ<>û<EFBFBD>·<EFBFBD><C2B7>
if ( lUserID == -1 ) //<2F><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ΪNULL
_stprintf( szSelect , _T("select * from saddress where (GroupID is null or len(GroupID)=0) and UserType='1' %s order by CreateTime "),strWhere ); //<2F><><EFBFBD>Ҵ<EFBFBD><D2B4><EFBFBD><EFBFBD>µ<EFBFBD><C2B5>û<EFBFBD>
else
_stprintf( szSelect , _T("Select * from saddress where GroupID='%s' AND UserType='1' %s order by CreateTime ") , m_szGroupID,strWhere ); //<2F><><EFBFBD>Ҵ<EFBFBD><D2B4><EFBFBD><EFBFBD>µ<EFBFBD><C2B5>û<EFBFBD>
}
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++ )
{
CSAddress user={0};
COleDateTime t;
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("BH") , user.szBH);
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("InDate"), t); t.GetAsSystemTime(user.tInDate);
m_AdoRS.GetCollect( _T("OutDate"), t); t.GetAsSystemTime(user.tOutDate);
m_AdoRS.GetCollect( _T("Tel") , user.szTel);
m_AdoRS.GetCollect( _T("Mobile") , user.szMobile);
m_AdoRS.GetCollect( _T("Addr") , user.szAddr);
m_AdoRS.GetCollect( _T("Email") , user.szEmail);
m_AdoRS.GetCollect( _T("YWY") , user.szYWY);
m_AdoRS.GetCollect( _T("Price") , user.szPrice);
m_AdoRS.GetCollect( _T("CreateTime") , t); t.GetAsSystemTime(user.tCreateTime);
m_AdoRS.GetCollect( _T("BZ") , user.szBZ);
m_AdoRS.MoveNext();
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD>,80;<3B>dz<EFBFBD>,80;<3B>Ա<EFBFBD>,60;<3B><><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,100;<3B><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>,100;<3B><>ϵ<EFBFBD>绰,120;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,120; <20><> ַ,120;ҵ<><D2B5>Ա,80;<3B><><EFBFBD><EFBFBD>,80;<3B><>ע,120;"));
m_wndList.InsertItem( i , _itot(i+1,szSelect,10) ); //<2F><><EFBFBD><EFBFBD>
m_wndList.SetItemData( i , user.lUserID );
m_wndList.SetItemText(i,1, user.szBH );
m_wndList.SetItemText(i,2, user.szName );
m_wndList.SetItemText(i,3, user.szNickName );
m_wndList.SetItemText(i,4, user.szSex );
COleDateTime t4(user.tBirthday);
if ( t4.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t4.GetYear(),t4.GetMonth(),t4.GetDay());
m_wndList.SetItemText(i,5, str );
}
else
{
m_wndList.SetItemText(i,5, _T("") );
}
COleDateTime t2(user.tInDate);
if ( t2.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t2.GetYear(),t2.GetMonth(),t2.GetDay());
m_wndList.SetItemText(i,6, str );
}
else
{
m_wndList.SetItemText(i,6, _T("") );
}
COleDateTime t3(user.tOutDate);
if ( t2.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t3.GetYear(),t3.GetMonth(),t3.GetDay());
m_wndList.SetItemText(i,7, str );
}
else
{
m_wndList.SetItemText(i,7, _T("") );
}
m_wndList.SetItemText(i,8, user.szTel );
m_wndList.SetItemText(i,9, user.szMobile );
m_wndList.SetItemText(i,10, user.szEmail );
m_wndList.SetItemText(i,11, user.szAddr );
m_wndList.SetItemText(i,12, user.szYWY );
m_wndList.SetItemText(i,13, user.szPrice );
m_wndList.SetItemText(i,14, user.szBZ );
}
// return lCount;
}
m_wndList.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
return 0;
}
void CFSAddress::GetLocal(TCHAR *pLocal, TCHAR *pGroupID)
{
long lLen = _tcslen( pGroupID );
TCHAR szGroup[16]={0};
TCHAR szTemp[16]={0};
TCHAR szSelect[128]={0};
_stprintf( pLocal , _T("<EFBFBD>ͻ<EFBFBD>ͨѶ¼") );
for ( int i = 1 ; i<= lLen ; i++ )
{
_tcsncpy( szGroup , pGroupID , i );
_stprintf( szSelect , _T("select Name from saddress 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 );
}
}
}
void CFSAddress::OnDblclkKaddressList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_Modify();
}
void CFSAddress::OnRclickKaddressList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CFSAddress::OnKeydownKaddressList(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 == '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();
}
if ( pLVKeyDow->wVKey == 'A' || pLVKeyDow->wVKey == 'a')
{
m_wndList.SelectAllItems();
}
}
void CFSAddress::ShowRMenu()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_PADDRESS,false)) //û<>в鿴Ȩ<E9BFB4><C8A8>
return ;
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
if (!m_bFind2)
{
menu.AppendMenu(MF_STRING , MENU_SADDRESS_ADD, _T(" <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD> ") );
menu.AppendMenu(MF_STRING , MENU_SADDRESS_ADDGROUP, _T(" <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_ADD, _T(" <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD> ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_ADDGROUP, _T(" <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD> ") );
}
menu.AppendMenu(MF_SEPARATOR );
//<2F>޸<EFBFBD>
if ( lItem >=0)
{
menu.AppendMenu(MF_STRING , MENU_SADDRESS_MODIFY, _T(" <20><> <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_MODIFY , _T(" <20><> <20><> ") );
}
//ɾ<><C9BE>
if ( lItem >=0 )
{
menu.AppendMenu(MF_STRING , MENU_SADDRESS_DEL, _T(" ɾ <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_DEL , _T(" ɾ <20><> ") );
}
//<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
if ( m_pMainFrame->GetUserPurview(PURVIEW_SENDP,false) && lItem >=0 )
{
menu.AppendMenu(MF_STRING , MENU_SADDRESS_ADDTOLIST, _T(" <20><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_ADDTOLIST , _T(" <20><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD> ") );
}
menu.AppendMenu(MF_SEPARATOR );
if ( lItem >=0 && !m_bFind2 )
{
menu.AppendMenu(MF_STRING , MENU_SADDRESS_COPY , _T(" <20><> <20><> ") );
menu.AppendMenu(MF_STRING , MENU_SADDRESS_CUT , _T(" <20><> <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_COPY , _T(" <20><> <20><> ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_CUT , _T(" <20><> <20><> ") );
}
if (!m_bFind2 && m_Copy_Count>0 && !(m_lUserID==m_Copy_UserID && m_Copy_Type==PADDRESS_COPYTYPE_CUT))
menu.AppendMenu(MF_STRING , MENU_SADDRESS_PASTE , _T(" ճ <20><> ") );
else
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_PASTE , _T(" ճ <20><> ") );
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_SADDRESS_FIND, _T(" <20><><EFBFBD><EFBFBD>... ") );
menu.AppendMenu(MF_SEPARATOR );
if ( lItem >=0 )
{
menu.AppendMenu(MF_STRING , MENU_SADDRESS_LOG, _T(" <20>շ<EFBFBD><D5B7><EFBFBD>־... ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_LOG, _T(" <20>շ<EFBFBD><D5B7><EFBFBD>־... ") );
}
menu.AppendMenu(MF_SEPARATOR );
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
if (!m_bFind2)
menu.AppendMenu(MF_STRING , MENU_SADDRESS_INPORT, _T(" <20><><EFBFBD><EFBFBD>ͨѶ¼ ") );
else
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SADDRESS_INPORT, _T(" <20><><EFBFBD><EFBFBD>ͨѶ¼ ") );
menu.AppendMenu(MF_STRING , MENU_SADDRESS_EXPORT, _T(" <20><><EFBFBD><EFBFBD>ͨѶ¼ ") );
menu.AppendMenu(MF_SEPARATOR );
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING , MENU_SADDRESS_REFRESH, _T(" ˢ <20><> ") );
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
LRESULT CFSAddress::On_List_DropBegin( WPARAM wParam , LPARAM lParam )
{
//<2F><><EFBFBD><EFBFBD>û<EFBFBD>з<EFBFBD><D0B7><EFBFBD>˽<EFBFBD>˵<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>
if ( !m_pMainFrame->GetUserPurview( PURVIEW_SENDP , false ) )
return false;
long lCount = m_wndList.GetSelectedCount();
if ( lCount <= 0 )
return false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 saddress 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 );
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COleDataSource data ;
UINT iCF = ::RegisterClipboardFormat( _T("CORPSMS_USER") );
data.CacheGlobalData( iCF , hData );
// Begin Drag operation
CUserDropTarget::m_shWndTreeCtrl = NULL;
CUserDropTarget::m_lAddressType = -1;
DROPEFFECT dropeffect = data.DoDragDrop();
GlobalFree( hData );
return true;
}
void CFSAddress::On_User_Add()
{
if ( m_bFind2 ) //<2F><><EFBFBD>ڲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>Ч
return ;
CSAddress Address={0};
_tcscpy(Address.szGroupID,m_szGroupID);
Address.szUserType[0]='1'; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
DLG_User_ModifyS dlg(this);
dlg.SetParam( Address,m_szLocal,true);
dlg.DoModal();
}
void CFSAddress::On_User_AddGroup()
{
if ( m_bFind2 ) //<2F><><EFBFBD>ڲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>Ч
return ;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD>12<31><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ( _tcslen(m_szGroupID) >12 )
{
MessageBox( _T("<EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
return ;
}
ANS_GAddress_Group_AddData GAdd={0};
//<2F><><EFBFBD>ҿ<EFBFBD><D2BF>е<EFBFBD><D0B5><EFBFBD>ID
long lGroupLen = _tcslen( m_szGroupID );
TCHAR szSelect[128]={0};
_stprintf( szSelect , _T("select GroupID from saddress where GroupID like '%s_' AND UserType='0' ") , m_szGroupID); //<2F><><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>µĵ<C2B5>һ<EFBFBD><D2BB>
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("<EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
return ;
}
TCHAR szGroupID[16]={0};
_tcscpy( szGroupID , m_szGroupID );
//<2F><>ס<EFBFBD><D7A1><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ID
TCHAR szAllID[200][24]={0};
for ( int i = 0 ; i< lCount ;i++ )
{
_tcscpy(szAllID[i],sort.GetAt(i));
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>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; //<2F>µ<EFBFBD><C2B5><EFBFBD>ID
_tcscpy( GAdd.szGroupID , szGroupID );
::GetLocalTime( &GAdd.tCreateTime );
DLG_Group_Modify dlg(this);
dlg.SetParam( GAdd,m_szLocal,_T("saddress") );
if ( dlg.DoModal() == IDOK )
{
GAdd = dlg.GetParam();
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
BOOL b = m_AdoRS.Open( _T("saddress") , adCmdTable );
if ( b )
{
m_AdoRS.AddNew();
m_AdoRS.PutCollect(_T("UserType") ,_T("0") ); //<2F>û<EFBFBD><C3BB><EFBFBD>
m_AdoRS.PutCollect(_T("GroupID") ,GAdd.szGroupID);
m_AdoRS.PutCollect(_T("Name") ,GAdd.szGroupName );
m_AdoRS.PutCollect(_T("CreateTime") ,COleDateTime::GetCurrentTime() );
m_AdoRS.PutCollect(_T("BZ") ,GAdd.szBZ);
m_AdoRS.Update();
m_AdoRS.GetCollect(_T("UserID") , GAdd.lUserID );
}
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>
m_pFuncView->AddSGroup( GAdd.szGroupName , m_lUserID , GAdd.lUserID );
}
}
void CFSAddress::On_User_Modify()
{
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
long lUserID = m_wndList.GetItemData( lItem );
CString str;
CSAddress Address = GetUserData(lUserID);
if (_tcslen(Address.szName)>0)
{
DLG_User_ModifyS dlg(this);
TCHAR szLocal[128]={0};
GetLocal(szLocal,Address.szGroupID); //ȡ<>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
dlg.SetParam(Address,szLocal,false);
if ( dlg.DoModal() == IDOK )
{
Address = dlg.GetParam();
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD>,80;<3B>dz<EFBFBD>,80;<3B>Ա<EFBFBD>,60;<3B><><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,100;<3B><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>,100;<3B><>ϵ<EFBFBD>绰,120;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,120; <20><> ַ,120;ҵ<><D2B5>Ա,80;<3B><><EFBFBD><EFBFBD>,80;<3B><>ע,120;"));
//<2F><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
m_wndList.SetItemText(lItem,1, Address.szBH );
m_wndList.SetItemText(lItem,2, Address.szName );
m_wndList.SetItemText(lItem,3, Address.szNickName );
m_wndList.SetItemText(lItem,4, Address.szSex );
COleDateTime t4(Address.tBirthday);
if ( t4.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t4.GetYear(),t4.GetMonth(),t4.GetDay());
m_wndList.SetItemText(lItem,5, str );
}
else
{
m_wndList.SetItemText(lItem,5, _T("") );
}
COleDateTime t2(Address.tInDate);
if ( t2.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t2.GetYear(),t2.GetMonth(),t2.GetDay());
m_wndList.SetItemText(lItem,6, str );
}
else
{
m_wndList.SetItemText(lItem,6, _T("") );
}
COleDateTime t3(Address.tOutDate);
if ( t2.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t3.GetYear(),t3.GetMonth(),t3.GetDay());
m_wndList.SetItemText(lItem,7, str );
}
else
{
m_wndList.SetItemText(lItem,7, _T("") );
}
m_wndList.SetItemText(lItem,8, Address.szTel );
m_wndList.SetItemText(lItem,9, Address.szMobile );
m_wndList.SetItemText(lItem,10, Address.szEmail );
m_wndList.SetItemText(lItem,11, Address.szAddr );
m_wndList.SetItemText(lItem,12, Address.szYWY );
m_wndList.SetItemText(lItem,13, Address.szPrice );
m_wndList.SetItemText(lItem,14, Address.szBZ );
//<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EBB1BE><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
TCHAR szSelect[128]={0};
_stprintf( szSelect , _T("select * from saddress where UserID=%d ") , Address.lUserID );
BOOL b = m_AdoRS.Open( szSelect );
if ( b && m_AdoRS.GetRecordCount() )
{
Address.tBirthday.wHour=0;Address.tBirthday.wMinute=0;Address.tBirthday.wMinute=0;Address.tBirthday.wSecond=0;Address.tBirthday.wMilliseconds=0;
Address.tInDate.wHour=0;Address.tInDate.wMinute=0;Address.tInDate.wMinute=0;Address.tInDate.wSecond=0;Address.tInDate.wMilliseconds=0;
Address.tOutDate.wHour=0;Address.tOutDate.wMinute=0;Address.tOutDate.wMinute=0;Address.tOutDate.wSecond=0;Address.tOutDate.wMilliseconds=0;
m_AdoRS.MoveFirst();
m_AdoRS.PutCollect(_T("UserType") ,Address.szUserType);
m_AdoRS.PutCollect(_T("GroupID") ,Address.szGroupID);
m_AdoRS.PutCollect(_T("BH") ,Address.szBH );
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("InDate") ,Address.tInDate );
m_AdoRS.PutCollect(_T("OutDate") ,Address.tOutDate );
m_AdoRS.PutCollect(_T("Tel") ,Address.szTel );
m_AdoRS.PutCollect(_T("Email") ,Address.szEmail );
m_AdoRS.PutCollect(_T("Mobile") ,Address.szMobile );
m_AdoRS.PutCollect(_T("Addr") ,Address.szAddr );
m_AdoRS.PutCollect(_T("YWY") ,Address.szYWY );
m_AdoRS.PutCollect(_T("Price") ,Address.szPrice);
m_AdoRS.PutCollect(_T("BZ") ,Address.szBZ);
m_AdoRS.Update();
m_AdoRS.Close();
}
}
}
}
void CFSAddress::On_User_Del()
{
long lRet = MessageBox( _T("ȷʵҪɾ<EFBFBD><EFBFBD>ѡ<EFBFBD>е<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lCount = m_wndList.GetSelectedCount();
long *lDel = new long[lCount+2];
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
long i = 0;
while(pos)
{
lDel[i]= m_wndList.GetNextSelectedItem(pos);
i ++;
}
long lUserID = 0;
TCHAR szSelect[128];
//<2F><>תɾ<D7AA><C9BE>
m_wndList.ShowWindow( SW_HIDE ); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ٶ<EFBFBD>
for ( i = lCount ; i>0 ; i-- )
{
lUserID = m_wndList.GetItemData( lDel[i-1] );
_stprintf( szSelect , _T("delete from saddress where UserID=%d ") , lUserID );
BOOL b = m_AdoRS.Open( szSelect );
if ( b && m_AdoRS.GetRecordCount() )
{
m_wndList.DeleteItem(lDel[i-1]); //<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE>
}
}
m_wndList.ShowWindow( SW_SHOW ); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ٶ<EFBFBD>
delete lDel;
}
void CFSAddress::On_User_Find()
{
CSAddress Address={0};
_tcscpy(Address.szGroupID,m_szGroupID);
Address.szUserType[0]='1'; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
DLG_User_ModifyS dlg(this);
dlg.SetParam( Address,m_szLocal,true,true);
if ( dlg.DoModal()==IDOK )
{
CString strFind;
CString strTemp;
Address = dlg.GetParam();
if ( _tcslen(Address.szBH)>0 )//<2F><><EFBFBD><EFBFBD>
{
strTemp.Format( _T(" and BH like '%%%s%%' ") , Address.szBH );
strFind += strTemp;
}
if ( _tcslen(Address.szName)>0 )//<2F><> <20><>
{
strTemp.Format( _T(" and Name like '%%%s%%' ") , Address.szName );
strFind += strTemp;
}
if ( _tcslen(Address.szNickName)>0 )//<2F><> <20><>
{
strTemp.Format( _T(" and NickName like '%%%s%%' ") , Address.szNickName );
strFind += strTemp;
}
if ( _tcslen(Address.szSex)>0 )//<2F>Ա<EFBFBD>
{
strTemp.Format( _T(" and Sex like '%%%s%%' ") , Address.szSex );
strFind += strTemp;
}
if ( COleDateTime(Address.tBirthday).GetStatus()==COleDateTime::valid )
{
strTemp.Format( _T(" and Birthday=#%04d-%02d-%02d# ") , Address.tBirthday.wYear,Address.tBirthday.wMonth,Address.tBirthday.wDay );
strFind += strTemp;
}
if ( COleDateTime(Address.tInDate).GetStatus()==COleDateTime::valid )
{
strTemp.Format( _T(" and InDate=#%04d-%02d-%02d# ") , Address.tInDate.wYear,Address.tInDate.wMonth,Address.tInDate.wDay );
strFind += strTemp;
}
if ( COleDateTime(Address.tOutDate).GetStatus()==COleDateTime::valid )
{
strTemp.Format( _T(" and OutDate=#%04d-%02d-%02d# ") , Address.tOutDate.wYear,Address.tOutDate.wMonth,Address.tOutDate.wDay );
strFind += strTemp;
}
if ( _tcslen(Address.szTel)>0 )
{
strTemp.Format( _T(" and Tel like '%%%s%%' ") , Address.szTel );
strFind += strTemp;
}
if ( _tcslen(Address.szMobile)>0 )
{
strTemp.Format( _T(" and Mobile like '%%%s%%' ") , Address.szMobile );
strFind += strTemp;
}
if ( _tcslen(Address.szAddr)>0 )//<2F><> ַ
{
strTemp.Format( _T(" and Addr like '%%%s%%' ") , Address.szAddr );
strFind += strTemp;
}
if ( _tcslen(Address.szEmail)>0 )
{
strTemp.Format( _T(" and Email like '%%%s%%' ") , Address.szEmail );
strFind += strTemp;
}
if ( _tcslen(Address.szYWY)>0 )
{
strTemp.Format( _T(" and YWY like '%%%s%%' ") , Address.szYWY );
strFind += strTemp;
}
if ( _tcslen(Address.szPrice)>0 )
{
strTemp.Format( _T(" and Price like '%%%s%%' ") , Address.szPrice );
strFind += strTemp;
}
if ( _tcslen(Address.szBZ)>0 )//<2F><> ע
{
strTemp.Format( _T(" and BZ like '%%%s%%' ") , Address.szBZ );
strFind += strTemp;
}
ShowUser(m_lUserID,strFind,Address.bGroupAll );
if ( m_wndList.GetItemCount()<= 0 )
{
MessageBox( _T("<EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ļ<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD>ѯ<EFBFBD><EFBFBD>"),_T("<EFBFBD><EFBFBD>Ϣ"),MB_ICONINFORMATION);
}
}
}
void CFSAddress::On_User_AddToList()
{
if ( !m_pMainFrame->GetUserPurview( PURVIEW_SENDP,true) )
return ;
long lCount = m_wndList.GetSelectedCount();
if ( lCount <= 0 )
return ;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long lSize = sizeof(Send_User)*lCount*2;
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 saddress 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 ++;
}
}
}
m_pFuncView->On_User_List_AddUser(lCount*2,(Send_User*)pS);
delete pS;
}
void CFSAddress::On_User_Inport()
{
if ( m_bFind2 ) //<2F><><EFBFBD>ڲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>Ч
return ;
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD>,80;<3B>dz<EFBFBD>,80;<3B>Ա<EFBFBD>,60;<3B><><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,100;<3B><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>,100;<3B><>ϵ<EFBFBD>绰,120;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,120; <20><> ַ,120;ҵ<><D2B5>Ա,80;<3B><><EFBFBD><EFBFBD>,80;<3B><>ע,120;"));
Inport_Field Field[] =
{
{_T("<EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),0,0,-1},
{_T("<EFBFBD><EFBFBD> <20><>"),0,1,-1},
{_T("<EFBFBD><EFBFBD> <20><>"),0,2,-1},
{_T("<EFBFBD><EFBFBD> <20><>"),0,3,-1},
{_T("<EFBFBD><EFBFBD> <20><>"),0,4,-1},
{_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),0,5,-1},
{_T("<EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),0,6,-1},
{_T("<EFBFBD><EFBFBD>ϵ<EFBFBD>"),0,7,-1},
{_T("<EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),0,8,-1},
{_T("Email"),0,9,-1},
{_T("<EFBFBD><EFBFBD>ַ"),0,10,-1},
{_T("ҵ<EFBFBD><EFBFBD>Ա"),0,11,-1},
{_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),0,12,-1},
{_T("<EFBFBD><EFBFBD>ע"),0,13,-1},
};
DLG_User_InportP2 dlg(this);
dlg.SetParam(&Field[0],sizeof(Field)/sizeof(Inport_Field),4);
if ( dlg.DoModal()==IDOK )
{
this->On_User_Refresh();
}
return ;
/*
DLG_User_InportC dlg(this);
dlg.SetInport(this,&m_wndList,true);
if ( dlg.DoModal() == IDOK )
{
}
*/
}
void CFSAddress::On_User_Export()
{
DLG_User_InportC dlg(this);
dlg.SetInport(&m_wndList,false,1);
dlg.DoModal();
}
void CFSAddress::On_User_Refresh()
{
ShowUser( m_lUserID ); //ˢ<><CBA2>
}
void CFSAddress::On_User_Copy()
{
if ( m_bFind2 ) //<2F><><EFBFBD>ڲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>Ч
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 CSAddress[lCount];
memset(m_Copy_Data,0,sizeof(CSAddress)*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 = SADDRESS_COPYTYPE_COPY;
}
void CFSAddress::On_User_Cut()
{
On_User_Copy();
m_Copy_Type = SADDRESS_COPYTYPE_CUT;
}
void CFSAddress::On_User_Paste()
{
if (m_bFind2 || m_lUserID==m_Copy_UserID || m_Copy_Count<=0) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return ;
CString str;
if ( m_Copy_Type == SADDRESS_COPYTYPE_CUT ) //<2F><><EFBFBD><EFBFBD><>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD><EFBFBD>ID<49><44><EFBFBD><EFBFBD>
{
for ( int i=0 ; i<m_Copy_Count;i++ )
{
str.Format( _T("Update saddress set GroupID='%s' where UserID=%d"),m_szGroupID,m_Copy_Data[i].lUserID );
m_AdoRS.Open(str);
m_AdoRS.Close();
}
}
else
{
if ( m_AdoRS.Open(_T("saddress"),adCmdTable) )
{
for ( int i=0 ; i<m_Copy_Count;i++ )
{
m_AdoRS.AddNew();
m_AdoRS.PutCollect(_T("UserType") ,m_Copy_Data[i].szUserType);
m_AdoRS.PutCollect(_T("GroupID") ,m_szGroupID);
m_AdoRS.PutCollect(_T("BH") ,m_Copy_Data[i].szBH );
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("InDate") ,m_Copy_Data[i].tInDate );
m_AdoRS.PutCollect(_T("OutDate") ,m_Copy_Data[i].tOutDate );
m_AdoRS.PutCollect(_T("Tel") ,m_Copy_Data[i].szTel );
m_AdoRS.PutCollect(_T("Email") ,m_Copy_Data[i].szEmail );
m_AdoRS.PutCollect(_T("Mobile") ,m_Copy_Data[i].szMobile );
m_AdoRS.PutCollect(_T("Addr") ,m_Copy_Data[i].szAddr );
m_AdoRS.PutCollect(_T("YWY") ,m_Copy_Data[i].szYWY );
m_AdoRS.PutCollect(_T("Price") ,m_Copy_Data[i].szPrice);
m_AdoRS.PutCollect(_T("BZ") ,m_Copy_Data[i].szBZ);
m_AdoRS.PutCollect(_T("CreateTime") ,COleDateTime::GetCurrentTime() );
m_AdoRS.Update();
m_AdoRS.GetCollect(_T("UserID") ,m_Copy_Data[i].lUserID ); //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>UserID
}
m_AdoRS.Close();
}
}
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for ( int i=0 ; i<m_Copy_Count;i++ )
{
long lCount = m_wndList.GetItemCount();
TCHAR Buf[32];
//<2F><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><><EFBFBD><EFBFBD>,80; <20><><EFBFBD><EFBFBD>,180; <20><><EFBFBD><EFBFBD>,100; <20><>ϵ<EFBFBD><CFB5>1,100; <20>ֻ<EFBFBD>,100; <20><>ϵ<EFBFBD><CFB5>2,100; <20>ֻ<EFBFBD>,100;"));
m_wndList.InsertItem( lCount , _itot(lCount+1,Buf,10) ); //<2F><><EFBFBD><EFBFBD>
m_wndList.SetItemText(lCount,1, m_Copy_Data[i].szBH );
m_wndList.SetItemText(lCount,2, m_Copy_Data[i].szName );
m_wndList.SetItemText(lCount,3, m_Copy_Data[i].szNickName );
m_wndList.SetItemText(lCount,4, m_Copy_Data[i].szSex );
COleDateTime t4(m_Copy_Data[i].tBirthday);
if ( t4.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t4.GetYear(),t4.GetMonth(),t4.GetDay());
m_wndList.SetItemText(lCount,5, str );
}
else
{
m_wndList.SetItemText(lCount,5, _T("") );
}
COleDateTime t2(m_Copy_Data[i].tInDate);
if ( t2.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t2.GetYear(),t2.GetMonth(),t2.GetDay());
m_wndList.SetItemText(lCount,6, str );
}
else
{
m_wndList.SetItemText(lCount,6, _T("") );
}
COleDateTime t3(m_Copy_Data[i].tOutDate);
if ( t2.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t3.GetYear(),t3.GetMonth(),t3.GetDay());
m_wndList.SetItemText(lCount,7, str );
}
else
{
m_wndList.SetItemText(lCount,7, _T("") );
}
m_wndList.SetItemText(lCount,8, m_Copy_Data[i].szTel );
m_wndList.SetItemText(lCount,9, m_Copy_Data[i].szMobile );
m_wndList.SetItemText(lCount,10, m_Copy_Data[i].szEmail );
m_wndList.SetItemText(lCount,11, m_Copy_Data[i].szAddr );
m_wndList.SetItemText(lCount,12, m_Copy_Data[i].szYWY );
m_wndList.SetItemText(lCount,13, m_Copy_Data[i].szPrice );
m_wndList.SetItemText(lCount,14, m_Copy_Data[i].szBZ );
m_wndList.SetItemData(lCount,m_Copy_Data[i].lUserID );
}
if ( m_Copy_Type == PADDRESS_COPYTYPE_CUT )
{
//ÿ<><C3BF>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD>β<EFBFBD><CEB2><EFBFBD>
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;
}
}
BOOL CFSAddress::AddUser(CSAddress user,BOOL bShow)
{
CSAddress Address = user;
long lCount = 0;
if ( bShow )
{
lCount = m_wndList.GetItemCount();
TCHAR Buf[32];
CString str;
//<2F><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><><EFBFBD><EFBFBD>,80; <20><><EFBFBD><EFBFBD>,180; <20><><EFBFBD><EFBFBD>,100; <20><>ϵ<EFBFBD><CFB5>1,100; <20>ֻ<EFBFBD>,100; <20><>ϵ<EFBFBD><CFB5>2,100; <20>ֻ<EFBFBD>,100;"));
m_wndList.InsertItem( lCount , _itot(lCount+1,Buf,10) ); //<2F><><EFBFBD><EFBFBD>
m_wndList.SetItemText(lCount,1, Address.szBH );
m_wndList.SetItemText(lCount,2, Address.szName );
m_wndList.SetItemText(lCount,3, Address.szNickName );
m_wndList.SetItemText(lCount,4, Address.szSex );
COleDateTime t4(Address.tBirthday);
if ( t4.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t4.GetYear(),t4.GetMonth(),t4.GetDay());
m_wndList.SetItemText(lCount,5, str );
}
else
{
m_wndList.SetItemText(lCount,5, _T("") );
}
COleDateTime t2(Address.tInDate);
if ( t2.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t2.GetYear(),t2.GetMonth(),t2.GetDay());
m_wndList.SetItemText(lCount,6, str );
}
else
{
m_wndList.SetItemText(lCount,6, _T("") );
}
COleDateTime t3(Address.tOutDate);
if ( t3.GetStatus()==COleDateTime::valid )
{
str.Format( _T("%04d.%02d.%02d"),t3.GetYear(),t3.GetMonth(),t3.GetDay());
m_wndList.SetItemText(lCount,7, str );
}
else
{
m_wndList.SetItemText(lCount,7, _T("") );
}
m_wndList.SetItemText(lCount,8, Address.szTel );
m_wndList.SetItemText(lCount,9, Address.szMobile );
m_wndList.SetItemText(lCount,10, Address.szEmail );
m_wndList.SetItemText(lCount,11, Address.szAddr );
m_wndList.SetItemText(lCount,12, Address.szYWY );
m_wndList.SetItemText(lCount,13, Address.szPrice );
m_wndList.SetItemText(lCount,14, Address.szBZ );
}
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
BOOL b = m_AdoRS.Open( _T("saddress") , adCmdTable );
if ( b )
{
m_AdoRS.AddNew();
m_AdoRS.PutCollect(_T("UserType") ,Address.szUserType);
m_AdoRS.PutCollect(_T("GroupID") ,Address.szGroupID);
m_AdoRS.PutCollect(_T("BH") ,Address.szBH );
m_AdoRS.PutCollect(_T("Name") ,Address.szName );
m_AdoRS.PutCollect(_T("NickName") ,Address.szNickName );
m_AdoRS.PutCollect(_T("Sex") ,Address.szSex );
Address.tBirthday.wHour=0;Address.tBirthday.wMinute=0;Address.tBirthday.wMinute=0;Address.tBirthday.wSecond=0;Address.tBirthday.wMilliseconds=0;
m_AdoRS.PutCollect(_T("Birthday") ,Address.tBirthday );
Address.tInDate.wHour=0;Address.tInDate.wMinute=0;Address.tInDate.wMinute=0;Address.tInDate.wSecond=0;Address.tInDate.wMilliseconds=0;
m_AdoRS.PutCollect(_T("InDate") ,Address.tInDate );
Address.tOutDate.wHour=0;Address.tOutDate.wMinute=0;Address.tOutDate.wMinute=0;Address.tOutDate.wSecond=0;Address.tOutDate.wMilliseconds=0;
m_AdoRS.PutCollect(_T("OutDate") ,Address.tOutDate );
m_AdoRS.PutCollect(_T("Tel") ,Address.szTel );
m_AdoRS.PutCollect(_T("Email") ,Address.szEmail );
m_AdoRS.PutCollect(_T("Mobile") ,Address.szMobile );
m_AdoRS.PutCollect(_T("Addr") ,Address.szAddr );
m_AdoRS.PutCollect(_T("YWY") ,Address.szYWY );
m_AdoRS.PutCollect(_T("Price") ,Address.szPrice);
m_AdoRS.PutCollect(_T("BZ") ,Address.szBZ);
m_AdoRS.PutCollect(_T("CreateTime") ,COleDateTime::GetCurrentTime() );
m_AdoRS.Update();
m_AdoRS.Update();
m_AdoRS.GetCollect(_T("UserID") ,Address.lUserID ); //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>UserID
if ( bShow )
m_wndList.SetItemData( lCount ,Address.lUserID );
}
m_AdoRS.Close();
return true;
}
CSAddress CFSAddress::GetUserData(long lUserID)
{
CSAddress Address={0};
TCHAR szSelect[128]={0};
_stprintf( szSelect , _T("Select * from saddress 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("BH") , Address.szBH);
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("InDate"), t); t.GetAsSystemTime(Address.tInDate);
m_AdoRS.GetCollect( _T("OutDate"), t); t.GetAsSystemTime(Address.tOutDate);
m_AdoRS.GetCollect( _T("Tel") ,Address.szTel );
m_AdoRS.GetCollect( _T("Email") ,Address.szEmail );
m_AdoRS.GetCollect( _T("Mobile") ,Address.szMobile );
m_AdoRS.GetCollect( _T("Addr") ,Address.szAddr );
m_AdoRS.GetCollect( _T("YWY") ,Address.szYWY );
m_AdoRS.GetCollect( _T("Price") ,Address.szPrice);
m_AdoRS.GetCollect( _T("CreateTime") , t); t.GetAsSystemTime(Address.tCreateTime);
m_AdoRS.GetCollect( _T("BZ") , Address.szBZ);
}
return Address;
}
void CFSAddress::OnDestroy()
{
if ( m_Copy_Data )
{
delete m_Copy_Data;
m_Copy_Data = NULL;
}
CDialog::OnDestroy();
}
void CFSAddress::On_User_Log()
{
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
CString strMobile = m_wndList.GetItemText(lItem,9);
DLG_User_Log dlg(this);
dlg.SetParam(&m_AdoRS,strMobile);
dlg.DoModal();
}
void CFSAddress::On_User_Log2()
{
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
CString strMobile = m_wndList.GetItemText(lItem,7);
DLG_User_Log dlg(this);
dlg.SetParam(&m_AdoRS,strMobile);
dlg.DoModal();
}