| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- // DataDictView.cpp: 实现文件
- //
- #include "pch.h"
- #include "DMS.h"
- #include "resource.h"
- #include "DmsDoc.h"
- #include "DictView.h"
- #include "afxdialogex.h"
- #include "DictItem.h"
- #include "CppSQLite3.h"
- #include "DictManager.h"
- #include "Dict.h"
- // DictView 对话框
- IMPLEMENT_DYNAMIC(DictView, CDialogEx)
- DictView::DictView(CWnd* pParent /*=nullptr*/)
- : CDialogEx(IDD_DLG_DICT_VIEW, pParent)
- {
- }
- DictView::~DictView()
- {
- }
- void DictView::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_LIST_DICT, m_ListCtrl_Dict);
- }
- // 获取文档对象
- CDmsDoc *DictView::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;
- }
- BEGIN_MESSAGE_MAP(DictView, CDialogEx)
- ON_BN_CLICKED(IDC_BTN_DICT_ADD, &DictView::OnBnClickedBtnDictAdd)
- ON_NOTIFY(NM_DBLCLK, IDC_LIST_DICT, &DictView::OnNMDblclkListDict)
- END_MESSAGE_MAP()
- // DataDictView 消息处理程序
- /**************************************************************************************************
- 函 数 名 :OnInitDialog
- 功能描述 :初始化UI数据
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- BOOL DictView::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
- //创建图标
- HICON icon;
- //加载图标
- icon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- SetIcon(icon, true);
- SetIcon(icon, false);
- this->InitDictList();
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
- /**************************************************************************************************
- 函 数 名 :InitEquipTypeList
- 功能描述 :初始化设备型号下拉选择
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void DictView::InitDictList()
- {
- int iCount;
- CHeaderCtrl *pHeadCtrl = m_ListCtrl_Dict.GetHeaderCtrl();
- if (pHeadCtrl != NULL)
- {
- iCount = pHeadCtrl->GetItemCount();
- for (int i = 0; i < iCount; i++)
- {
- m_ListCtrl_Dict.DeleteColumn(0);
- }
- m_ListCtrl_Dict.DeleteAllItems();
- }
- m_ListCtrl_Dict.SetExtendedStyle(m_ListCtrl_Dict.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
- m_ListCtrl_Dict.InsertColumn(0, _T("序号"), LVCFMT_CENTER, 60);
- LVCOLUMN lvc;
- lvc.mask = LVCF_FMT;
- m_ListCtrl_Dict.GetColumn(0, &lvc);
- lvc.fmt &= ~LVCFMT_JUSTIFYMASK;
- lvc.fmt |= LVCFMT_CENTER;
- m_ListCtrl_Dict.SetColumn(0, &lvc);
- m_ListCtrl_Dict.InsertColumn(1, _T("编码"), LVCFMT_CENTER, 200);
- m_ListCtrl_Dict.InsertColumn(2, _T("标题"), LVCFMT_CENTER, 200);
- m_ListCtrl_Dict.InsertColumn(3, _T("备注"), LVCFMT_LEFT, 265);
- int i = 1;
- CString szNo;
- CString szCode;
- CString szTitle;
- CString szRemark;
- CDmsDoc *pDoc = this->GetDocument();
- DictManager *pManager = pDoc->GetDictManager();
- ASSERT(pManager != NULL);
- CppSQLite3Query q = pManager->Query();
- while (!q.eof()) {
- szNo.Format("%d", i);
- int nItem = m_ListCtrl_Dict.InsertItem(i, (LPCTSTR)szNo);
- szCode = q.getStringField("item_code");
- m_ListCtrl_Dict.SetItemText(nItem, 1, (LPCTSTR)szCode);
- szTitle = q.getStringField("item_title");
- m_ListCtrl_Dict.SetItemText(nItem, 2, (LPCTSTR)szTitle);
- szRemark = q.getStringField("item_remark");
- m_ListCtrl_Dict.SetItemText(nItem, 3, (LPCTSTR)szRemark);
- i++;
- q.nextRow();
- }
- q.finalize();
- }
- /**************************************************************************************************
- 函 数 名 :OnBnClickedBtnDictAdd
- 功能描述 :事件处理-新增
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void DictView::OnBnClickedBtnDictAdd()
- {
- DictItem dlg(this);
- if (dlg.DoModal() == IDOK) {
- CDmsDoc *pDoc = this->GetDocument();
- DictManager *pManager = pDoc->GetDictManager();
- Dict dict;
- dict.SetItemCode(dlg.m_szItemCode);
- dict.SetItemTitle(dlg.m_szItemTitle);
- dict.SetItemRemark(dlg.m_szItemRemark);
- BOOL bRet = pManager->Add(dict);
- if (bRet) {
- this->InitDictList();
- pDoc->UpdateAllViews(NULL);
- }
- }
- }
- /**************************************************************************************************
- 函 数 名 :OnNMDblclkListEquipment
- 功能描述 :事件处理-点击列表行
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void DictView::OnNMDblclkListDict(NMHDR *pNMHDR, LRESULT *pResult)
- {
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
- int nItem = pNMItemActivate->iItem;
- if (nItem >= 0 && nItem < m_ListCtrl_Dict.GetItemCount())
- {
- CString szCode = m_ListCtrl_Dict.GetItemText(nItem, 1);
- CString szTitle = m_ListCtrl_Dict.GetItemText(nItem, 2);
- CString szRemark = m_ListCtrl_Dict.GetItemText(nItem, 3);
- // 编辑型号
- DictItem dlg(this, 2, szCode, szTitle, szRemark);
- INT_PTR iRet = dlg.DoModal();
- if (iRet == IDOK)
- {
- Dict dict;
- dict.SetItemCode(dlg.m_szItemCode);
- dict.SetItemTitle(dlg.m_szItemTitle);
- dict.SetItemRemark(dlg.m_szItemRemark);
- CDmsDoc *pDoc = this->GetDocument();
- DictManager *pManager = pDoc->GetDictManager();
- BOOL bRet = pManager->Update(dict);
- if (bRet) {
- this->InitDictList();
- pDoc->UpdateAllViews(NULL);
- }
- }
- else if (iRet == 101) {
- // 删除型号
- CDmsDoc *pDoc = this->GetDocument();
- DictManager *pManager = pDoc->GetDictManager();
- BOOL bRet = pManager->Delete(dlg.m_szItemCode);
- if (bRet) {
- this->InitDictList();
- pDoc->UpdateAllViews(NULL);
- }
- }
- }
- *pResult = 0;
- }
|