// 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("���,50; ��ҵ����,200;�ط���,60;������,80;�Ʒ���,80;�ܷ�����,80;�������,80;����,80;ת��,80;�ճ�����,80;�����ʲ�,80;����,80;���ֶ���,80;����ͨ,80;")); m_L_List.Init(true,-1,-1,-1); m_L_List.InsertColumn( 0 , _T("˳��") , LVCFMT_LEFT , 40 , 0); m_L_List.InsertColumn( 1 , _T(" �ֶ���") , 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 ); //���������Ϊ��˳�����ڴ��� } 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("��������ߵ��ֶ��б���ѡ��һ�����������ֶΡ�") , _T("ѡ�����") , MB_OK|MB_ICONWARNING ); return ; } TCHAR szFileName[512]; m_E_FileName.GetWindowText( szFileName , sizeof(szFileName) ); if ( _tcslen(AllTrim(szFileName)) <=0 ) { MessageBox( _T("��������뵼�����ļ�����") , _T("����") , 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("�����ļ�:%s\n��������!") , szFileName ); MessageBox( Buf , _T("����") , MB_ICONWARNING|MB_OK ); return ; } long lAdrCount = m_pList->GetItemCount(); TCHAR Buf[1024]; TCHAR Buf2[256]; long lRecnCount= 0; //�ܼ�¼�� long lFileSize = 0; //�ļ����ֽ��� long lBufLen = 0; for ( i = 0; i<lAdrCount ; i++ ) { memset(Buf , 0 , sizeof(Buf) ); for( int j = 0 ; j< lCheckCount ; j++ ) //������ѡ�е��ֶΣ�ȡͨѶ¼���ݽ��б��档 { memset(Buf2 , 0 , sizeof(Buf2) ); ////m_wndList.SetHeadings(_T("���,50; ��ҵ����,200;�ط���,60;������,80;�Ʒ���,80;�ܷ�����,80;�������,80;����,80;ת��,80;�ճ�����,80;�����ʲ�,80;����,80;���ֶ���,80;����ͨ,80;")); switch( lExPortItem[j] ) { case 0: //��ҵ���� m_pList->GetItemText( i , 1 , Buf2 , sizeof(Buf2) ); break; case 1: //�dz� 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: //���� m_pList->GetItemText( i , 3 , Buf2 , sizeof(Buf2) ); break; case 3: //ְ�� m_pList->GetItemText( i , 4 , Buf2 , sizeof(Buf2) ); break; case 4: //�绰 m_pList->GetItemText( i , 5 , Buf2 , sizeof(Buf2) ); break; case 5: //�ֻ� 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 ) //���һ�����ü�_T(",")�� _tcscat(Buf , _T(",") ); } _tcscat(Buf , _T("\r\n") ); //���� CStringA strA; #ifdef _UNICODE strA = CW2A(Buf); #else strA = Buf; #endif lBufLen = strA.GetLength(); fTalk.Write( strA.GetBuffer() , lBufLen ); lRecnCount++; //ȡ���ܼ�¼�� lFileSize = lFileSize + lBufLen ; //ȡ�����ֽ��� } fTalk.Close(); this->EndWaitCursor(); _stprintf(Buf , _T("���������б��ɹ����������£�\n�����ļ�����:TXT\n������¼��:%d\n�����ֽ���:%d\n�����ļ���:%s") , lRecnCount , lFileSize , szFileName); MessageBox( Buf , _T("�����ɹ�"),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 ); //���������ļ� _stprintf( szAllFile , _T("�����ļ�(*.*)\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("ѡ�������б����ļ�"); 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; }