// DLG_Setup_SZGJ.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "DLG_Setup_SZGJ.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Setup_SZGJ dialog #include "DLG_Setup_SZGJ_CD.h" #include "DLG_Setup_SZGJ_Line.h" DLG_Setup_SZGJ::DLG_Setup_SZGJ(CWnd* pParent /*=NULL*/) : CDialog(DLG_Setup_SZGJ::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Setup_SZGJ) m_strPath = _T(""); //}}AFX_DATA_INIT memset(&m_Setup,0,sizeof(m_Setup)); m_bRefresh1 = false; m_bRefresh2 = false; } void DLG_Setup_SZGJ::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Setup_SZGJ) DDX_Control(pDX, IDC_SYSSETUP_SZGJ_LINE, m_wndList2); DDX_Control(pDX, IDC_SYSSETUP_SZGJ_CD, m_wndList1); DDX_Text(pDX, IDC_SYSSETUP_SZGJ_PATH, m_strPath); DDV_MaxChars(pDX, m_strPath, 126); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_Setup_SZGJ, CDialog) //{{AFX_MSG_MAP(DLG_Setup_SZGJ) ON_BN_CLICKED(IDC_SYSSETUP_SZGJ_PATH_SEL, OnSyssetupSzgjPathSel) ON_NOTIFY(NM_DBLCLK, IDC_SYSSETUP_SZGJ_CD, OnDblclkSyssetupSzgjCd) ON_NOTIFY(NM_RCLICK, IDC_SYSSETUP_SZGJ_CD, OnRclickSyssetupSzgjCd) ON_NOTIFY(NM_DBLCLK, IDC_SYSSETUP_SZGJ_LINE, OnDblclkSyssetupSzgjLine) ON_NOTIFY(NM_RCLICK, IDC_SYSSETUP_SZGJ_LINE, OnRclickSyssetupSzgjLine) ON_NOTIFY(LVN_ITEMCHANGED, IDC_SYSSETUP_SZGJ_CD, OnItemchangedSyssetupSzgjCd) ON_WM_DESTROY() //}}AFX_MSG_MAP ON_COMMAND(MENU_SZGJ1_ADD , On_SZGJ1_Add ) ON_COMMAND(MENU_SZGJ1_MODIFY , On_SZGJ1_Modify ) ON_COMMAND(MENU_SZGJ1_DEL , On_SZGJ1_Del ) ON_COMMAND(MENU_SZGJ1_REFRESH , On_SZGJ1_Refresh ) ON_COMMAND(MENU_SZGJ2_ADD , On_SZGJ2_Add ) ON_COMMAND(MENU_SZGJ2_MODIFY , On_SZGJ2_Modify ) ON_COMMAND(MENU_SZGJ2_DEL , On_SZGJ2_Del ) ON_COMMAND(MENU_SZGJ2_REFRESH , On_SZGJ2_Refresh ) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Setup_SZGJ message handlers SM_Setup DLG_Setup_SZGJ::GetParam() { return m_Setup; } void DLG_Setup_SZGJ::SetParam(SM_Setup setup) { m_Setup = setup; } BOOL DLG_Setup_SZGJ::OnInitDialog() { CDialog::OnInitDialog(); m_strPath = m_Setup.szSZGJPath; UpdateData(false); //初始化List m_Image1.Create(16,16,ILC_COLOR32|ILC_MASK,5,5); m_Image1.Add(AfxGetApp()->LoadIcon(IDI_L_BILL) ); m_Image2.Create(16,16,ILC_COLOR32|ILC_MASK,5,5); m_Image2.Add(AfxGetApp()->LoadIcon(IDI_L_BILL) ); m_wndList1.SubClassWindow2(); m_wndList1.SetHeadings(_T("序号,40; 车队名称,110;手机号码,90;负责人,90;")); m_wndList1.SetGridLines(true); //m_wndList1.SetImageList(&m_Image1,LVSIL_SMALL); m_wndList1.SetBkColor( RGB(237,191,175) ); m_wndList1.SetTextBkColor( RGB(237,191,175) ); m_wndList2.SubClassWindow2(); m_wndList2.SetHeadings(_T("序号,40; 线路号,70;")); m_wndList2.SetGridLines(true); //m_wndList2.SetImageList(&m_Image2,LVSIL_SMALL); m_wndList2.SetBkColor( RGB(237,191,175) ); m_wndList2.SetTextBkColor( RGB(237,191,175) ); //生成数据库文件名 m_strNameCD = m_strPath+_T("\\"); m_strNameCD = m_strNameCD+MOBSET_SZGJ_CD; m_strNameLine = m_strPath+_T("\\"); m_strNameLine = m_strNameLine+MOBSET_SZGJ_LINE; RefreshType1(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_Setup_SZGJ::OnSyssetupSzgjPathSel() { TCHAR szPath[512]={0}; BROWSEINFO BInfo={0}; BInfo.hwndOwner = this->GetSafeHwnd(); BInfo.pszDisplayName = szPath; BInfo.pidlRoot=0; BInfo.lpszTitle = _T("请选择歌库所在路径:"); BInfo.ulFlags = BIF_RETURNONLYFSDIRS; //规定只能选择文件夹,其他无效 LPCITEMIDLIST pid = SHBrowseForFolder(&BInfo); if ( pid && SHGetPathFromIDList(pid,szPath) ) { m_strPath = szPath; UpdateData(false); //生成数据库文件名 m_strNameCD = m_strPath+_T("\\"); m_strNameCD = m_strNameCD+MOBSET_SZGJ_CD; m_strNameLine = m_strPath+_T("\\"); m_strNameLine = m_strNameLine+MOBSET_SZGJ_LINE; RefreshType1(); } } void DLG_Setup_SZGJ::OnOK() { if ( !UpdateData(false)) return ; _tcscpy(m_Setup.szSZGJPath , m_strPath ); CDialog::OnOK(); } void DLG_Setup_SZGJ::RefreshType1() { m_wndList1.DeleteAllItems(); /* CString strTemp; m_bRefresh1 = false; Dbf dbf; if ( !dbf.Use(m_strNameCD) ) { strTemp.Format( _T("打开数据库:%s失败,请检查路径设置!") , m_strNameCD ); MessageBox( strTemp , _T("错误") , MB_ICONWARNING ); return ; } m_bRefresh2 = true; char szTemp[256]={0}; long lItem = 0; long lRecNum = dbf.RecNum(); for ( int i=0 ; i0 ) //选中第一条记录 { m_wndList1.SelectItem(0); RefreshType2(); } */ return ; } void DLG_Setup_SZGJ::OnDblclkSyssetupSzgjCd(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; On_SZGJ1_Modify(); } void DLG_Setup_SZGJ::OnRclickSyssetupSzgjCd(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu1(); } void DLG_Setup_SZGJ::OnDblclkSyssetupSzgjLine(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; On_SZGJ2_Modify(); } void DLG_Setup_SZGJ::OnRclickSyssetupSzgjLine(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu2(); } void DLG_Setup_SZGJ::ShowRMenu1() { CMenu menu; menu.CreatePopupMenu(); long lItem = m_wndList1.GetFirstSelectedItem(); menu.AppendMenu(MF_STRING , MENU_SZGJ1_ADD , _T(" 新 增 ") ); if ( lItem >= 0 ) { menu.AppendMenu(MF_STRING , MENU_SZGJ1_MODIFY , _T(" 修 改 ") ); menu.AppendMenu(MF_STRING , MENU_SZGJ1_DEL , _T(" 删 除 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SZGJ1_MODIFY , _T(" 修 改 ") ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SZGJ1_DEL , _T(" 删 除 ") ); } menu.AppendMenu(MF_SEPARATOR ); //刷新 menu.AppendMenu(MF_STRING , MENU_SZGJ1_REFRESH, _T(" 刷 新 ") ); //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } void DLG_Setup_SZGJ::ShowRMenu2() { if (!m_bRefresh1) return ; if ( m_strCurrentCDID.GetLength()<=0 ) return ; CMenu menu; menu.CreatePopupMenu(); long lItem = m_wndList2.GetFirstSelectedItem(); menu.AppendMenu(MF_STRING , MENU_SZGJ2_ADD , _T(" 新 增 ") ); if ( lItem >= 0 ) { menu.AppendMenu(MF_STRING , MENU_SZGJ2_MODIFY , _T(" 修 改 ") ); menu.AppendMenu(MF_STRING , MENU_SZGJ2_DEL , _T(" 删 除 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SZGJ2_MODIFY , _T(" 修 改 ") ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SZGJ2_DEL , _T(" 删 除 ") ); } menu.AppendMenu(MF_SEPARATOR ); //刷新 menu.AppendMenu(MF_STRING , MENU_SZGJ2_REFRESH, _T(" 刷 新 ") ); //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } void DLG_Setup_SZGJ::On_SZGJ1_Add() { if (!m_bRefresh1) return ; /* DLG_Setup_SZGJ_CD dlg(this); if ( dlg.DoModal() == IDOK ) { //查找最大的编码 Dbf dbf; BOOL b = dbf.Use( m_strNameCD ); if (!b ) return; long lCount = dbf.RecNum(); long lMax = 0; char szTemp[64]={0}; for ( int i=0 ; i lMax ) lMax = _ttol(szTemp); } lMax ++; _stprintf(szTemp,"%d",lMax); dbf.ClearRecBuf(); dbf.ReplRecField( szTemp , "CDID" ); dbf.ReplRecField( (char*)(LPCSTR)dlg.m_strCD , "CDNAME" ); dbf.ReplRecField( (char*)(LPCSTR)dlg.m_strMobile , "CDMOBILE" ); dbf.ReplRecField( (char*)(LPCSTR)dlg.m_strMaster , "CDMASTER" ); dbf.AppendRec(); long dbfno = dbf.CurRow(); dbf.Close(); //将新记录显示在列表上 long lCount2 = m_wndList1.GetItemCount(); m_wndList1.InsertItem(lCount2,_itot(lCount2+1,szTemp,10) ); m_wndList1.SetItemText(lCount2,1,dlg.m_strName); m_wndList1.SetItemText(lCount2,2,dlg.m_strMobile); m_wndList1.SetItemText(lCount2,3,dlg.m_strMaster); m_wndList1.SetItemData(lCount2,dbfno+1); m_wndList1.EnsureVisible(lCount2,false); //this->UnSelectAllItems(); m_wndList1.SetItemState( lCount2 , LVIS_SELECTED, LVIS_SELECTED); RefreshType2(); } */ } void DLG_Setup_SZGJ::On_SZGJ1_Modify() { if (!m_bRefresh1) return ; /* long lItem = m_wndList1.GetFirstSelectedItem(); if ( lItem < 0 ) return ; CString strCD; CString strMobile; CString strMaster; strCD = m_wndList1.GetItemText(lItem,1); strMobile = m_wndList1.GetItemText(lItem,2); strMaster = m_wndList1.GetItemText(lItem,3); DLG_Setup_SZGJ_CD dlg(this); dlg.m_strCD = strCD; dlg.m_strMobile = strMobile; dlg.m_strMaster = strMaster; if ( dlg.DoModal() == IDOK ) { //写入数据库 long lRec = m_wndList1.GetItemData(lItem); Dbf dbf; BOOL b = dbf.Use( m_strNameCD ); if (!b ) return; dbf.GoTo(lRec); dbf.ReplRecField((char*)(LPCSTR)dlg.m_strCD , "CDNAME" ); dbf.ReplRecField((char*)(LPCSTR)dlg.m_strMobile , "CDMOBILE" ); dbf.ReplRecField((char*)(LPCSTR)dlg.m_strMaster , "CDMASTER" ); dbf.ReplRec(); dbf.Close(); //写入列表 m_wndList1.SetItemText(lItem,1,dlg.m_strCD); m_wndList1.SetItemText(lItem,2,dlg.m_strMobile); m_wndList1.SetItemText(lItem,3,dlg.m_strMaster); } */ } void DLG_Setup_SZGJ::On_SZGJ1_Del() { if (!m_bRefresh1) return ; /* long lRet = MessageBox( _T("即将要删除此车队,是否继续?"), _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2); if ( lRet != IDYES ) return; long lItem = m_wndList1.GetFirstSelectedItem(); if ( lItem < 0 ) return ; //在数据库中删除 Dbf dbf; BOOL b = dbf.Use( m_strNameCD ); if (!b ) return; long lRec = m_wndList1.GetItemData(lItem); dbf.GoTo(lRec); BOOL b2 =dbf.Delete(lRec); dbf.Close(); //在列表中删除 m_wndList1.DeleteItem(lItem); //重新排列 long lCount = m_wndList1.GetItemCount(); char szTemp[32]={0}; for ( int i=0 ; iUnSelectAllItems(); m_wndList2.SetItemState( lCount2 , LVIS_SELECTED, LVIS_SELECTED); } */ } void DLG_Setup_SZGJ::On_SZGJ2_Modify() { if (!m_bRefresh1) return ; /* if ( m_strCurrentCDID.GetLength()<=0 ) return ; long lItem = m_wndList2.GetFirstSelectedItem(); if ( lItem < 0 ) return ; CString strLine; strLine = m_wndList2.GetItemText(lItem,1); DLG_Setup_SZGJ_Line dlg(this); dlg.m_strLine = strLine; if ( dlg.DoModal() == IDOK ) { //写入数据库 long lRec = m_wndList2.GetItemData(lItem); Dbf dbf; BOOL b = dbf.Use( m_strNameLine ); if (!b ) return; dbf.GoTo(lRec); dbf.ReplRecField((char*)(LPCSTR)dlg.m_strLine , "LINENO" ); dbf.ReplRec(); dbf.Close(); //写入列表 m_wndList2.SetItemText(lItem,1,dlg.m_strLine); } */ } void DLG_Setup_SZGJ::On_SZGJ2_Del() { if (!m_bRefresh1) return ; if ( m_strCurrentCDID.GetLength()<=0 ) return ; long lRet = MessageBox( _T("即将要删除此线路,是否继续?") , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2); if ( lRet != IDYES ) return; long lItem = m_wndList2.GetFirstSelectedItem(); if ( lItem < 0 ) return ; /* //在数据库中删除 Dbf dbf; BOOL b = dbf.Use( m_strNameLine ); if (!b ) return; long lRec = m_wndList2.GetItemData(lItem); dbf.GoTo(lRec); dbf.Delete(lRec); dbf.Close(); //在列表中删除 m_wndList2.DeleteItem(lItem); //重新排列 long lCount = m_wndList2.GetItemCount(); char szTemp[32]={0}; for ( int i=0 ; i 1 ) //只处理一条 return; RefreshType2(); } void DLG_Setup_SZGJ::RefreshType2() { m_wndList2.DeleteAllItems(); if (!m_bRefresh1) return ; long lItem = m_wndList1.GetFirstSelectedItem(); if ( lItem < 0 ) return ; /* //取车队ID号 long lRec = m_wndList1.GetItemData(lItem); char szCDID[64]={0}; Dbf dbf; BOOL b = dbf.Use( m_strNameCD ); if (!b ) { return ; } dbf.GoTo(lRec); dbf.GetRecField(szCDID,"CDID" ); dbf.Close(); if ( _tcslen(szCDID)<=0 ) return ; m_strCurrentCDID = szCDID; //打开线路库 b = dbf.Use( m_strNameLine ); if (!b ) { CString strTemp; strTemp.Format( "打开数据库:%s失败,请检查路径设置!" , m_strNameLine ); MessageBox( strTemp , "错误" , MB_ICONWARNING ); return ; } char szTemp[64]={0}; long lCount = dbf.RecNum(); lItem = 0; for ( int i=0 ; i