#include "stdafx.h" #include "EquToDbDlg.h" #include "EquipManaOperator.h" #include "EquBand2D.h" #include "EarThwormDef.h" IMPLEMENT_DYNAMIC(CEquToDbDlg, CDialog) CEquToDbDlg::CEquToDbDlg(LPCTSTR prefix, CWnd* pParent /*=NULL*/) : CDialog(CEquToDbDlg::IDD, pParent) , m_sClass(_T("")) , m_sFolder(_T("")) , m_sRem(_T("")) , m_sPrefix(prefix) { m_pDb = new CUIISQLiteServer; } CEquToDbDlg::~CEquToDbDlg() { if (m_pDb != NULL) { DELETE_PTR(m_pDb); } } void CEquToDbDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_CBString(pDX, IDC_COMBOCLASS, m_sClass); DDX_CBString(pDX, IDC_COMBOFOLDER, m_sFolder); DDX_Text(pDX, IDC_EDITREM, m_sRem); DDX_Control(pDX, IDC_COMBOFOLDER, m_wndComboFolder); DDX_Control(pDX, IDC_COMBOCLASS, m_wndComboClass); } BEGIN_MESSAGE_MAP(CEquToDbDlg, CDialog) ON_BN_CLICKED(IDOK, &CEquToDbDlg::OnBnClickedOk) ON_CBN_SELCHANGE(IDC_COMBOFOLDER, &CEquToDbDlg::OnCbnSelchangeCombofolder) END_MESSAGE_MAP() void CEquToDbDlg::SetEquTempFile(LPCTSTR pszFile,LPCTSTR pszName) { m_sName = pszName; m_sEquTmplFile = pszFile; } void CEquToDbDlg::SetEquBimDatas(SH_BIM_BLOCK &bims) { m_bims.clear(); m_bims = bims; } BOOL CEquToDbDlg::OnInitDialog() { CDialog::OnInitDialog(); //Plumbing.mdb CString szMdbFile = FilePath::GetSysDir() + _T("\\Aec3DMep.db"); if(_taccess(szMdbFile, 0x00) != 0x00) { AfxMessageBox(_T("系统没有找到Aec3DMep.db文件!请检查软件是否正确安装!")); return FALSE; } BOOL bSuccess = m_pDb->InitADOServer(szMdbFile); if (!bSuccess) { AfxMessageBox(_T("数据库驱动加载数据库Aec3DMep.mdb失败!")); return FALSE; } //使用mdb 数据库 ReadFolderAndClass(); return TRUE; } void CEquToDbDlg::ReadFolderAndClass() { CString sSQL; //sSQL = _T("select folder from aec_folder"); sSQL.Format(_T("select folder from %sfolder"), m_sPrefix); CStringArray arFolders; m_pDb->GetSelData(sSQL,arFolders); for (int i = 0;i < arFolders.GetSize();i++) { m_wndComboFolder.InsertString(i,arFolders.GetAt(i)); } } void CEquToDbDlg::OnBnClickedOk() { UpdateData(); m_sFolder.TrimRight(); m_sClass.TrimRight(); if (m_sFolder.IsEmpty() || m_sClass.IsEmpty()) { AfxMessageBox(_T("目录名和分类名不能为空!请输入目录和分类名称!")); return; } CString sIDPackage(_T("")); CEquipManaOperator equOper(m_sPrefix); equOper.SetAdoDb(m_pDb); if (!equOper.PutPackageToDb( m_sFolder ,m_sClass ,m_sName ,m_sRem ,m_sEquTmplFile , &sIDPackage , m_bims.empty() ? NULL : &m_bims )) { AfxMessageBox(_T("设备入库失败。")); EndDialog(IDOK); } //if (AfxMessageBox(_T("设备入库成功,是否为此设备绑定剖面?"), MB_YESNO) != IDYES) //{ // EndDialog(IDOK); // return; //} //PipelineTools::updateEquSection(m_pDb, sIDPackage); EndDialog(IDOK); } void CEquToDbDlg::OnCbnSelchangeCombofolder() { int nCursel = m_wndComboFolder.GetCurSel(); if (nCursel != -1) { CString sFolder; m_wndComboFolder.GetLBText(nCursel,sFolder); CString sSQL,sid; //sSQL.Format(_T("select id from aec_folder where folder='%s'"),sFolder); sSQL.Format(_T("select id from %sfolder where folder='%s'"), m_sPrefix,sFolder); m_pDb->GetSelData(sSQL,sid); m_wndComboClass.ResetContent(); //sSQL.Format(_T("select class from aec_class where idfolder='%s'"),sid); sSQL.Format(_T("select class from %sclass where idfolder='%s'"), m_sPrefix,sid); CStringArray arClass; m_pDb->GetSelData(sSQL,arClass); for (int i = 0;i < arClass.GetSize();i++) { m_wndComboClass.InsertString(i,arClass.GetAt(i)); } if (arClass.GetSize() > 0) m_wndComboClass.SetCurSel(0); } }