// outsourcing3.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "outsourcing3.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // outsourcing3 outsourcing3::outsourcing3(CWnd* pParent /*=NULL*/) : CDialog(outsourcing3::IDD) { //{{AFX_DATA_INIT(outsourcing3) m_year = atoi(g_date.Mid(0, 4)); m_month = atoi(g_date.Mid(5, 2)); m_day = atoi(g_date.Mid(8, 2)); m_check1 = FALSE; m_bInit = 0; m_timestmap = 0; m_radio = 0; //}}AFX_DATA_INIT } void outsourcing3::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(outsourcing3) DDX_Control(pDX, IDC_COMBObranch, m_combobranch); DDX_Control(pDX, IDC_COMBOsplb2, m_combosplb2); DDX_Control(pDX, IDC_COMBOsp2, m_combosp2); DDX_Control(pDX, IDC_COMBOsp, m_combosp); DDX_Control(pDX, IDC_COMBOsplb, m_combosplb); DDX_Control(pDX, IDC_SPIN3, m_spinday); DDX_Control(pDX, IDC_SPIN2, m_spinmonth); DDX_Control(pDX, IDC_SPIN1, m_spinyear); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_Text(pDX, IDC_EDITyear, m_year); DDV_MinMaxUInt(pDX, m_year, 1900, 3000); DDX_Text(pDX, IDC_EDITmonth, m_month); DDV_MinMaxUInt(pDX, m_month, 1, 12); DDX_Text(pDX, IDC_EDITday, m_day); DDV_MinMaxUInt(pDX, m_day, 1, 31); DDX_Check(pDX, IDC_CHECK1, m_check1); DDX_Radio(pDX, IDC_RADIO3, m_radio); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(outsourcing3, CDialog) //{{AFX_MSG_MAP(outsourcing3) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear) ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth) ON_EN_CHANGE(IDC_EDITday, OnChangeEDITday) ON_CBN_SELCHANGE(IDC_COMBOsplb, OnSelchangeCOMBOsplb) ON_BN_CLICKED(IDC_CHECK1, OnCheck1) ON_CBN_SELCHANGE(IDC_COMBOsplb2, OnSelchangeCOMBOsplb2) ON_CBN_SELCHANGE(IDC_COMBOsp2, OnSelchangeCOMBOsp2) ON_BN_CLICKED(IDC_RADIO3, OnRadio3) ON_BN_CLICKED(IDC_RADIO4, OnRadio4) ON_BN_CLICKED(IDC_BUTprint, OnBUTprint) ON_CBN_SELCHANGE(IDC_COMBObranch, OnSelchangeCOMBObranch) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // outsourcing3 diagnostics #ifdef _DEBUG void outsourcing3::AssertValid() const { CDialog::AssertValid(); } void outsourcing3::Dump(CDumpContext& dc) const { CDialog::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // outsourcing3 message handlers extern BOOL CALLBACK EnumChildProc2(HWND hwnd, LPARAM lParam); BOOL outsourcing3::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add your specialized code here and/or call the base class int i = 0; if (g_bAllBranch) { GetDlgItem(IDC_STATIC3)->ShowWindow(SW_SHOW); GetDlgItem(IDC_COMBObranch)->ShowWindow(SW_SHOW); // m_combobranch.AddString (""); for ( i = 0; i < g_brancharray.GetSize(); i++) { m_combobranch.AddString(g_brancharray.ElementAt(i).ElementAt(0)); } } CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE); g_WidthScale2 = (float)g_rc.Width() / (float)rc2.Width(); // new/Old g_HeightScale2 = (float)g_rc.Height() / (float)rc2.Height(); EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc2, 0); m_combosplb.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 200; m_combosplb.MoveWindow(rc2); m_combosp.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 200; m_combosp.MoveWindow(rc2); m_combosplb2.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 200; m_combosplb2.MoveWindow(rc2); m_combosp2.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 200; m_combosp2.MoveWindow(rc2); m_static1.SetFont(&g_titlefont); #ifdef CHILD_VERSION m_List1.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;产品名称,100;数量,100;是否发出,100;发出日期,100;是否完成,100;完成日期,100" ); #else m_List1.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;产品名称,100;数量,100;是否发出,100;发出日期,100;是否完成,100;完成日期,100"); #endif // m_List1.m_bSortSupport=0; m_List1.LoadColumnInfo(180); m_spinyear.SetRange(1900, 3000); m_spinmonth.SetRange(1, 12); m_spinday.SetRange(1, 31); m_bInit = 1; DateChange(); g_sendhead.bsql = 0; g_sendhead.code[0] = 2; g_sendhead.code[1] = 4; g_sendhead.code[2] = 9; g_sendhead.tabcount = 3; g_pMainWnd->ProcessChatMessageRequest2(1); if (g_bSendOK == 0) { CDialog::OnOK(); return 0; } CArrayg_List2array; DataToArray(&g_List1array, &m_List3array, &g_List2array); m_combosplb2.ResetContent(); m_combosplb2.AddString("全部"); for ( i = 0; i < g_List1array.GetSize(); i++) m_combosplb2.AddString(g_List1array.ElementAt(i).ElementAt(0)); m_combosplb.ResetContent(); m_combosplb.AddString("全部"); for (i = 0; i < g_List2array.GetSize(); i++) { m_combosplb.AddString(g_List2array.ElementAt(i).ElementAt(1)); } m_combosplb.SetCurSel(0); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void outsourcing3::FillGrid() { UpdateData(); if (m_radio) { FillGrid2(); return; } m_List1.DeleteAllItems2(); int ii = 0; m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1); int count = 0; CString str; CString splb = "全部"; int pos = m_combosplb.GetCurSel(); if (pos != -1) { m_combosplb.GetLBText(pos, splb); } if (splb == "全部") { if (!m_check1) { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); } } else { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { if (m_List1array.ElementAt(ii).ElementAt(7) == "OK")continue; m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); if (m_List1.m_arLabels.ElementAt(count - 1).ElementAt(0) == "") { int aa = ii; while (aa) { if (m_List1array.ElementAt(aa).ElementAt(0) != "")break; aa--; } m_List1.m_arLabels.ElementAt(count - 1).SetAt(0, m_List1array.ElementAt(aa).ElementAt(0)); m_List1.m_arLabels.ElementAt(count - 1).SetAt(1, m_List1array.ElementAt(aa).ElementAt(1)); m_List1.m_arLabels.ElementAt(count - 1).SetAt(2, m_List1array.ElementAt(aa).ElementAt(2)); } } } } else { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { if (m_List1array.ElementAt(ii).ElementAt(5).GetLength() < 4)continue; if (m_List1array.ElementAt(ii).ElementAt(5).Right(m_List1array.ElementAt(ii).ElementAt(5).GetLength() - 4) != splb)continue; if (m_check1) { if (m_List1array.ElementAt(ii).ElementAt(7) == "OK")continue; } m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); if (m_List1.m_arLabels.ElementAt(count - 1).ElementAt(0) == "") { int aa = ii; while (aa) { if (m_List1array.ElementAt(aa).ElementAt(0) != "")break; aa--; } m_List1.m_arLabels.ElementAt(count - 1).SetAt(0, m_List1array.ElementAt(aa).ElementAt(0)); m_List1.m_arLabels.ElementAt(count - 1).SetAt(1, m_List1array.ElementAt(aa).ElementAt(1)); m_List1.m_arLabels.ElementAt(count - 1).SetAt(2, m_List1array.ElementAt(aa).ElementAt(2)); } } } m_List1.m_arLabels.SetSize(count, 1); ii = count; m_List1.m_LabelCount = ii; m_List1.SetItemCountEx(ii); str.Format("项目:%d", ii); SetDlgItemText(IDC_STATIC2, str); } void outsourcing3::OnBUTclose() { // TODO: Add your control notification handler code here CDialog::OnCancel(); } void outsourcing3::OnChangeEDITyear() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. DateChange(); // TODO: Add your control notification handler code here } void outsourcing3::OnChangeEDITmonth() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. DateChange(); // TODO: Add your control notification handler code here } void outsourcing3::OnChangeEDITday() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // DateChange(); // TODO: Add your control notification handler code here } void outsourcing3::DateChange() { if (m_bInit == 0)return; m_spinyear.EnableWindow(0); m_spinmonth.EnableWindow(0); m_spinday.EnableWindow(0); UpdateData(); if (m_branch != "") { g_pMainWnd->OnDisconnect(); g_branchip = GetIP(m_branch); g_pMainWnd->OnDisconnect(); g_branchname = m_branch; g_bBranchModify = 1; } int i; BOOL bLastYear = 0; BOOL bThisYear = 0; int g_nYearposTemp = g_nYearpos; #if JEFF_TEST_ON // 2015开始禁用跨年数据; int g_nYearposPre = -1; if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize()) { g_nYearpos = -1; bThisYear = 1; if (m_year == 2014) { g_nYearposPre = GetYearPos(m_year - 1); } } else if (m_year <= 2013 && g_hisyeararray.GetSize()) { g_nYearpos = GetYearPos(m_year); if (g_nYearpos != -1) g_nYearposPre = GetYearPos(m_year - 1); bLastYear = 1; } #else if (m_year == atoi(g_date.Left(4)) && g_hisyeararray.GetSize()) bThisYear = 1; else if (m_year <= atoi(g_date.Left(4)) - 1 && g_hisyeararray.GetSize()) bLastYear = 1; g_nYearpos = GetYearPos(m_year); int g_nYearposPre = GetYearPos(m_year - 1); #endif g_sendhead.bsql = 0; g_sendhead.code[0] = 153; g_sendhead.tabcount = 1; CString sql, strdate, strdate2; strdate.Format("%04d-%02d-%02d", m_year, m_month, 1); strdate2.Format("%04d-%02d-%02d", m_year, m_month, 31); m_static1.SetWindowText(strdate.Left(7) + "出件资料"); sql.Format("[date1]>='" + strdate + "' and [date1]<='" + strdate2 + "';"); g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0) { m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); g_nYearpos = g_nYearposTemp; return; } DataToArray(&m_List1array); if (bLastYear)//如果是去年, 则加今年的补款 { g_nYearpos = -1;//今年 g_sendhead.bsql = 0; g_sendhead.code[0] = 153; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0) { m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); g_nYearpos = g_nYearposTemp; return; } CArrayThisYearList1array; DataToArray(&ThisYearList1array); int oldsize = m_List1array.GetSize(); m_List1array.SetSize(oldsize + ThisYearList1array.GetSize()); for (i = oldsize; i < oldsize + ThisYearList1array.GetSize(); i++) { m_List1array.ElementAt(i).Copy(ThisYearList1array.ElementAt(i - oldsize)); } } if (g_nYearposPre != -1)//如果是今年, 则加去年的补款 { g_nYearpos = g_nYearposPre;//去年 g_sendhead.bsql = 0; g_sendhead.code[0] = 153; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0) { m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); g_nYearpos = g_nYearposTemp; return; } CArrayThisYearList1array; DataToArray(&ThisYearList1array); int oldsize = m_List1array.GetSize(); m_List1array.SetSize(oldsize + ThisYearList1array.GetSize()); for (i = oldsize; i < oldsize + ThisYearList1array.GetSize(); i++) { m_List1array.ElementAt(i).Copy(ThisYearList1array.ElementAt(i - oldsize)); } } g_nYearpos = g_nYearposTemp; FillGrid(); m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); } void outsourcing3::OnSelchangeCOMBOsplb() { // TODO: Add your control notification handler code here FillGrid(); } void outsourcing3::OnCheck1() { // TODO: Add your control notification handler code here FillGrid(); } void outsourcing3::OnSelchangeCOMBOsplb2() { // TODO: Add your control notification handler code here int pos = m_combosplb2.GetCurSel(); if (pos == -1)return; CString str; m_combosplb2.GetLBText(pos, str); m_combosp2.ResetContent(); m_combosp2.AddString("全部"); for (int ii = 0; ii < m_List3array.GetSize(); ii++) { if (m_List3array.ElementAt(ii).ElementAt(6) == str) { m_combosp2.AddString(m_List3array.ElementAt(ii).ElementAt(1)); } } m_combosp2.SetCurSel(0); FillGrid(); } void outsourcing3::FillGrid2() { m_List1.DeleteAllItems2(); int ii = 0; m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1); int count = 0; CString str; CString splb = "全部"; CString sp = "全部"; int pos = m_combosplb2.GetCurSel(); if (pos != -1) { m_combosplb2.GetLBText(pos, splb); } pos = m_combosp2.GetCurSel(); if (pos != -1) { m_combosp2.GetLBText(pos, sp); } if (splb == "全部") { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { if (m_check1) { if (m_List1array.ElementAt(ii).ElementAt(7) == "OK")continue; } m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); } } else { if (sp != "全部") { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { if (sp != m_List1array.ElementAt(ii).ElementAt(3))continue; if (m_check1) { if (m_List1array.ElementAt(ii).ElementAt(7) == "OK")continue; } m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); if (m_List1.m_arLabels.ElementAt(count - 1).ElementAt(0) == "") { int aa = ii; while (aa) { if (m_List1array.ElementAt(aa).ElementAt(0) != "")break; aa--; } m_List1.m_arLabels.ElementAt(count - 1).SetAt(0, m_List1array.ElementAt(aa).ElementAt(0)); m_List1.m_arLabels.ElementAt(count - 1).SetAt(1, m_List1array.ElementAt(aa).ElementAt(1)); m_List1.m_arLabels.ElementAt(count - 1).SetAt(2, m_List1array.ElementAt(aa).ElementAt(2)); } } } else { CStringArray cursparray; for (int aa = 0; aa < m_combosp2.GetCount(); aa++) { m_combosp2.GetLBText(aa, str); cursparray.Add(str); } for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { BOOL bFind = 0; for (int aa = 0; aa < cursparray.GetSize(); aa++) { if (cursparray.ElementAt(aa) == m_List1array.ElementAt(ii).ElementAt(3)) { bFind = 1; break; } } if (bFind == 0)continue; if (m_check1) { if (m_List1array.ElementAt(ii).ElementAt(7) == "OK")continue; } m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); if (m_List1.m_arLabels.ElementAt(count - 1).ElementAt(0) == "") { int aa = ii; while (aa) { if (m_List1array.ElementAt(aa).ElementAt(0) != "")break; aa--; } m_List1.m_arLabels.ElementAt(count - 1).SetAt(0, m_List1array.ElementAt(aa).ElementAt(0)); m_List1.m_arLabels.ElementAt(count - 1).SetAt(1, m_List1array.ElementAt(aa).ElementAt(1)); m_List1.m_arLabels.ElementAt(count - 1).SetAt(2, m_List1array.ElementAt(aa).ElementAt(2)); } } } } m_List1.m_arLabels.SetSize(count, 1); ii = count; m_List1.m_LabelCount = ii; m_List1.SetItemCountEx(ii); str.Format("项目:%d", ii); SetDlgItemText(IDC_STATIC2, str); } void outsourcing3::OnSelchangeCOMBOsp2() { // TODO: Add your control notification handler code here FillGrid(); } void outsourcing3::OnRadio3() { // TODO: Add your control notification handler code here UpdateData(); GetDlgItem(IDC_STATIC5)->ShowWindow(m_radio == 0); GetDlgItem(IDC_COMBOsplb)->ShowWindow(m_radio == 0); GetDlgItem(IDC_STATIC6)->ShowWindow(m_radio); GetDlgItem(IDC_STATIC7)->ShowWindow(m_radio); GetDlgItem(IDC_COMBOsplb2)->ShowWindow(m_radio); GetDlgItem(IDC_COMBOsp2)->ShowWindow(m_radio); FillGrid(); } void outsourcing3::OnRadio4() { // TODO: Add your control notification handler code here OnRadio3(); } void outsourcing3::OnBUTprint() { // TODO: Add your control notification handler code here UpdateData(); CString str; str.Format("c:\\%d%02d已发未回资料.xls", m_year, m_month); ListToXLS(&m_List1, str, 0); } void outsourcing3::OnSelchangeCOMBObranch() { // TODO: Add your control notification handler code here int pos = m_combobranch.GetCurSel(); if (pos == -1)return; m_combobranch.GetLBText(pos, m_branch); DateChange(); g_sendhead.bsql = 0; g_sendhead.code[0] = 2; g_sendhead.code[1] = 4; g_sendhead.code[2] = 9; g_sendhead.tabcount = 3; g_pMainWnd->ProcessChatMessageRequest2(1); if (g_bSendOK == 0) { return; } CArrayg_List2array; DataToArray(&g_List1array, &m_List3array, &g_List2array); m_combosplb2.ResetContent(); m_combosplb2.AddString("全部"); int i = 0; for ( i = 0; i < g_List1array.GetSize(); i++) m_combosplb2.AddString(g_List1array.ElementAt(i).ElementAt(0)); m_combosplb.ResetContent(); m_combosplb.AddString("全部"); for (i = 0; i < g_List2array.GetSize(); i++) { m_combosplb.AddString(g_List2array.ElementAt(i).ElementAt(1)); } m_combosplb.SetCurSel(0); }