// 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 ; i<lRecNum;i++ ) { dbf.GoTo(i+1); if ( !dbf.IsDelete() ) { m_wndList1.InsertItem( lItem , _itot(lItem+1,szTemp,10) , 0 ); dbf.GetRecField( szTemp , "CDNAME" ); m_wndList1.SetItemText( lItem , 1,szTemp); dbf.GetRecField( szTemp , "CDMOBILE" ); m_wndList1.SetItemText( lItem , 2,szTemp); dbf.GetRecField( szTemp , "CDMASTER" ); m_wndList1.SetItemText( lItem , 3,szTemp); m_wndList1.SetItemData( lItem , i+1 ); lItem++; } } dbf.Close(); m_bRefresh1 = true; m_bRefresh2 = false; if ( lItem>0 ) //ѡ�е�һ����¼ { 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<lCount;i++ ) { dbf.GoTo(i+1); dbf.GetRecField( szTemp , "CDID" ); if ( _ttol(szTemp) > 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 ; i<lCount;i++ ) { m_wndList1.SetItemText(i,0,_itot(i+1,szTemp,10)); } */ } void DLG_Setup_SZGJ::On_SZGJ1_Refresh() { RefreshType1(); } void DLG_Setup_SZGJ::On_SZGJ2_Add() { if (!m_bRefresh1) return ; if ( m_strCurrentCDID.GetLength()<=0 ) return ; /* DLG_Setup_SZGJ_Line dlg(this); if ( dlg.DoModal() == IDOK ) { //�������ı��� char szTemp[64]={0}; Dbf dbf; BOOL b = dbf.Use( m_strNameLine ); if (!b ) return; dbf.ClearRecBuf(); dbf.ReplRecField( (char*)(LPCSTR)m_strCurrentCDID , "CDID" ); dbf.ReplRecField( (char*)(LPCSTR)dlg.m_strLine , "LINENO" ); dbf.AppendRec(); dbf.Close(); //���¼�¼��ʾ���б��� long lCount2 = m_wndList2.GetItemCount(); m_wndList2.InsertItem(lCount2,_itot(lCount2+1,szTemp,10) ); m_wndList2.SetItemText(lCount2,1,dlg.m_strLine); m_wndList2.EnsureVisible(lCount2,false); //this->UnSelectAllItems(); 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<lCount;i++ ) { m_wndList2.SetItemText(i,0,_itot(i+1,szTemp,10)); } */ } void DLG_Setup_SZGJ::On_SZGJ2_Refresh() { if (!m_bRefresh1) return ; RefreshType2(); } void DLG_Setup_SZGJ::OnItemchangedSyssetupSzgjCd(NMHDR* pNMHDR, LRESULT* pResult) { HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR; *pResult = 0; if ( m_bRefresh2 ) return ; if ( m_wndList1.GetSelectedCount() > 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<lCount;i++ ) { dbf.GoTo(i+1); if ( !dbf.IsDelete() ) { dbf.GetRecField(szTemp,"CDID"); if ( !_tcscmp(szTemp , szCDID ) ) { m_wndList2.InsertItem(lItem,_itot(lItem+1,szTemp,10)); m_wndList2.SetItemData(lItem,i+1); dbf.GetRecField(szTemp,"LINENO"); m_wndList2.SetItemText(lItem,1,szTemp); lItem++; } } } dbf.Close(); */ } void DLG_Setup_SZGJ::OnDestroy() { m_bRefresh2=true; CDialog::OnDestroy(); }