// ProcessAlarm.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "ProcessAlarm.h" #include "MyMdi.H" #include "ModifyDinDan.h" #include "InputPsw.h" #include "ImportPhoto.h" #include "ImportPhoto.h" #include "NeroDlg.h" #include "ClientRequirement.h" #include "ChoosePhotoSkin2.h" #include "./helper/ffsco.h" #include "TakeMoney4.h" #include "AlarmDays.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #pragma comment(lib, "Shlwapi.lib") ///////////////////////////////////////////////////////////////////////////// // ProcessAlarm IMPLEMENT_DYNCREATE(ProcessAlarm, MyFormView) ProcessAlarm::ProcessAlarm() : MyFormView(ProcessAlarm::IDD) { //{{AFX_DATA_INIT(ProcessAlarm) m_filter = _T(""); m_check1 = FALSE; m_check2 = FALSE; //}}AFX_DATA_INIT } ProcessAlarm::~ProcessAlarm() { } void ProcessAlarm::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(ProcessAlarm) 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); DDX_Check(pDX, IDC_CHECK1, m_check1); DDX_Check(pDX, IDC_CHECK2, m_check2); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(ProcessAlarm, MyFormView) //{{AFX_MSG_MAP(ProcessAlarm) 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_BUTshowphoto, OnBUTshowphoto) ON_BN_CLICKED(IDC_BUTexportphoto, OnBUTexportphoto) ON_BN_CLICKED(IDC_BUTimportphoto, OnBUTimportphoto) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2) ON_BN_CLICKED(IDC_BUTburncd, OnBUTProcessAlarm) ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2) ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2) ON_BN_CLICKED(IDC_BUTburncd2, OnBUTburncd2) ON_BN_CLICKED(IDC_CHECK1, OnCheck1) ON_BN_CLICKED(IDC_CHECK2, OnCheck2) //}}AFX_MSG_MAP ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST2, OnCustomdrawList) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // ProcessAlarm diagnostics #ifdef _DEBUG void ProcessAlarm::AssertValid() const { MyFormView::AssertValid(); } void ProcessAlarm::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // ProcessAlarm message handlers void ProcessAlarm::OnInitialUpdate() { MyFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); GetDlgItem(IDC_BUTburncd2)->EnableWindow(IsHasRights2new(49)); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. tmdoday = ::GetTmFromStr (g_date); //tmdt tmdindan 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); #ifdef CHILD_VERSION m_List1.SetHeadings("订单号,109;家长姓名,85;宝宝姓名,85;门市,85;订单日期,86;拍照时间,86;选片时间,86;拍照,70;拍完,70;选片,50;看样,50;件齐,50;取走,50;手机,100;固定电话,100" ); #else m_List1.SetHeadings("订单号,109;男宾姓名,85;女宾姓名,85;门市,85;订单日期,86;拍照时间,86;选片时间,86;拍照,70;拍完,70;选片,50;看样,50;件齐,50;取走,50;男宾电话,100;女宾电话,100" ); #endif m_List1.LoadColumnInfo(303); // 获取alarmview视图数据,并转换; g_sendhead.bsql=0; g_sendhead.code[0]=229; // alarmview需要重新设计; g_sendhead.tabcount=1; g_pMainWnd->ProcessChatMessageRequest2(1); if(g_bSendOK==0) return; DataToArray(&m_List1array); // 初始化列表框数据记录; FillGrid(); m_combo1.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom +=200; m_combo1.MoveWindow(rc2); GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2); SetComboHei(&m_combo1, rc2.Height()); } void ProcessAlarm::FillGrid(BOOL bStatus)//对list列表框初始化数据记录; { m_List1.DeleteAllItems2(); int ii=0; m_List1.m_arLabels.SetSize( m_List1array.GetSize(), 1 ); //m_List1.m_arLabels.SetSize( m_List1array.GetSize()-2, 1 ); int count=0; if(m_filter.IsEmpty()) { for(ii=0; iiSendMessage(WM_CLOSE); } void ProcessAlarm::OnSelchangeCombo1() { SetTimer(1, 100, NULL); } void ProcessAlarm::OnTimer(UINT nIDEvent) { KillTimer(nIDEvent); OnButton1(); } BOOL ProcessAlarm::PreTranslateMessage(MSG* pMsg) { 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; } } return MyFormView::PreTranslateMessage(pMsg); } catch(...) { } } 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 ProcessAlarm::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 ProcessAlarm::FindArray(CStringArray *pArray, CString Str) { for(int i=0; iGetSize (); i++) { if(pArray->ElementAt (i)==Str) return i; } return -1; } void ProcessAlarm::GetNo(CString str, CStringArray &array) { if(!str.IsEmpty ()) { int pos=str.Find (","); while(pos!=-1) { if(FindArray(&array, str.Left (pos))==-1) array.Add (str.Left (pos)); str=str.Right (str.GetLength ()-pos-1); pos=str.Find (","); } if(FindArray(&array, str)==-1) array.Add(str); } } CString ProcessAlarm::GetSelName(CString name, CArray&spnamearray) { CString ret; name=","+name+","; CString str; for(int i=0; i( pNMHDR ); // Take the default processing unless we set this to something else below. *pResult = 0; // First thing - check the draw stage. If it's the control's prepaint // stage, then tell Windows we want messages for every item. if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { // This is the prepaint stage for an item. Here's where we set the // item's text color. Our return value will tell Windows to draw the // item itself, but it will use the new color we set here. // We'll cycle the colors through red, green, and light blue. *pResult = CDRF_NOTIFYSUBITEMDRAW; /* if(pLVCD->nmcd.dwItemSpec%2) pLVCD->clrTextBk = g_gridcol1; else pLVCD->clrTextBk = g_gridcol2; if(pLVCD->nmcd.dwItemSpec==0)pLVCD->clrTextBk = RGB(220,0,0); if(pLVCD->nmcd.dwItemSpec==2)pLVCD->clrTextBk = RGB(20,133,20); */ } else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage ) { // This is the prepaint stage for a subitem. Here's where we set the // item's text and background colors. Our return value will tell // Windows to draw the subitem itself, but it will use the new colors // we set here. // The text color will cycle through red, green, and light blue. // The background color will be light blue for column 0, red for // column 1, and black for column 2. COLORREF crBkgnd; if (1 ) { if(pLVCD->nmcd.dwItemSpec%2) crBkgnd = g_gridcol1; else crBkgnd = g_gridcol2; } #if 0 static BOOL b1 = FALSE; static BOOL b2 = FALSE; static BOOL b3 = FALSE; static BOOL b4 = FALSE; static BOOL b5 = FALSE; if ( 7 == pLVCD->iSubItem ) // 拍照字段; **不修改对比时间 { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(4)); tmdt=tmdoday-tmdindan; if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(141)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(7)=="未拍") { b1 = FALSE; crBkgnd = RGB(220,0,0); // 红 } else { b1 = TRUE; crBkgnd = RGB(20,133,20); // 绿 } } else if ( 8 == pLVCD->iSubItem ) // 拍完字段; **不修改对比时间 { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(4)); tmdt=tmdoday-tmdindan; if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(142)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(8)=="未拍完" || b1==FALSE) //if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(142)) && b1==FALSE) { b2 = FALSE; crBkgnd = RGB(220,0,0); } else { b2 = TRUE; crBkgnd = RGB(20,133,20); } } else if ( 9 == pLVCD->iSubItem ) // 选片字段; **对比拍完时间 { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(5)); // (5).拍照时间 && 拍照状态=ok tmdt=tmdoday-tmdindan; //if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(143)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(9)!="OK" || b2==FALSE/*&& m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(8)=="未拍完"*/ ) if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(143)) && b2==FALSE ) { b3 = FALSE; crBkgnd = RGB(220,0,0); } else { b3 = TRUE; crBkgnd = RGB(20,133,20); } } else if ( 10 == pLVCD->iSubItem ) // 看样字段; **对比选完时间 { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6)); // (6).选片时间 && 选片状态=ok tmdt=tmdoday-tmdindan; //if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(144)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt (10)!="OK" || b3 == FALSE/* && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(9)=="未选"*/) if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(144)) && b3 == FALSE) { b4 = FALSE; crBkgnd = RGB(220,0,0); } else { b4 = TRUE; crBkgnd = RGB(20,133,20); } } else if ( 11 == pLVCD->iSubItem ) // 件齐字段; **对比选完时间 { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt(6)); // (6).选片时间 && 选片状态=ok tmdt=tmdoday-tmdindan; //if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(145)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt (11)!="OK" || b4==FALSE/* && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(9)=="未选"*/) if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(145)) && b4==FALSE) { b5 = FALSE; crBkgnd = RGB(220,0,0); } else { b5 = TRUE; crBkgnd = RGB(20,133,20); } } else if ( 12 == pLVCD->iSubItem ) // 取走字段; **对比选完时间 { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt(6)); // (6).选片时间 && 选片状态=ok tmdt=tmdoday-tmdindan; //if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(146)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt (12)=="未取" || b5==FALSE/*&& m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(9)=="未选"*/) if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(146)) && b5==FALSE) crBkgnd = RGB(220,0,0); else crBkgnd = RGB(20,133,20); } #else static BOOL b1 = FALSE; static BOOL b2 = FALSE; static BOOL b3 = FALSE; switch(pLVCD->iSubItem) { case 7:// 拍照字段; **不修改对比时间 tmdindan = ::GetTmFromStr(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(4)); tmdt=tmdoday-tmdindan; if(tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(141)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(7)=="未拍") { b1 = FALSE; crBkgnd = RGB(220,0,0); // 红 } else { b1 = TRUE; crBkgnd = RGB(20,133,20); // 绿 } break; case 8: // 拍完字段 red = !b1 && tmdt>(142) && 未拍完 tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(4)); //printf("Jeff:订单号:%s,订单时间:%s\n\n",m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(1),m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(4));//Jeff Printf; //printf("Jeff:订单号;%s,订单时间:%s,订单后%s天\n\n",m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(1),m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(4),g_cominfoarray.ElementAt(0).ElementAt(142));//Jeff Printf; tmdt=tmdoday-tmdindan; //printf("Jeff:离订单时间后:%d天\n\n",tmdt.GetDays());// Jeff Printf; if( /*b1==FALSE ||*/ tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(142)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(8)=="未拍完" ) { b2 = FALSE; crBkgnd = RGB(220,0,0); } else { b2 = TRUE; crBkgnd = RGB(20,133,20); } break; case 9: // 选片字段 if (m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(5) == "") // 拍照时间空; { crBkgnd = RGB(20,133,20); }else { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(5)); // (5).拍照时间 && 拍照状态=ok tmdt=tmdoday-tmdindan; if( b2==FALSE || tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(143)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(9)!="OK" /*&& m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(8)=="未拍完"*/ ) { b3 = FALSE; crBkgnd = RGB(220,0,0); } else { b3 = TRUE; crBkgnd = RGB(20,133,20); } } break; case 10: // 看样字段; if ( m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6) == "") // 选片时间空; { //printf("Jeff:选片时间为空\n\n");//Jeff Printf; crBkgnd = RGB(20,133,20); }else { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6)); // (6).选片时间 && 选片状态=ok // 若没有选片时间,该值为空; tmdt=tmdoday-tmdindan; if( b3==FALSE || tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(144)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt (10)!="OK" ) { //b4 = FALSE; crBkgnd = RGB(220,0,0); } else { //b4 = TRUE; crBkgnd = RGB(20,133,20); } } break; case 11: // 件齐字段; if (m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6) == "") { crBkgnd = RGB(20,133,20); }else { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt(6)); // (6).选片时间 && 选片状态=ok tmdt=tmdoday-tmdindan; if(b3==FALSE || tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(145)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt (11)!="OK" /* && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(9)=="未选"*/) { /*b5 = FALSE;*/ crBkgnd = RGB(220,0,0); } else { //b5 = TRUE; crBkgnd = RGB(20,133,20); } } break; case 12: // 取走字段; if (m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6) == "") { crBkgnd = RGB(20,133,20); }else { tmdindan= ::GetTmFromStr(m_List1.m_arLabels.ElementAt (pLVCD->nmcd.dwItemSpec).ElementAt(6)); // (6).选片时间 && 选片状态=ok tmdt=tmdoday-tmdindan; if(b3==FALSE || tmdt.GetDays()>=atoi(g_cominfoarray.ElementAt(0).ElementAt(146)) && m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt (12)=="未取" /*&& m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(9)=="未选"*/) crBkgnd = RGB(220,0,0); else crBkgnd = RGB(20,133,20); } break; default: break; } #endif // Store the colors back in the NMLVCUSTOMDRAW struct. pLVCD->clrText = RGB(0,0,0); pLVCD->clrTextBk = crBkgnd; // Tell Windows to paint the control itself. *pResult = CDRF_DODEFAULT; } } void ProcessAlarm::OnBUTProcessAlarm() { // TODO: Add your control notification handler code here AlarmDays dlg; if(IDOK==dlg.DoModal()) OnButton1(); } void ProcessAlarm::OnBUTburncd2() { ListToXLS(&m_List1, "c:\\客人流程.xls", 0); }