// TXDlg.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "TXDlg.h" #include "MyMdi.H" #include "SPLBDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // TXDlg IMPLEMENT_DYNCREATE(TXDlg, MyFormView)TXDlg::TXDlg(): MyFormView(TXDlg::IDD) { m_taoxiid = _T(""); m_taoxijiage = _T(""); m_taoxiname = _T(""); m_zs = _T(""); m_zs2 = _T(""); } TXDlg::~TXDlg() { } void TXDlg::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); DDX_Control(pDX, IDC_COMBO2, m_combo2); DDX_Control(pDX, IDC_COMBO1, m_combo1); DDX_Control(pDX, IDC_EDITtaoxijiage, m_editctrl1); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_Control(pDX, IDC_LIST2, m_List1); DDX_Text(pDX, IDC_EDITtaoxiid, m_taoxiid); DDX_Text(pDX, IDC_EDITtaoxijiage, m_taoxijiage); DDX_Text(pDX, IDC_EDITtaoxiname, m_taoxiname); DDX_Text(pDX, IDC_EDITzs, m_zs); DDX_Text(pDX, IDC_EDITzs4, m_zs2); DDX_Control(pDX, CB_KINDS, m_cbKinds); } BEGIN_MESSAGE_MAP(TXDlg, MyFormView) 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_BN_CLICKED(IDC_BUTadd, OnBUTadd) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_CBN_SELCHANGE(CB_KINDS, OnCbnSelchangeKinds) END_MESSAGE_MAP() #ifdef _DEBUG void TXDlg::AssertValid() const { MyFormView::AssertValid(); } void TXDlg::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif void TXDlg::OnInitialUpdate() { MyFormView::OnInitialUpdate(); CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); 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_combo1.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 200; m_combo1.MoveWindow(rc2); m_combo2.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 200; m_combo2.MoveWindow(rc2); m_combo2.AddString("显示"); m_combo2.AddString("隐藏"); m_static1.SetFont(&g_titlefont); m_List1.SetHeadings("套系编号, 100;套系名称, 100;套系价格, 100;入底\\入册, 100;套系大类,100;是否显示,100"); m_List1.LoadColumnInfo(102); GetData(); } void TXDlg::FillGrid() { 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++) { 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); OnBUTadd(); } void TXDlg::OnBUTclose() { GetParent()->SendMessage(WM_CLOSE); } void TXDlg::ClearCtrl() { m_taoxiid = _T(""); m_taoxijiage = _T(""); m_taoxiname = _T(""); m_zs = _T(""); m_zs2 = _T(""); UpdateData(false); } void TXDlg::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) { ListSelChange(); *pResult = 0; } void TXDlg::ListSelChange() { POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { OnBUTadd(); return; } int iItem = m_List1.GetNextSelectedItem(pos); m_oldtaoxiid = m_List1.GetItemText(iItem, 0); m_oldtaoxiname = m_List1.GetItemText(iItem, 1); for (int ii = 0; ii < m_List1array.GetSize(); ii++) { if (m_List1array.ElementAt(ii).ElementAt(0) == m_oldtaoxiid) { m_taoxiid = m_List1array.ElementAt(ii).ElementAt(0); m_taoxiname = m_List1array.ElementAt(ii).ElementAt(1); m_taoxijiage = m_List1array.ElementAt(ii).ElementAt(2); CString zs = m_List1array.ElementAt(ii).ElementAt(3); int pos = zs.Find("\\"); if (pos != -1) { m_zs = zs.Left(pos); m_zs2 = zs.Right(zs.GetLength() - pos - 1); } else { m_zs = zs; m_zs2 = ""; } CString txlb = m_List1array.ElementAt(ii).ElementAt(4); CString isshow = m_List1array.ElementAt(ii).ElementAt(5); if (m_combo1.FindString(0, txlb) == -1) m_combo1.AddString(txlb); m_combo1.SetCurSel(m_combo1.FindString(0, txlb)); if (isshow == "") m_combo2.SetCurSel(0); else m_combo2.SetCurSel(m_combo2.FindString(0, isshow)); UpdateData(false); return; } } } void TXDlg::OnBUTadd() { m_oldtaoxiid.Empty(); m_oldtaoxiname.Empty(); ClearCtrl(); } void TXDlg::OnBUTsave() { UpdateData(); if (m_taoxiid.IsEmpty() || m_taoxiname.IsEmpty() || m_taoxijiage.IsEmpty()) { AfxMessageBox("资料不全!", MB_ICONINFORMATION); return; } CString txlb, isshow; int pos = m_combo1.GetCurSel(); if (pos != -1) { m_combo1.GetLBText(pos, txlb); } pos = m_combo2.GetCurSel(); if (pos != -1) { m_combo2.GetLBText(pos, isshow); } if (isshow == "")isshow = "显示"; CString sql; CString zs = m_zs + "\\" + m_zs2; if (m_oldtaoxiid.IsEmpty())//新增 { if (IsExist()) { AfxMessageBox("已有此编号或名称的套系,请重新输入!", MB_ICONINFORMATION); return; } sql.Format("insert into taoxi(taoxiid,taoxiname,taoxijiage,zs,type,show)values('%s','%s','%s','%s','%s','%s')", m_taoxiid, m_taoxiname, m_taoxijiage, zs, txlb, isshow); sql += TAOXI_REF; g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; GetData(); } else//修改 { if (m_oldtaoxiid != m_taoxiid) { if (IsExistID()) { AfxMessageBox("已有此编号的套系,请重新输入!", MB_ICONINFORMATION); return; } } if (m_oldtaoxiname != m_taoxiname) { if (IsExistName()) { AfxMessageBox("已有此名称的套系,请重新输入!", MB_ICONINFORMATION); return; } } sql.Format("update taoxi set taoxiid='%s',taoxiname='%s',taoxijiage='%s',zs='%s',type='%s',show='%s' where taoxiid='%s' ", m_taoxiid, m_taoxiname, m_taoxijiage, zs, txlb, isshow, m_oldtaoxiid); sql += TAOXI_REF; g_sendhead.bsql = 1; // MessageBox(sql); g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; GetData(); } } void TXDlg::OnBUTdel() { 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 sql; sql.Format("delete from taoxi where taoxiid='%s' ", id); sql += TAOXI_REF; g_sendhead.bsql = 1; g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return; GetData(); } void TXDlg::GetData() { if (m_combo1.GetCount() == 0) { g_sendhead.bsql = 0; g_sendhead.code[0] = 6; g_sendhead.code[1] = 194; g_sendhead.tabcount = 2; g_pMainWnd->ProcessChatMessageRequest2(6); if (g_bSendOK == 0)return; CArrayexpendtypearray; DataToArray(&m_List1array, &expendtypearray); m_combo1.ResetContent(); for (int i = 0; i < expendtypearray.GetSize(); i++) m_combo1.AddString(expendtypearray.ElementAt(i).ElementAt(0)); m_cbKinds.ResetContent(); m_cbKinds.AddString(_T("全部")); for (int j = 0; j < expendtypearray.GetSize(); j++) { m_cbKinds.AddString(expendtypearray.ElementAt(j).ElementAt(0)); } FillGrid(); return; } g_sendhead.bsql = 0; g_sendhead.code[0] = 6; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(6); if (g_bSendOK == 0)return; DataToArray(&m_List1array); FillGrid(); } BOOL TXDlg::IsExist() { for (int i = 0; i < m_List1array.GetSize(); i++) { if (m_taoxiid == m_List1array.ElementAt(i).ElementAt(0))return 1; if (m_taoxiname == m_List1array.ElementAt(i).ElementAt(1))return 1; } return 0; } BOOL TXDlg::IsExistID() { for (int i = 0; i < m_List1array.GetSize(); i++) { if (m_taoxiid == m_List1array.ElementAt(i).ElementAt(0))return 1; } return 0; } BOOL TXDlg::IsExistName() { for (int i = 0; i < m_List1array.GetSize(); i++) { if (m_taoxiname == m_List1array.ElementAt(i).ElementAt(1))return 1; } return 0; } BOOL TXDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: OnBUTsave(); 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); } void TXDlg::OnButton1() { SPLBDlg dlg; dlg.m_mode = 12; dlg.DoModal(); g_sendhead.bsql = 0; g_sendhead.code[0] = 194; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(1); if (g_bSendOK == 0)return; CArrayexpendtypearray; DataToArray(&expendtypearray); m_combo1.ResetContent(); for (int i = 0; i < expendtypearray.GetSize(); i++) { m_combo1.AddString(expendtypearray.ElementAt(i).ElementAt(0)); } m_cbKinds.ResetContent(); m_cbKinds.AddString(_T("全部")); for (int j = 0; j < expendtypearray.GetSize(); j++) { m_cbKinds.AddString(expendtypearray.ElementAt(j).ElementAt(0)); } } void TXDlg::OnCbnSelchangeKinds() { // 处理套系显示下拉框时的列表显示; // 1.获取选中文本内容; CString strCurSelText; m_cbKinds.GetLBText(m_cbKinds.GetCurSel(), strCurSelText); // 2.筛选内容; m_List1.DeleteAllItems2(); m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1); int count = 0; int nIndex = 0; if (strCurSelText == _T("全部")) { for (nIndex = 0; nIndex < m_List1.m_arLabels.GetSize(); nIndex++) m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(nIndex)); } else { for (nIndex = 0; nIndex < m_List1.m_arLabels.GetSize(); nIndex++) if (strCurSelText == m_List1array.ElementAt(nIndex).ElementAt(4)) m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(nIndex)); } m_List1.m_arLabels.SetSize(count, 1); nIndex = count; m_List1.m_LabelCount = nIndex; m_List1.SetItemCountEx(nIndex); }