/************************************************************************************************** 版本所有(C), 2020-2022, 北京普达迪泰 *************************************************************************************************** 文 件 名: ReportManage.cpp 功能描述: 历史报告 版 本 号: 1.00初版 作 者: HYF 生成日期; 2021-12-20 最近修改: 函数列表: 修改历史: 1.日 期 :2021-12-20 作 者 : HYF 修改内容 : 创建文件 **************************************************************************************************/ // ReportManage.cpp: 实现文件 // #include "pch.h" #include "Dms.h" #include "ReportView.h" #include "TaskManager.h" #include "CppSQLite3.h" #include "afxdialogex.h" #include "resource.h" #include "DmsDoc.h" #include "StaticReport.h" #include "DynamicReport.h" // ReportView 对话框 IMPLEMENT_DYNAMIC(ReportView, CDialogEx) ReportView::ReportView(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_DLG_REPORT_VIEW, pParent) { } ReportView::~ReportView() { } void ReportView::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_STATIC_REPORT_TITLE, m_Static_ReportTitle); DDX_Control(pDX, IDC_LIST_TASK_DATA, m_ListCtrl_TaskData); } BEGIN_MESSAGE_MAP(ReportView, CDialogEx) ON_NOTIFY(NM_DBLCLK, IDC_LIST_TASK_DATA, &ReportView::OnDblclkListTaskData) END_MESSAGE_MAP() // 获取文档对象 CDmsDoc *ReportView::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 ReportView::OnInitDialog() { CDialogEx::OnInitDialog(); //创建图标 HICON icon; //加载图标 icon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); SetIcon(icon, true); SetIcon(icon, false); m_Static_ReportTitle.SetFontSize(16); m_Static_ReportTitle.SetFontBold(TRUE); InitTaskRecordList(); return TRUE; } /************************************************************************************************** 函 数 名 :InitTaskRecordList 功能描述 :初始化任务记录显示 输入参数 :无 输出参数 :无 返 回 值 :void **************************************************************************************************/ void ReportView::InitTaskRecordList() { int iCount; CHeaderCtrl *pHeadCtrl = m_ListCtrl_TaskData.GetHeaderCtrl(); if (pHeadCtrl != NULL) { iCount = pHeadCtrl->GetItemCount(); for (int i = 0; i < iCount; i++) { m_ListCtrl_TaskData.DeleteColumn(0); } m_ListCtrl_TaskData.DeleteAllItems(); } m_ListCtrl_TaskData.SetExtendedStyle(m_ListCtrl_TaskData.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); m_ListCtrl_TaskData.InsertColumn(0, _T("任务ID"), LVCFMT_CENTER, 60); LVCOLUMN lvc; lvc.mask = LVCF_FMT; m_ListCtrl_TaskData.GetColumn(0, &lvc); lvc.fmt &= ~LVCFMT_JUSTIFYMASK; lvc.fmt |= LVCFMT_CENTER; m_ListCtrl_TaskData.SetColumn(0, &lvc); m_ListCtrl_TaskData.InsertColumn(1, _T("任务名称"), LVCFMT_LEFT, 200); m_ListCtrl_TaskData.InsertColumn(2, _T("执行时间"), LVCFMT_CENTER, 150); m_ListCtrl_TaskData.InsertColumn(3, _T("类别"), LVCFMT_CENTER, 80); m_ListCtrl_TaskData.InsertColumn(4, _T("设备型号"), LVCFMT_CENTER, 100); m_ListCtrl_TaskData.InsertColumn(5, _T("设备编号"), LVCFMT_CENTER, 100); m_ListCtrl_TaskData.InsertColumn(6, _T("说明"), LVCFMT_LEFT, 220); CDmsDoc *pDoc = this->GetDocument(); TaskManager *pManager = pDoc->GetTaskManager(); int i = 1; CString szTaskId; CString szTaskTime; CString szEquipTypeCode; CString szTaskType1 = "静态测量"; CString szTaskType2 = "动态测量"; CString szEquipCode; CString szTaskTitle; CString szTaskDesc; CppSQLite3Query q = pManager->Query(); while (!q.eof()) { DWORD taskId = q.getIntField("task_id"); szTaskId.Format("%d", taskId); int nItem = m_ListCtrl_TaskData.InsertItem(i, (LPCTSTR)szTaskId); szTaskTitle = q.getStringField("task_title"); m_ListCtrl_TaskData.SetItemText(nItem, 1, (LPCTSTR)szTaskTitle); szTaskTime = q.getStringField("task_time"); m_ListCtrl_TaskData.SetItemText(nItem, 2, (LPCTSTR)szTaskTime); DWORD dwTaskType = q.getIntField("task_type"); if (dwTaskType == 0) m_ListCtrl_TaskData.SetItemText(nItem, 3, szTaskType1); else m_ListCtrl_TaskData.SetItemText(nItem, 3, szTaskType2); szEquipTypeCode = q.getStringField("equip_type_code"); m_ListCtrl_TaskData.SetItemText(nItem, 4, (LPCTSTR)szEquipTypeCode); szEquipCode = q.getStringField("equip_code"); m_ListCtrl_TaskData.SetItemText(nItem, 5, (LPCTSTR)szEquipCode); szTaskDesc = q.getStringField("task_desc"); m_ListCtrl_TaskData.SetItemText(nItem, 6, (LPCTSTR)szTaskDesc); i++; q.nextRow(); } q.finalize(); } /************************************************************************************************** 函 数 名 :OnDblclkListTaskData 功能描述 :事件处理-双击任务记录 输入参数 :无 输出参数 :无 返 回 值 :void **************************************************************************************************/ void ReportView::OnDblclkListTaskData(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); int nItem = pNMItemActivate->iItem; if (nItem >= 0 && nItem < m_ListCtrl_TaskData.GetItemCount()) { CString szTaskId = m_ListCtrl_TaskData.GetItemText(nItem, 0); CString szTaskType = m_ListCtrl_TaskData.GetItemText(nItem, 3); DWORD taskId = _tstoi(szTaskId); if (szTaskType.Compare("静态测量") == 0) { StaticReport dlg1(this, taskId); dlg1.DoModal(); } else { DynamicReport dlg2(this, taskId); dlg2.DoModal(); } } *pResult = 0; }