// outsourcing.cpp : implementation file // #include "stdafx.h" #include "LYFZIPManage.h" #include "outsourcing.h" #include "MyMdi.H" #include "ModifyDinDan.h" #include "InputPsw.h" #include "ClientDlg.h" #include "ImportPhoto.h" #include "ImportPhoto.h" #include "outsourcingDlg.h" #include "outsourcingDlg2.h" #include "NeroDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #pragma comment(lib, "Shlwapi.lib") ///////////////////////////////////////////////////////////////////////////// // outsourcing IMPLEMENT_DYNCREATE(outsourcing, CFormView) outsourcing::outsourcing() : CFormView(outsourcing::IDD) { //{{AFX_DATA_INIT(outsourcing) m_filter = _T(""); //}}AFX_DATA_INIT } outsourcing::~outsourcing() { } void outsourcing::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(outsourcing) DDX_Control(pDX, IDC_COMBO1, m_combo1); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_CBString(pDX, IDC_COMBO1, m_filter); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(outsourcing, CFormView) //{{AFX_MSG_MAP(outsourcing) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1) ON_WM_TIMER() ON_BN_CLICKED(IDC_BUTmodify, OnBUTmodify) ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2) ON_BN_CLICKED(IDC_BUTexport, OnBUTexport) ON_BN_CLICKED(IDC_BUTmodify2, OnBUTmodify2) ON_NOTIFY(NM_RDBLCLK, IDC_LIST2, OnRdblclkList2) ON_BN_CLICKED(IDC_BUTToPhotoPrint, OnBUTToPhotoPrint) ON_BN_CLICKED(IDC_BUTburncd, OnBUTburncd) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // outsourcing diagnostics #ifdef _DEBUG void outsourcing::AssertValid() const { CFormView::AssertValid(); } void outsourcing::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // outsourcing message handlers void outsourcing::OnInitialUpdate() { CFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE); EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0); m_static1.SetFont (&g_titlefont); m_List1.SetHeadings("������,100;�б�����,100;Ů������,100;���,100;�Ӽ�,100;ȡ������,100;�ӵ���,100;��Ʒ����,100;�Ƿ�,100;�Ƿ����,100;�Ƿ����,100;�Ƿ�ȡ��,100;�б��绰,100;Ů���绰,100" ); m_List1.LoadColumnInfo (121); m_List1.m_bSortSupport=0; // DWORD begin=::GetTickCount (); if(g_bShowOK==0) { CString filter="qjstatus='δȡ' and kind<>'5'"; g_sendhead.bsql=0; g_sendhead.code[0]=33; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return; } else { CString filter="kind<>'5'"; g_sendhead.bsql=0; g_sendhead.code[0]=33; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return; } // DWORD end=::GetTickCount ()-begin; // CString timestamp; // timestamp.Format ("%d s", end); // AfxMessageBox(timestamp); DataToArray(&m_List1array); for(int i=0; i<g_userarray.GetSize (); i++) { m_combo1.AddString (g_userarray.ElementAt (i).ElementAt (1) ); } FillGrid(); m_combo1.GetWindowRect (rc2); ScreenToClient(rc2); rc2.bottom +=200; m_combo1.MoveWindow (rc2); GetDlgItem(IDC_BUTexport)->EnableWindow(IsHasRights2new(12)); GetDlgItem(IDC_BUTmodify2)->EnableWindow(IsHasRights2new(14)); } void outsourcing::FillGrid() { m_List1.DeleteAllItems2 (); int ii=0; m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 ); int count=0; if(m_filter.IsEmpty ()) { for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++) { m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii)); } } else { int type=GetType(m_filter); if(type==1)//�绰 {BOOL bFinded=0; for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++) { if(bFinded && m_List1array.ElementAt (ii).ElementAt (0).IsEmpty ()) { m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii)); continue; } if(m_List1array.ElementAt (ii).ElementAt (12).Find (m_filter)!=-1\ || m_List1array.ElementAt (ii).ElementAt (13).Find (m_filter)!=-1 ) { bFinded=1; m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii)); } else { bFinded=0; } } } else if(type==2)//ƴ�� {BOOL bFinded=0; m_filter.MakeUpper (); for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++) { if(bFinded && m_List1array.ElementAt (ii).ElementAt (0).IsEmpty ()) { m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii)); continue; } if(m_List1array.ElementAt (ii).ElementAt (14).Find (m_filter)!=-1\ || m_List1array.ElementAt (ii).ElementAt (15).Find (m_filter)!=-1 ) { bFinded=1; m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii)); } else { bFinded=0; } } } else { BOOL bFinded=0; for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++) { if(bFinded && m_List1array.ElementAt (ii).ElementAt (0).IsEmpty ()) { m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii)); continue; } if(m_List1array.ElementAt (ii).ElementAt (0).Find (m_filter)!=-1 ||m_List1array.ElementAt (ii).ElementAt (1).Find (m_filter)!=-1 || m_List1array.ElementAt (ii).ElementAt (2).Find (m_filter)!=-1 || m_List1array.ElementAt (ii).ElementAt (6).Find (m_filter)!=-1\ || m_List1array.ElementAt (ii).ElementAt (12).Find (m_filter)!=-1\ || m_List1array.ElementAt (ii).ElementAt (13).Find (m_filter)!=-1 ) { bFinded=1; m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii)); } else { bFinded=0; } } } } m_List1.m_arLabels.SetSize(count, 1); ii=count; m_List1.m_LabelCount=ii; m_List1.SetItemCountEx (ii); CString str; str.Format ("����:%d", ii); SetDlgItemText(IDC_STATIC2, str); } void outsourcing::OnBUTclose() { // TODO: Add your control notification handler code here GetParent()->SendMessage(WM_CLOSE); } void outsourcing::OnButton1() { // TODO: Add your control notification handler code here /* CString oldid=""; BOOL bOK=1; CString str; for(int i=0; i<m_List1.GetItemCount (); i++) { if(!m_List1.GetItemText (i, 0).IsEmpty ()) { if(oldid!=m_List1.GetItemText (i, 0)) { if(bOK && i>0) { CString sql; sql= "update dindan set status3='OK' where id='"+oldid+"'"; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql); str+=oldid; } bOK=1; oldid=m_List1.GetItemText (i, 0); } } if(m_List1.GetItemText (i, 11)!="OK") bOK=0; } MessageBox(str);*/ UpdateData(); m_filter.TrimLeft (); m_filter.TrimRight (); FillGrid(); } void outsourcing::OnSelchangeCombo1() { // TODO: Add your control notification handler code here SetTimer(1, 100, NULL); } void outsourcing::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default KillTimer(nIDEvent); OnButton1(); } BOOL outsourcing::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class try { if(pMsg->message==WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: OnButton1(); return 1; case 0x43: // copy if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_COPY); return TRUE; } break; case 0x56: //Ctrl + V: if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_PASTE); return TRUE; } break; case 0x58: // cut if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_CUT); return TRUE; } break; case 0x5A: //undo case 0x59: //redo if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) ) { GetFocus()->SendMessage(WM_UNDO); return TRUE; } break; } } /* else if(pMsg->message==WM_LBUTTONDOWN) { CPoint pt; CRect rc,rc2; ::GetCursorPos (&pt); m_List1.GetWindowRect (rc2); pt.x-=rc2.left ; pt.y-=rc2.top ; m_List1.GetHeaderCtrl()->GetItemRect (0, rc); rc.right =rc.left +rc2.Width (); if(rc.PtInRect (pt)) return 1; }*/ return CFormView::PreTranslateMessage(pMsg); } catch(...) { } } void outsourcing::GetNo(CString str, CStringArray &array) { if(!str.IsEmpty ()) { int pos=str.Find (","); while(pos!=-1) { array.Add (str.Left (pos)); str=str.Right (str.GetLength ()-pos-1); pos=str.Find (","); } array.Add(str); } } extern int CALLBACK BrowseProc(HWND hwnd, UINT msg, LPARAM lParam, LPARAM lpData); /*{ switch(msg) { case BFFM_INITIALIZED: SendMessage(hwnd, BFFM_SETSELECTION, TRUE, NULL); break; case BFFM_SELCHANGED: { char szFileName[MAX_PATH]; LPITEMIDLIST pidlCurrent = (LPITEMIDLIST)lParam; SHGetPathFromIDList(pidlCurrent, szFileName); SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szFileName); } break; } return 0; }*/ void outsourcing::GetSavePath(CString &path) { char lpszDisplayName[MAX_PATH], szFileName[MAX_PATH]; LPITEMIDLIST pidlDesktop, pidlCurrent; if(SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidlDesktop) == NOERROR) { BROWSEINFO bi; bi.hwndOwner = this->m_hWnd; bi.pidlRoot = pidlDesktop; bi.pszDisplayName = lpszDisplayName; bi.lpszTitle = "\n�ĵ������Ŀ¼:"; bi.ulFlags = BIF_STATUSTEXT&BIF_RETURNONLYFSDIRS ; bi.lpfn = BrowseProc; bi.lParam = 0; bi.iImage = 0; pidlCurrent = SHBrowseForFolder(&bi); SHGetPathFromIDList(pidlCurrent, szFileName); path = szFileName; } } int outsourcing::FindArray(CStringArray *pArray, CString *pStr) { for(int i=0; i<pArray->GetSize (); i++) { if(pArray->ElementAt (i)==*pStr) return i; } return -1; } void outsourcing::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here OnBUTmodify(); *pResult = 0; } void outsourcing::OnBUTexport() { if(IsHasRights2new(12)==0)return; // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("����ѡ����Ҫ����Ƭ�Ķ���!", MB_ICONINFORMATION); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString id=m_List1.GetItemText (iItem, 0); CString path; path=g_path3+"\\"; path+=id; path +="\\"; CStringArray array; CString dir; GetSavePath(dir); if(dir.IsEmpty()) { return; } CString name1=m_List1.GetItemText (iItem, 1); CString name2=m_List1.GetItemText (iItem, 2); dir.TrimRight ('\\'); dir+="\\"; dir+=id; dir+=name1; dir+=name2; dir+="��ƺõ�Ƭ"; dir+="\\"; ::CreateDirectory (dir, NULL); CStringArray desarray; CStringArray dirarray; CString savepath=dir; CString str; if(1) { using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(path), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_dir(); for (it = coo.begin(); coo.end() != it; it ++) { str=(*it).c_str(); if(FindArray(&dirarray, &str)==-1) { dirarray.Add (str); if(str!=dirarray.ElementAt (0)) { str=savepath+str.Right (str.GetLength ()-dirarray.ElementAt (0).GetLength ()); if(::PathFileExists (str)==0) ::CreateDirectory (str, NULL); } } } } if(1) { for(int i=0; i<dirarray.GetSize (); i++) { using namespace helper_coffs; ffsco o; o.dirs(0); o.find(LPCSTR(dirarray.ElementAt (i)), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it ++) { str=(*it).c_str(); if(str.GetAt (str.ReverseFind ('\\')+1)=='s')continue; array.Add (str); desarray.Add (savepath+dirarray.ElementAt (i).Right (dirarray.ElementAt (i).GetLength ()-dirarray.ElementAt (0).GetLength ())+str.Right (str.GetLength ()-str.ReverseFind ('\\')-1)); } } } if(array.GetSize ()==0) { AfxMessageBox("�˵�δ��Ƭ!", MB_ICONINFORMATION); return; } ImportPhoto dlg; dlg.m_mode =1; dlg.m_pArray=&array; dlg.m_pDesArray=&desarray; dlg.m_savepath =dir; dlg.DoModal (); AfxMessageBox("��Ƭ�ɹ�!", MB_ICONINFORMATION); } void outsourcing::OnBUTmodify() { // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { return; } int iItem=m_List1.GetNextSelectedItem(pos); CString id=m_List1.GetItemText (iItem, 0); while(id=="") { iItem--; id=m_List1.GetItemText (iItem, 0); } outsourcingDlg dlg; dlg.m_id =id; dlg.m_name1 =m_List1.GetItemText (iItem, 1); dlg.m_name2 =m_List1.GetItemText (iItem, 2); if(dlg.DoModal ()!=IDOK)return; for(int i=0; i<m_List1array.GetSize (); i++) { if(id==m_List1array.ElementAt (i).ElementAt (0)) { iItem=i; break; } } int pos2; CString name; while(id==m_List1array.ElementAt (iItem).ElementAt (0) || m_List1array.ElementAt (iItem).ElementAt (0).IsEmpty ()) { name=m_List1array.ElementAt (iItem).ElementAt (7); for(int i=0; i<dlg.m_sparray.GetSize (); i++) { if(name==dlg.m_sparray.ElementAt (i).ElementAt (0)) { pos2=i; break; } } m_List1array.ElementAt (iItem).SetAt (8, dlg.m_sparray .ElementAt (pos2).ElementAt(2)); m_List1array.ElementAt (iItem).SetAt (9, dlg.m_sparray .ElementAt (pos2).ElementAt(3)); m_List1array.ElementAt (iItem).SetAt (10, dlg.m_sparray .ElementAt (pos2).ElementAt(4)); m_List1array.ElementAt (iItem).SetAt (11, dlg.m_sparray .ElementAt (pos2).ElementAt(5)); iItem++; if(iItem>=m_List1array.GetSize ())break; } FillGrid(); } void outsourcing::OnBUTmodify2() { // TODO: Add your control notification handler code here if(IsHasRights2new(14)==0)return; // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { return; } int iItem=m_List1.GetNextSelectedItem(pos); CString id=m_List1.GetItemText (iItem, 0); while(id=="") { iItem--; id=m_List1.GetItemText (iItem, 0); } outsourcingDlg2 dlg; dlg.m_id =id; dlg.m_name1 =m_List1.GetItemText (iItem, 1); dlg.m_name2 =m_List1.GetItemText (iItem, 2); if(dlg.DoModal ()!=IDOK)return; } void outsourcing::OnRdblclkList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here OnBUTmodify2(); *pResult = 0; } void outsourcing::OnBUTToPhotoPrint() { // TODO: Add your control notification handler code here g_pMainWnd->ToPhotoPrint() ; } void outsourcing::OnBUTburncd() { // TODO: Add your control notification handler code here }