// IncomeInput2.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "IncomeInput2.h" #include "MyMdi.H" #include "SPLBDlg.h" #include "AddIncome.h" #include "Singleincomemoney.h" #include "SearchFilter4.h" #include "SendMsgDlg.h" #include "Other2SaleChart.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // IncomeInput2 IDC_COMBO4 IMPLEMENT_DYNCREATE(IncomeInput2, MyFormView) IncomeInput2::IncomeInput2() : MyFormView(IncomeInput2::IDD) { //{{AFX_DATA_INIT(IncomeInput2) m_bz = _T(""); m_date = g_date; m_money = _T(""); m_name = _T(""); m_renyuan1 = _T(""); m_renyuan2 = g_user.name; 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_filter = _T(""); m_bInit = 0; //}}AFX_DATA_INIT } IncomeInput2::~IncomeInput2() { } void IncomeInput2::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(IncomeInput2) DDX_Control(pDX, IDC_BUTTON5, m_btn); DDX_Control(pDX, IDC_COMBO7, m_combo1); DDX_Control(pDX, IDC_COMBO4, m_combobz); 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_COMBO2, m_comboren); DDX_Control(pDX, IDC_EDITmoney, m_editctrl1); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_Text(pDX, IDC_EDITbz, m_bz); DDV_MaxChars(pDX, m_bz, 1000); DDX_Text(pDX, IDC_EDITdate, m_date); DDX_Text(pDX, IDC_EDITmoney, m_money); DDX_Text(pDX, IDC_EDITname, m_name); DDX_Text(pDX, IDC_EDITrenyuan1, m_renyuan1); DDX_Text(pDX, IDC_EDITrenyuan2, m_renyuan2); 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_CBString(pDX, IDC_COMBO7, m_filter); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(IncomeInput2, MyFormView) //{{AFX_MSG_MAP(IncomeInput2) ON_BN_CLICKED(IDC_BUTsave, OnBUTsave) ON_BN_CLICKED(IDC_BUTdel, OnBUTdel) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2) ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear) ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth) ON_EN_CHANGE(IDC_EDITday, OnChangeEDITday) ON_BN_CLICKED(IDC_BUTprint, OnBUTprint) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_BUTsave2, OnBUTsave2) ON_BN_CLICKED(IDC_BUTpay, OnBUTpay) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_BUTTON4, OnButton4) ON_BN_CLICKED(IDC_BUTTON5, OnButton5) ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST2, OnCustomdrawList) ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // IncomeInput2 diagnostics #ifdef _DEBUG void IncomeInput2::AssertValid() const { MyFormView::AssertValid(); } void IncomeInput2::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // IncomeInput2 message handlers void IncomeInput2::OnInitialUpdate() { MyFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); if (IsHasRights2new(49) == 0) { GetDlgItem(IDC_BUTTON1)->EnableWindow(0); } m_btn.SetIcon(IDI_ICONchart); m_btn.DrawTransparent(); // 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); int idarray[] = { IDC_BUTsave, IDC_BUTpay, IDC_BUTsave2, IDC_BUTdel, IDC_BUTprint, IDC_BUTclose }; int idcount = 6; int btnwid; CRect prerc; for (int a = idcount - 2; a >= 0; a--) { GetDlgItem(idarray[a + 1])->GetWindowRect(prerc); ScreenToClient(prerc); GetDlgItem(idarray[a])->GetWindowRect(rc2); ScreenToClient(rc2); btnwid = rc2.Width(); rc2.right = prerc.left; rc2.left = rc2.right - btnwid; GetDlgItem(idarray[a])->MoveWindow(rc2); } m_comboren.RefDroppedWidth(); GetDlgItem(IDC_BUTdel)->EnableWindow(IsHasRights2new(58)); m_static1.SetFont(&g_titlefont); m_List1.SetHeadings("编号,100;客人,100;手机,100;项目名称, 100;应付, 100;已付,100;欠款,100;经手人,100;开单人,100;日期, 100;二销类别,100;备注,100;数量,100"); m_List1.LoadColumnInfo(141); m_comboren.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 400; m_comboren.MoveWindow(rc2); m_combobz.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 400; m_combobz.MoveWindow(rc2); m_combo1.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 200; m_combo1.MoveWindow(rc2); GetDlgItem(IDC_BUTclose)->GetWindowRect(rc2); SetComboHei(&m_combo1, rc2.Height()); for (int i = 0; i < g_userarray.GetSize(); i++) m_comboren.AddString(g_userarray.ElementAt(i).ElementAt(1)); m_bInit = 1; GetData(); } void IncomeInput2::FillGrid() { if (g_bSearchFilter) { m_List1.DeleteAllItems2(); int ii = 0; m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1); int count = 0; { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { if (g_filterdate1 != "") { if (m_List1array.ElementAt(ii).ElementAt(9) < g_filterdate1 || m_List1array.ElementAt(ii).ElementAt(9) > g_filterdate2) continue; } if (g_waiter1 != "") { if (m_List1array.ElementAt(ii).ElementAt(3) != g_waiter1) continue; } if (g_waiter2 != "") { if (m_List1array.ElementAt(ii).ElementAt(8) != g_waiter2) continue; } if (g_waiter3 != "") { if (m_List1array.ElementAt(ii).ElementAt(10) != g_waiter3) continue; } if (g_waiter4 != "" || g_waiter4 != "全部") { if (g_waiter4 == "欠款") { if (atoi(m_List1array.ElementAt(ii).ElementAt(6)) == 0) continue; } else if (g_waiter4 == "付清") { if (atoi(m_List1array.ElementAt(ii).ElementAt(6))) continue; } } if (1) { m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); } } } 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); } else { 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)//电话 { for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { if (m_List1array.ElementAt(ii).ElementAt(2).Find(m_filter) != -1) { m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); } } } else if (type == 2)//拼音 { m_filter.MakeUpper(); for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { if (m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1) { 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(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(3).Find(m_filter) != -1\ || m_List1array.ElementAt(ii).ElementAt(7).Find(m_filter) != -1\ || m_List1array.ElementAt(ii).ElementAt(8).Find(m_filter) != -1\ || m_List1array.ElementAt(ii).ElementAt(10).Find(m_filter) != -1\ || m_List1array.ElementAt(ii).ElementAt(11).Find(m_filter) != -1\ || m_List1array.ElementAt(ii).ElementAt(12).Find(m_filter) != -1\ || m_List1array.ElementAt(ii).ElementAt(13).Find(m_filter) != -1) { m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); } } } } 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 IncomeInput2::OnBUTclose() { // TODO: Add your control notification handler code here GetParent()->SendMessage(WM_CLOSE); } void IncomeInput2::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here // ListSelChange(); *pResult = 0; } void IncomeInput2::ListSelChange() { /* POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { ClearCtrl(); return; } int iItem=m_List1.GetNextSelectedItem(pos); CString id=m_List1.GetItemText (iItem, 0); for(int ii=0; iiEnableWindow(0);*/ } void IncomeInput2::OnBUTdel() // 删除按钮; { // TODO: Add your control notification handler code here if (IsHasRights2new(58) == 0)return; POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } if (AfxMessageBox("确认删除吗?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return; int iItem = m_List1.GetNextSelectedItem(pos); CString id = m_List1.GetItemText(iItem, 0); CString bz = m_List1.GetItemText(iItem, 1); CString money = m_List1.GetItemText(iItem, 2); CString date = m_List1.GetItemText(iItem, 3); CString sql; sql.Format("delete from singleincome where id=%d***delete from singleincomemoney where id='%s' ", atoi(id), id); sql += SGLIN_REF; g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; GetData(); CString str; str = "删除其它二销"; str += bz; str += "金额:"; str += money; str += "日期:"; str += date; WriteLog(_T("其它二销"), str); } void IncomeInput2::GetData() { if (m_bInit == 0)return; m_spinyear.EnableWindow(0); m_spinmonth.EnableWindow(0); m_spinday.EnableWindow(0); UpdateData(); CString sql, strdate; // strdate.Format ("%04d-%02d-%02d", m_year, m_month, m_day); sql.Format("sale2type<>'';;"); if (m_combobz.GetCount()) { g_sendhead.bsql = 0; g_sendhead.code[0] = 196; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0) { m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); return; } DataToArray(&m_List1array); } else { g_sendhead.bsql = 0; g_sendhead.code[0] = 196; g_sendhead.code[1] = 160; g_sendhead.code[2] = 195; g_sendhead.tabcount = 3; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0) { m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); return; } DataToArray(&m_List1array, &expendtypearray, &itemarray); for (int i = 0; i < expendtypearray.GetSize(); i++) { m_combobz.AddString(expendtypearray.ElementAt(i).ElementAt(0)); } m_combobz.AddString("摄影二销"); #ifndef CHILD_VERSION m_combobz.AddString("化妆二销"); #else m_combobz.AddString("引导二销"); #endif m_combobz.AddString("选片二销"); } FillGrid(); // m_date=strdate; UpdateData(false); m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); } void IncomeInput2::ClearCtrl() { UpdateData(); CString strdate; strdate.Format("%04d-%02d-%02d", m_year, m_month, m_day); m_date = strdate; m_bz = _T(""); m_money = _T(""); m_name = _T(""); m_renyuan1 = _T(""); m_renyuan2 = g_user.name; m_comboren.SetCurSel(-1); m_combobz.SetCurSel(-1); UpdateData(false); GetDlgItem(IDC_BUTsave)->EnableWindow(1); } void IncomeInput2::OnChangeEDITyear() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the MyFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. GetData(); // TODO: Add your control notification handler code here } void IncomeInput2::OnChangeEDITmonth() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the MyFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. GetData(); // TODO: Add your control notification handler code here } void IncomeInput2::OnChangeEDITday() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the MyFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. GetData(); // TODO: Add your control notification handler code here } BOOL IncomeInput2::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: OnButton2(); 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 (...) { } } void IncomeInput2::OnBUTprint() { // TODO: Add your control notification handler code here POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要发送短信的客人!", MB_ICONINFORMATION); return; } int iItem; CStringArray array; while (pos) { iItem = m_List1.GetNextSelectedItem(pos); if (!m_List1.GetItemText(iItem, 2).IsEmpty()) array.Add(m_List1.GetItemText(iItem, 2)); } SendMsgDlg dlg; dlg.m_mode = 1; dlg.m_pArray = &array; dlg.DoModal(); } void IncomeInput2::OnButton1() { // TODO: Add your control notification handler code here } void IncomeInput2::OnBUTsave() // 录入按钮; { // TODO: Add your control notification handler code here if (g_nYearpos != -1) { AfxMessageBox("当前为历史数据查看状态,不能更改历史数据!", MB_ICONSTOP); return; } AddIncome dlg; dlg.expendtypearray = &expendtypearray; dlg.itemarray = &itemarray; if (dlg.DoModal() == IDOK) { GetData(); } } void IncomeInput2::OnBUTsave2() // 修改按钮; { // TODO: Add your control notification handler code here POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } int iItem = m_List1.GetNextSelectedItem(pos); AddIncome dlg; dlg.m_id = m_List1.GetItemText(iItem, 0); dlg.m_renyuan1 = m_List1.GetItemText(iItem, 1); dlg.m_phone = m_List1.GetItemText(iItem, 2); dlg.m_name = m_List1.GetItemText(iItem, 3); dlg.m_money = m_List1.GetItemText(iItem, 4); dlg.m_renyuan3 = m_List1.GetItemText(iItem, 8); dlg.m_sale2type = m_List1.GetItemText(iItem, 10); dlg.m_bz = m_List1.GetItemText(iItem, 11); dlg.m_count = m_List1.GetItemText(iItem, 12); dlg.m_renyuan2 = m_List1.GetItemText(iItem, 7); dlg.m_date = m_List1.GetItemText(iItem, 9); dlg.expendtypearray = &expendtypearray; dlg.itemarray = &itemarray; if (dlg.DoModal() == IDOK) { GetData(); } } void IncomeInput2::OnButton2() // 查询按钮; { // TODO: Add your control notification handler code here UpdateData(); m_filter.TrimLeft(); m_filter.TrimRight(); FillGrid(); } void IncomeInput2::OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast(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. if (m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6) == "") { } else if (atoi(m_List1.m_arLabels.ElementAt(pLVCD->nmcd.dwItemSpec).ElementAt(6)) != 0) pLVCD->clrText = RGB(220, 0, 0); else pLVCD->clrText = RGB(20, 133, 20); if (pLVCD->nmcd.dwItemSpec % 2) pLVCD->clrTextBk = g_gridcol1; else pLVCD->clrTextBk = g_gridcol2; // Store the color back in the NMLVCUSTOMDRAW struct. // Tell Windows to paint the control itself. *pResult = CDRF_DODEFAULT; } } void IncomeInput2::OnBUTpay() // 收款按钮; { // TODO: Add your control notification handler code here POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } int iItem = m_List1.GetNextSelectedItem(pos); Singleincomemoney dlg; dlg.m_id = m_List1.GetItemText(iItem, 0); dlg.m_name = m_List1.GetItemText(iItem, 1); dlg.m_phone = m_List1.GetItemText(iItem, 2); dlg.m_sitem = m_List1.GetItemText(iItem, 3); dlg.m_money1 = m_List1.GetItemText(iItem, 4); dlg.m_money2 = m_List1.GetItemText(iItem, 5); dlg.m_money3 = m_List1.GetItemText(iItem, 6); dlg.m_ren = m_List1.GetItemText(iItem, 8); dlg.m_bz = m_List1.GetItemText(iItem, 11); dlg.DoModal(); GetData(); } void IncomeInput2::OnButton4() // 条件查询; { // TODO: Add your control notification handler code here SearchFilter4 dlg; if (dlg.DoModal() == IDOK) { FillGrid(); } g_bSearchFilter = 0; } void IncomeInput2::OnButton5() { // TODO: Add your control notification handler code here Other2SaleChart dlg; dlg.DoModal(); } void IncomeInput2::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here OnBUTsave2(); *pResult = 0; }