| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- /**************************************************************************************************
- 版本所有(C), 2020-2022, 北京普达迪泰
- ***************************************************************************************************
- 文 件 名: EquipmentManage.cpp
- 功能描述: 设备管理
- 版 本 号: 1.00初版
- 作 者: HYF
- 生成日期; 2021-12-20
- 最近修改:
- 函数列表:
- 修改历史:
- 1.日 期 :2021-12-20
- 作 者 : HYF
- 修改内容 : 创建文件
- **************************************************************************************************/
- // EquipmentManage.cpp: 实现文件
- //
- #include "pch.h"
- #include "Dms.h"
- #include "EquipTypeView.h"
- #include "EquipTypeManager.h"
- #include "EquipTypePlaceManager.h"
- #include "afxdialogex.h"
- #include "resource.h"
- #include "DmsDoc.h"
- #include "EquipTypeDlg.h"
- #include "CppSQLite3.h"
- #include "Excel.h"
- #include "resource.h"
- #include "EquipType.h"
- // EquipTypeView 对话框
- IMPLEMENT_DYNAMIC(EquipTypeView, CDialogEx)
- EquipTypeView::EquipTypeView(CWnd* pParent /*=nullptr*/)
- : CDialogEx(IDD_DLG_EQUITYPE_VIEW, pParent)
- {
- }
- EquipTypeView::~EquipTypeView()
- {
- }
- void EquipTypeView::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_STATIC_EQUIP_TITLE, m_Static_Title);
- DDX_Control(pDX, IDC_LIST_EQUIPTYPE, m_ListCtrl_EquipTypeList);
- }
- BEGIN_MESSAGE_MAP(EquipTypeView, CDialogEx)
- ON_BN_CLICKED(IDC_BTN_ADD, &EquipTypeView::OnBnClickedBtnAdd)
- ON_BN_CLICKED(IDC_BTN_EXPORT_EXCEL, &EquipTypeView::OnBnClickedBtnExportExcel)
- ON_NOTIFY(NM_DBLCLK, IDC_LIST_EQUIPTYPE, &EquipTypeView::OnNMDblclkListEquipType)
- END_MESSAGE_MAP()
- // 获取文档对象
- CDmsDoc *EquipTypeView::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;
- }
- /**************************************************************************************************
- 函 数 名 :OnInitDialog
- 功能描述 :初始化UI数据
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- BOOL EquipTypeView::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
- //创建图标
- HICON icon;
- //加载图标
- icon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- SetIcon(icon, true);
- SetIcon(icon, false);
- m_Static_Title.SetFontSize(16);
- m_Static_Title.SetFontBold(TRUE);
- this->InitEquipTypeList();
- return TRUE;
- }
- /**************************************************************************************************
- 函 数 名 :InitEquipTypeList
- 功能描述 :初始化设备型号下拉选择
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void EquipTypeView::InitEquipTypeList()
- {
- int iCount;
- CHeaderCtrl *pHeadCtrl = m_ListCtrl_EquipTypeList.GetHeaderCtrl();
- if (pHeadCtrl != NULL)
- {
- iCount = pHeadCtrl->GetItemCount();
- for (int i = 0; i < iCount; i++)
- {
- m_ListCtrl_EquipTypeList.DeleteColumn(0);
- }
- m_ListCtrl_EquipTypeList.DeleteAllItems();
- }
- m_ListCtrl_EquipTypeList.SetExtendedStyle(m_ListCtrl_EquipTypeList.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
- m_ListCtrl_EquipTypeList.InsertColumn(0, _T("序号"), LVCFMT_CENTER, 40);
- LVCOLUMN lvc;
- lvc.mask = LVCF_FMT;
- m_ListCtrl_EquipTypeList.GetColumn(0, &lvc);
- lvc.fmt &= ~LVCFMT_JUSTIFYMASK;
- lvc.fmt |= LVCFMT_CENTER;
- m_ListCtrl_EquipTypeList.SetColumn(0, &lvc);
- m_ListCtrl_EquipTypeList.InsertColumn(1, _T("设备类别"), LVCFMT_CENTER, 200);
- m_ListCtrl_EquipTypeList.InsertColumn(2, _T("设备型号"), LVCFMT_CENTER, 100);
- m_ListCtrl_EquipTypeList.InsertColumn(3, _T("简要说明"), LVCFMT_LEFT, 318);
- CDmsDoc *pDoc = this->GetDocument();
- EquipTypeManager *pManager = pDoc->GetEquipTypeManager();
- int i = 1;
- CString szNo;
- CString szCode;
- CString szTitle;
- CString szDesc;
-
- CppSQLite3Query q = pManager->Query();
- while (!q.eof()) {
- szNo.Format("%d", i);
- int nItem = m_ListCtrl_EquipTypeList.InsertItem(i, (LPCTSTR)szNo);
- szTitle = q.getStringField("equip_type_title");
- m_ListCtrl_EquipTypeList.SetItemText(nItem, 1, (LPCTSTR)szTitle);
- szCode = q.getStringField("equip_type_code");
- m_ListCtrl_EquipTypeList.SetItemText(nItem, 2, (LPCTSTR)szCode);
- szDesc = q.getStringField("equip_type_desc");
- m_ListCtrl_EquipTypeList.SetItemText(nItem, 3, (LPCTSTR)szDesc);
- i++;
- q.nextRow();
- }
- q.finalize();
- }
- /**************************************************************************************************
- 函 数 名 :OnBnClickedBtnAdd
- 功能描述 :事件处理-新增
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void EquipTypeView::OnBnClickedBtnAdd()
- {
- EquipTypeDlg dlg(this);
- if (dlg.DoModal() == IDOK) {
- CDmsDoc *pDoc = this->GetDocument();
- EquipTypeManager *pManager = pDoc->GetEquipTypeManager();
- EquipType equipType ;
- equipType.SetEquipTypeCode(dlg.m_szEquipTypeCode);
- equipType.SetEquipTypeTitle(dlg.m_szEquipTypeTitle);
- equipType.SetEquipTypeDesc(dlg.m_szEquipTypeDesc);
- BOOL bRet = pManager->Add(equipType);
- if (bRet) {
- this->InitEquipTypeList();
- pDoc->UpdateAllViews(NULL);
- }
- }
- }
- /**************************************************************************************************
- 函 数 名 :OnBnClickedBtnExportExcel
- 功能描述 :导出PDF
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void EquipTypeView::OnBnClickedBtnExportExcel()
- {
- BOOL isOpen = FALSE;
- CFileDialog dlg(isOpen, 0, 0, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Excel Files(*.xlsx)|*.xlsx");
- if (IDOK != dlg.DoModal())
- {
- return;
- }
- CString szFilePath = dlg.GetPathName();
- CExport2Excel excelApp;
- bool bRet = excelApp.CreateExcel(szFilePath);
- if (!bRet) {
- MessageBox(_T("本机的Excel未安装或安装不完整,请重新安装Office Excel"));
- return;
- }
- excelApp.CreateSheet(_T("设备型号"));
- excelApp.SetFont(1, _T("宋体"), 14, true);
- excelApp.SetColWidth(1, 5);
- excelApp.SetColWidth(2, 25);
- excelApp.SetColWidth(3, 35);
- excelApp.SetColWidth(4, 50);
- excelApp.WriteData(1, 1, _T("序号"));
- excelApp.SetHorizontalAlignment(1, 1, xlCenter);
- excelApp.WriteData(1, 2, _T("型号"));
- excelApp.SetHorizontalAlignment(1, 2, xlCenter);
- excelApp.WriteData(1, 3, _T("名称"));
- excelApp.SetHorizontalAlignment(1, 3, xlLeft);
- excelApp.WriteData(1, 4, _T("说明"));
- excelApp.SetHorizontalAlignment(1, 4, xlLeft);
- CDmsDoc *pDoc = this->GetDocument();
- EquipTypeManager *pManager = pDoc->GetEquipTypeManager();
- int i = 2;
- CString szNo;
- CString szCode;
- CString szTitle;
- CString szDesc;
- CppSQLite3Query q = pManager->Query();
- while (!q.eof()) {
- szNo.Format("%d", i-1);
- excelApp.WriteData(i, 1,(LPCTSTR)szNo);
- excelApp.SetHorizontalAlignment(i, 1, xlCenter);
- szCode = q.getStringField("equip_type_code");
- excelApp.WriteData(i, 2, (LPCTSTR)szCode);
- excelApp.SetHorizontalAlignment(i, 2, xlCenter);
- szTitle = q.getStringField("equip_type_title");
- excelApp.WriteData(i, 3, (LPCSTR)szTitle);
- excelApp.SetHorizontalAlignment(i, 3, xlLeft);
- szDesc = q.getStringField("equip_type_desc");
- excelApp.WriteData(i, 4, (LPCTSTR)szDesc);
- excelApp.SetHorizontalAlignment(i, 4, xlLeft);
- i++;
- q.nextRow();
- }
- q.finalize();
- excelApp.SetBorders(1, 1, i-1, 4, true, true, true, true, true, true, xlThin, xlThin, xlThin, xlThin, xlThin, xlThin);
- excelApp.Save();
- excelApp.Close();
- CString szMsg;
- szMsg.Format("导出文件成功,保存在%s", szFilePath);
- MessageBox(szMsg);
- return;
- }
- /**************************************************************************************************
- 函 数 名 :OnNMDblclkListEquipment
- 功能描述 :事件处理-点击列表行
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void EquipTypeView::OnNMDblclkListEquipType(NMHDR *pNMHDR, LRESULT *pResult)
- {
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
-
- int nItem = pNMItemActivate->iItem;
- if (nItem >= 0 && nItem < m_ListCtrl_EquipTypeList.GetItemCount())
- {
- CString szTitle = m_ListCtrl_EquipTypeList.GetItemText(nItem, 1);
- CString szCode = m_ListCtrl_EquipTypeList.GetItemText(nItem, 2);
- CString szDesc = m_ListCtrl_EquipTypeList.GetItemText(nItem, 3);
- // 编辑型号
- EquipTypeDlg dlg(this, 2, szCode, szTitle, szDesc);
- INT_PTR iRet = dlg.DoModal();
- if (iRet == IDOK)
- {
- EquipType equipType ;
- equipType.SetEquipTypeCode(dlg.m_szEquipTypeCode);
- equipType.SetEquipTypeTitle(dlg.m_szEquipTypeTitle);
- equipType.SetEquipTypeDesc(dlg.m_szEquipTypeDesc);
- CDmsDoc *pDoc = this->GetDocument();
- EquipTypeManager *pManager = pDoc->GetEquipTypeManager();
- BOOL bRet = pManager->Update(szCode, equipType);
- if (bRet) {
- this->InitEquipTypeList();
- pDoc->UpdateAllViews(NULL);
- }
- }
- else if (iRet == 101) {
- // 删除型号
- CDmsDoc *pDoc = this->GetDocument();
- EquipTypeManager *pManager = pDoc->GetEquipTypeManager();
- EquipTypePlaceManager *pPlaceManager = pDoc->GetEquipTypePlaceManager();
- BOOL bRet = pManager->Delete(dlg.m_pkCode);
- bRet = pPlaceManager->Delete(dlg.m_pkCode);
- if (bRet) {
- this->InitEquipTypeList();
- pDoc->UpdateAllViews(NULL);
- }
- }
- }
- *pResult = 0;
- }
|