297 lines
8.1 KiB
C++
297 lines
8.1 KiB
C++
|
// DLG_HZB_Export.cpp : implementation file
|
|||
|
//
|
|||
|
|
|||
|
#include "stdafx.h"
|
|||
|
#include "smsmanager.h"
|
|||
|
#include "DLG_HZB_Export.h"
|
|||
|
|
|||
|
#ifdef _DEBUG
|
|||
|
#define new DEBUG_NEW
|
|||
|
#undef THIS_FILE
|
|||
|
static char THIS_FILE[] = __FILE__;
|
|||
|
#endif
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
// DLG_HZB_Export dialog
|
|||
|
|
|||
|
|
|||
|
DLG_HZB_Export::DLG_HZB_Export(CWnd* pParent /*=NULL*/)
|
|||
|
: CDialog(DLG_HZB_Export::IDD, pParent)
|
|||
|
{
|
|||
|
//{{AFX_DATA_INIT(DLG_HZB_Export)
|
|||
|
// NOTE: the ClassWizard will add member initialization here
|
|||
|
//}}AFX_DATA_INIT
|
|||
|
|
|||
|
m_pList = NULL;
|
|||
|
m_pItem = NULL;
|
|||
|
m_lItemCount=0;
|
|||
|
m_lAddJH = -1;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void DLG_HZB_Export::DoDataExchange(CDataExchange* pDX)
|
|||
|
{
|
|||
|
CDialog::DoDataExchange(pDX);
|
|||
|
//{{AFX_DATA_MAP(DLG_HZB_Export)
|
|||
|
DDX_Control(pDX, IDC_USER_EXPORT_LIST, m_L_List);
|
|||
|
DDX_Control(pDX, IDC_USER_EXPORT_FILENAME, m_E_FileName);
|
|||
|
//}}AFX_DATA_MAP
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
BEGIN_MESSAGE_MAP(DLG_HZB_Export, CDialog)
|
|||
|
//{{AFX_MSG_MAP(DLG_HZB_Export)
|
|||
|
ON_BN_CLICKED(IDC_USER_EXPORT_SELALL, OnUserExportSelall)
|
|||
|
ON_BN_CLICKED(IDC_USER_EXPORT_CLEAR, OnUserExportClear)
|
|||
|
ON_BN_CLICKED(IDC_USER_EXPORT_FILENAME_SEL, OnUserExportFilenameSel)
|
|||
|
//}}AFX_MSG_MAP
|
|||
|
END_MESSAGE_MAP()
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
// DLG_HZB_Export message handlers
|
|||
|
|
|||
|
BOOL DLG_HZB_Export::OnInitDialog()
|
|||
|
{
|
|||
|
CDialog::OnInitDialog();
|
|||
|
|
|||
|
InitList();
|
|||
|
|
|||
|
return TRUE; // return TRUE unless you set the focus to a control
|
|||
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|||
|
}
|
|||
|
|
|||
|
void DLG_HZB_Export::InitList()
|
|||
|
{
|
|||
|
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>,200;<3B>ط<EFBFBD><D8B7><EFBFBD>,60;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B>Ʒ<EFBFBD><C6B7><EFBFBD>,80;<3B>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD>,80;ת<><D7AA>,80;<3B>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD>,80;<3B><><EFBFBD><EFBFBD>,80;<3B><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>,80;<3B><><EFBFBD><EFBFBD>ͨ,80;"));
|
|||
|
|
|||
|
m_L_List.Init(true,-1,-1,-1);
|
|||
|
m_L_List.InsertColumn( 0 , _T("˳<EFBFBD><EFBFBD>") , LVCFMT_LEFT , 40 , 0);
|
|||
|
m_L_List.InsertColumn( 1 , _T(" <20>ֶ<EFBFBD><D6B6><EFBFBD>") , LVCFMT_LEFT , 120 , 1);
|
|||
|
m_L_List.SetTextColor( RGB(0,0,255) );
|
|||
|
|
|||
|
TCHAR Buf[256]={0};
|
|||
|
for ( int i = 0 ; i<m_lItemCount ; i++ )
|
|||
|
{
|
|||
|
m_L_List.InsertItem( i , _itot(i+1,Buf,10) );
|
|||
|
m_L_List.SetItemText(i , 1 , m_pItem[i].szItem );
|
|||
|
m_L_List.SetItemData(i , i ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
|||
|
}
|
|||
|
m_L_List.CheckAll();
|
|||
|
m_L_List.NoverCheck();
|
|||
|
m_L_List.ReShowSort();
|
|||
|
|
|||
|
if ( m_lAddJH==-2 )
|
|||
|
{
|
|||
|
m_L_List.SetCheck(0,false);
|
|||
|
m_L_List.SetCheck(1,false);
|
|||
|
m_L_List.SetCheck(2,false);
|
|||
|
m_L_List.SetCheck(3,false);
|
|||
|
m_L_List.SetCheck(4,false);
|
|||
|
m_L_List.SetCheck(7,false);
|
|||
|
m_L_List.SetCheck(9,false);
|
|||
|
m_L_List.SetCheck(10,false);
|
|||
|
m_L_List.SetCheck(11,false);
|
|||
|
m_L_List.SetCheck(13,false);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void DLG_HZB_Export::OnUserExportSelall()
|
|||
|
{
|
|||
|
m_L_List.CheckAll();
|
|||
|
}
|
|||
|
|
|||
|
void DLG_HZB_Export::OnUserExportClear()
|
|||
|
{
|
|||
|
m_L_List.ClearAll();
|
|||
|
}
|
|||
|
|
|||
|
void DLG_HZB_Export::OnOK()
|
|||
|
{
|
|||
|
long lItemCount = m_L_List.GetItemCount();
|
|||
|
long lExPortItem[50];memset(&lExPortItem,0,sizeof(lExPortItem));
|
|||
|
for ( int j=0 ; j < 50 ; j++ ) lExPortItem[j] = -1;
|
|||
|
long lCheckCount = 0;
|
|||
|
for ( int i=0 ; i<lItemCount ; i++ )
|
|||
|
{
|
|||
|
if ( m_L_List.GetCheck(i) )
|
|||
|
{
|
|||
|
lExPortItem[lCheckCount] = m_L_List.GetItemData(i) ;
|
|||
|
lCheckCount ++;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if ( lCheckCount <=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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶΡ<EFBFBD>") , _T("ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_OK|MB_ICONWARNING );
|
|||
|
return ;
|
|||
|
}
|
|||
|
TCHAR szFileName[512];
|
|||
|
m_E_FileName.GetWindowText( szFileName , sizeof(szFileName) );
|
|||
|
if ( _tcslen(AllTrim(szFileName)) <=0 )
|
|||
|
{
|
|||
|
MessageBox( _T("<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_OK|MB_ICONWARNING );
|
|||
|
m_E_FileName.SetFocus();
|
|||
|
return ;
|
|||
|
}
|
|||
|
|
|||
|
CFile fTalk;
|
|||
|
if ( !fTalk.Open( szFileName , CFile::modeReadWrite|CFile::modeCreate ) )
|
|||
|
{
|
|||
|
TCHAR Buf[512];
|
|||
|
_stprintf( Buf , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>:%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , szFileName );
|
|||
|
MessageBox( Buf , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING|MB_OK );
|
|||
|
return ;
|
|||
|
}
|
|||
|
|
|||
|
long lAdrCount = m_pList->GetItemCount();
|
|||
|
TCHAR Buf[1024];
|
|||
|
TCHAR Buf2[256];
|
|||
|
long lRecnCount= 0; //<2F>ܼ<EFBFBD>¼<EFBFBD><C2BC>
|
|||
|
long lFileSize = 0; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
|||
|
long lBufLen = 0;
|
|||
|
for ( i = 0; i<lAdrCount ; i++ )
|
|||
|
{
|
|||
|
memset(Buf , 0 , sizeof(Buf) );
|
|||
|
for( int j = 0 ; j< lCheckCount ; j++ ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>е<EFBFBD><D0B5>ֶΣ<D6B6>ȡͨѶ¼<D1B6><C2BC><EFBFBD>ݽ<EFBFBD><DDBD>б<EFBFBD><D0B1>档
|
|||
|
{
|
|||
|
memset(Buf2 , 0 , sizeof(Buf2) );
|
|||
|
////m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>,200;<3B>ط<EFBFBD><D8B7><EFBFBD>,60;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B>Ʒ<EFBFBD><C6B7><EFBFBD>,80;<3B>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD>,80;ת<><D7AA>,80;<3B>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD>,80;<3B><><EFBFBD><EFBFBD>,80;<3B><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>,80;<3B><><EFBFBD><EFBFBD>ͨ,80;"));
|
|||
|
switch( lExPortItem[j] )
|
|||
|
{
|
|||
|
case 0: //<2F><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>
|
|||
|
m_pList->GetItemText( i , 1 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 1: //<2F>dz<EFBFBD>
|
|||
|
if ( m_lAddJH == 1 )
|
|||
|
{
|
|||
|
Buf2[0]='#';
|
|||
|
m_pList->GetItemText( i , 2 , Buf2+1 , sizeof(Buf2) );
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_pList->GetItemText( i , 2 , Buf2 , sizeof(Buf2) );
|
|||
|
}
|
|||
|
break;
|
|||
|
case 2: //<2F><><EFBFBD><EFBFBD>
|
|||
|
m_pList->GetItemText( i , 3 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 3: //ְ<><D6B0>
|
|||
|
m_pList->GetItemText( i , 4 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 4: //<2F>绰
|
|||
|
m_pList->GetItemText( i , 5 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 5: //<2F>ֻ<EFBFBD>
|
|||
|
m_pList->GetItemText( i , 6 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 6: //Email
|
|||
|
m_pList->GetItemText( i , 7 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 7: //Email
|
|||
|
m_pList->GetItemText( i , 8 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 8: //Email
|
|||
|
m_pList->GetItemText( i , 9 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 9: //Email
|
|||
|
m_pList->GetItemText( i , 10 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 10: //Email
|
|||
|
m_pList->GetItemText( i , 11 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 11: //Email
|
|||
|
m_pList->GetItemText( i , 12 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 12: //Email
|
|||
|
m_pList->GetItemText( i , 13 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 13: //Email
|
|||
|
m_pList->GetItemText( i , 14 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
case 14: //Email
|
|||
|
m_pList->GetItemText( i , 15 , Buf2 , sizeof(Buf2) );
|
|||
|
break;
|
|||
|
}
|
|||
|
ExChar(Buf2,_T(","));
|
|||
|
ExChar(Buf2,_T("\r"));
|
|||
|
ExChar(Buf2,_T("\n"));
|
|||
|
ExChar(Buf2,_T("\t"));
|
|||
|
_tcscat(Buf , Buf2 );
|
|||
|
if ( j < lCheckCount-1 ) //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD>_T(",")<29><>
|
|||
|
_tcscat(Buf , _T(",") );
|
|||
|
}
|
|||
|
_tcscat(Buf , _T("\r\n") ); //<2F><><EFBFBD><EFBFBD>
|
|||
|
CStringA strA;
|
|||
|
#ifdef _UNICODE
|
|||
|
strA = CW2A(Buf);
|
|||
|
#else
|
|||
|
strA = Buf;
|
|||
|
#endif
|
|||
|
lBufLen = strA.GetLength();
|
|||
|
fTalk.Write( strA.GetBuffer() , lBufLen );
|
|||
|
lRecnCount++; //ȡ<><C8A1><EFBFBD>ܼ<EFBFBD>¼<EFBFBD><C2BC>
|
|||
|
lFileSize = lFileSize + lBufLen ; //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
|||
|
}
|
|||
|
fTalk.Close();
|
|||
|
this->EndWaitCursor();
|
|||
|
_stprintf(Buf , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:TXT\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>:%d\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>:%d\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>:%s") , lRecnCount , lFileSize , szFileName);
|
|||
|
MessageBox( Buf , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"),MB_OK|MB_ICONINFORMATION );
|
|||
|
|
|||
|
CDialog::OnOK();
|
|||
|
}
|
|||
|
|
|||
|
void DLG_HZB_Export::OnUserExportFilenameSel()
|
|||
|
{
|
|||
|
TCHAR szFile[256] = { 0 };
|
|||
|
TCHAR szFileB[ 256] = { 0 };
|
|||
|
TCHAR szFilter[ 256 ] = { 0 };
|
|||
|
TCHAR szAllFile[ 50 ] = { 0 };
|
|||
|
*szFileB = NULL;
|
|||
|
if ( m_lAddJH == 1 )
|
|||
|
_stprintf( szFile , _T("HZB.csv") );
|
|||
|
if ( m_lAddJH == -2 )
|
|||
|
_stprintf( szFile , _T("List.csv") );
|
|||
|
if ( m_lAddJH == -3 )
|
|||
|
_stprintf( szFile , _T("Pay.csv") );
|
|||
|
_stprintf( szFilter , _T("Excel csv(*.csv)\0"));
|
|||
|
_tcsncpy( (szFilter + _tcslen( szFilter ) + 1 ) , _T("*.csv") , 5);
|
|||
|
//memset( (szFilter + _tcslen( szFilter ) + 1 +5 ) , 0 , 2 );
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
_stprintf( szAllFile , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>(*.*)\0"));
|
|||
|
_stprintf( ( szAllFile + _tcslen( szAllFile ) + 1 ) , _T("*.*") , 3);
|
|||
|
//memset( ( szAllFile + _tcslen( szAllFile ) + 1 + 3 ) , 0 , 2 );
|
|||
|
memcpy( szFilter + _tcslen( szFilter ) + 1 + 5 + 1 ,
|
|||
|
szAllFile , (_tcslen( szAllFile) + 1 + 5 + 3)*sizeof(TCHAR));
|
|||
|
|
|||
|
OPENFILENAME sOpen;
|
|||
|
sOpen.lStructSize = sizeof( sOpen );
|
|||
|
sOpen.hwndOwner = this->m_hWnd ;
|
|||
|
sOpen.Flags = OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
|
|||
|
sOpen.lpstrFilter = szFilter;
|
|||
|
sOpen.lpstrDefExt = _T("*.csv");
|
|||
|
sOpen.lpstrCustomFilter = NULL;
|
|||
|
sOpen.nMaxCustFilter = 0;
|
|||
|
sOpen.lpstrFile = szFile;
|
|||
|
sOpen.nMaxFile = sizeof( szFile );
|
|||
|
sOpen.lpstrFileTitle = szFileB;
|
|||
|
sOpen.nMaxFileTitle = sizeof( szFileB );
|
|||
|
sOpen.lpstrInitialDir = NULL;
|
|||
|
sOpen.lpstrTitle = _T("ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
|
|||
|
if ( ::GetSaveFileName( &sOpen ) )
|
|||
|
{
|
|||
|
m_E_FileName.SetWindowText(sOpen.lpstrFile);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void DLG_HZB_Export::SetParam(CListCtrl *pList)
|
|||
|
{
|
|||
|
m_pList = pList;
|
|||
|
}
|
|||
|
|
|||
|
void DLG_HZB_Export::SetListItem( SortItem * pItem , long lCount , long lAddJH)
|
|||
|
{
|
|||
|
m_pItem = pItem;
|
|||
|
m_lItemCount = lCount;
|
|||
|
m_lAddJH = lAddJH;
|
|||
|
}
|