/************************************************************************************************** 版本所有(C), 2020-2022, 北京普达迪泰 *************************************************************************************************** 文 件 名: EquipmentTypeDlg.cpp 功能描述: 设备型号 版 本 号: 1.00初版 作 者: HYF 生成日期; 2021-12-20 最近修改: 函数列表: 修改历史: 1.日 期 :2021-12-20 作 者 : HYF 修改内容 : 创建文件 **************************************************************************************************/ // EquipmentDlg.cpp: 实现文件 // #include "pch.h" #include "Dms.h" #include "resource.h" #include "DmsDoc.h" #include "EquipTypeDlg.h" #include "afxdialogex.h" #include "EquipTypeView.h" #include "CppSQLite3.h" #include "EquipTypePlaceManager.h" #include "EquipTypePlaceDlg.h" #include "EquipTypePlace.h" // EquipTypeDlg 对话框 IMPLEMENT_DYNAMIC(EquipTypeDlg, CDialogEx) EquipTypeDlg::EquipTypeDlg(CWnd* pParent) : CDialogEx(IDD_DLG_EQUIPTYPE, pParent) , m_iType(1) , m_szEquipTypeTitle(_T("")) , m_szEquipTypeCode(_T("")) , m_szEquipTypeDesc(_T("")) , m_pkCode(_T("")) { } EquipTypeDlg::EquipTypeDlg(CWnd* pParent, int iType, LPCTSTR szCode, LPCTSTR szName, LPCTSTR szDesc) : CDialogEx(IDD_DLG_EQUIPMENT, pParent) , m_iType(iType) , m_szEquipTypeTitle(szName) , m_szEquipTypeCode(szCode) , m_szEquipTypeDesc(szDesc) , m_pkCode(szCode) { } EquipTypeDlg::~EquipTypeDlg() { } void EquipTypeDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_EQUIP_TYPE_NAME, m_szEquipTypeTitle); DDV_MaxChars(pDX, m_szEquipTypeTitle, 127); DDX_Text(pDX, IDC_EDIT_EQUIP_TYPE_CODE, m_szEquipTypeCode); DDV_MaxChars(pDX, m_szEquipTypeCode, 128); DDX_Text(pDX, IDC_EDIT_EQUIP_TYPE_DESC, m_szEquipTypeDesc); DDV_MaxChars(pDX, m_szEquipTypeDesc, 511); DDX_Control(pDX, IDC_BTN_DELETE, m_btnDelete); DDX_Control(pDX, IDC_PLACE_LIST, m_Ctrl_PlaceList); DDX_Control(pDX, IDC_PLACE_ADD, m_BtnCtrl_Add); DDX_Control(pDX, IDC_STATIC_PLACE, m_Label_Place); DDX_Control(pDX, IDC_PLACE_NOTE, m_Label_PlaceNote); } BEGIN_MESSAGE_MAP(EquipTypeDlg, CDialogEx) ON_BN_CLICKED(IDOK, &EquipTypeDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_BTN_DELETE, &EquipTypeDlg::OnBnClickedBtnDelete) ON_BN_CLICKED(IDC_PLACE_ADD, &EquipTypeDlg::OnBnClickedPlaceAdd) ON_NOTIFY(NM_DBLCLK, IDC_PLACE_LIST, &EquipTypeDlg::OnNMDblclkPlaceList) END_MESSAGE_MAP() // 获取文档对象 CDmsDoc *EquipTypeDlg::GetDocument() { CFrameWnd *pFrm = (CFrameWnd *)(AfxGetApp()->m_pMainWnd); ASSERT(pFrm); CView *pView = pFrm->GetActiveView(); CDmsDoc *pDoc = (CDmsDoc *)(pView->GetDocument()); ASSERT(pDoc->IsKindOf(RUNTIME_CLASS(CDmsDoc))); return pDoc; } // EquipTypeDlg 消息处理程序 BOOL EquipTypeDlg::OnInitDialog() { CDialogEx::OnInitDialog(); //创建图标 HICON icon; //加载图标 icon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); SetIcon(icon, true); SetIcon(icon, false); // ShowFieldStatus(); return TRUE; } void EquipTypeDlg::ShowFieldStatus() { if (m_iType == 1) { this->SetWindowText(_T("新增型号")); m_btnDelete.ShowWindow(SW_HIDE); m_Label_PlaceNote.ShowWindow(SW_SHOW); m_BtnCtrl_Add.ShowWindow(SW_HIDE); m_Label_Place.ShowWindow(SW_HIDE); m_Ctrl_PlaceList.ShowWindow(SW_HIDE); } else { this->SetWindowText(_T("编辑型号")); m_btnDelete.ShowWindow(SW_SHOW); m_Label_PlaceNote.ShowWindow(SW_HIDE); m_BtnCtrl_Add.ShowWindow(SW_SHOW); m_Label_Place.ShowWindow(SW_SHOW); m_Ctrl_PlaceList.ShowWindow(SW_SHOW); initPlaceList(); } } /************************************************************************************************** 函 数 名 :initPlaceList 功能描述 :初始化分机列表 输入参数 :无 输出参数 :无 返 回 值 :void **************************************************************************************************/ void EquipTypeDlg::initPlaceList() { int iCount; CHeaderCtrl *pHeadCtrl = m_Ctrl_PlaceList.GetHeaderCtrl(); if (pHeadCtrl != NULL) { iCount = pHeadCtrl->GetItemCount(); for (int i = 0; i < iCount; i++) { m_Ctrl_PlaceList.DeleteColumn(0); } m_Ctrl_PlaceList.DeleteAllItems(); } m_Ctrl_PlaceList.SetExtendedStyle(m_Ctrl_PlaceList.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); m_Ctrl_PlaceList.InsertColumn(0, _T("分机"), LVCFMT_LEFT, 140); CDmsDoc *pDoc = this->GetDocument(); EquipTypePlaceManager *pManager = pDoc->GetEquipTypePlaceManager(); int i = 1; CString szTitle; CppSQLite3Query q = pManager->Query(m_szEquipTypeCode); while (!q.eof()) { szTitle = q.getStringField("equip_type_place"); int nItem = m_Ctrl_PlaceList.InsertItem(i, (LPCTSTR)szTitle); i++; q.nextRow(); } q.finalize(); } /************************************************************************************************** 函 数 名 :OnBnClickedOk 功能描述 :事件处理-保存 输入参数 :无 输出参数 :无 返 回 值 :void **************************************************************************************************/ void EquipTypeDlg::OnBnClickedOk() { UpdateData(TRUE); if (m_szEquipTypeTitle.IsEmpty()) { MessageBox(_T("设备型号名称不能为空")); return; } if (m_szEquipTypeCode.IsEmpty()) { MessageBox(_T("设备型号编码不能为空")); return; } CDialogEx::OnOK(); } /************************************************************************************************** 函 数 名 :OnBnClickedBtnDelete 功能描述 :事件处理-删除 输入参数 :无 输出参数 :无 返 回 值 :void **************************************************************************************************/ void EquipTypeDlg::OnBnClickedBtnDelete() { EndDialog(101); return; } /************************************************************************************************** 函 数 名 :OnBnClickedPlaceAdd 功能描述 :事件处理-新增 输入参数 :无 输出参数 :无 返 回 值 :void **************************************************************************************************/ void EquipTypeDlg::OnBnClickedPlaceAdd() { EquipTypePlaceDlg dlg(this, m_szEquipTypeCode); if (dlg.DoModal() == IDOK) { this->initPlaceList(); } } /************************************************************************************************** 函 数 名 :OnNMDblclkPlaceList 功能描述 :事件处理-双击 输入参数 :无 输出参数 :无 返 回 值 :void **************************************************************************************************/ void EquipTypeDlg::OnNMDblclkPlaceList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 int nItem = pNMItemActivate->iItem; if (nItem >= 0 && nItem < m_Ctrl_PlaceList.GetItemCount()) { CString szEquipTypePlace = m_Ctrl_PlaceList.GetItemText(nItem, 0); // 编辑型号分机 EquipTypePlaceDlg dlg(this, m_szEquipTypeCode, szEquipTypePlace); INT_PTR iRet = dlg.DoModal(); if (iRet == IDOK) { this->initPlaceList(); } } *pResult = 0; }