From 5948c336569b608b6def60b37f8cdaa10ac41dff Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期四, 11 十二月 2025 11:01:47 +0800
Subject: [PATCH] 1.Report增加三按钮;

---
 SourceCode/Bond/Servo/CPageReport.cpp |   39 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/SourceCode/Bond/Servo/CPageReport.cpp b/SourceCode/Bond/Servo/CPageReport.cpp
index d2900e3..ca178ef 100644
--- a/SourceCode/Bond/Servo/CPageReport.cpp
+++ b/SourceCode/Bond/Servo/CPageReport.cpp
@@ -32,6 +32,7 @@
 	ON_WM_CTLCOLOR()
 	ON_WM_DESTROY()
 	ON_WM_SIZE()
+	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, &CPageReport::OnLvnItemchangedList1)
 END_MESSAGE_MAP()
 
 
@@ -64,7 +65,7 @@
 	m_listCtrl.InsertColumn(0, _T(""), LVCFMT_RIGHT, width[0]);
 	m_listCtrl.InsertColumn(1, _T("RPT ID"), LVCFMT_LEFT, width[1]);
 	m_listCtrl.InsertColumn(2, _T("VID"), LVCFMT_LEFT, width[2]);
-	// loadVariables();
+	loadReports();
 
 	return TRUE;  // return TRUE unless you set the focus to a control
 				  // 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
@@ -108,8 +109,42 @@
 	CHMPropertyPage::OnSize(nType, cx, cy);
 	if (GetDlgItem(IDC_LIST1) == nullptr) return;
 
-	CWnd* pItem;
 	CRect rcClient, rcItem;
 	GetClientRect(&rcClient);
 	m_listCtrl.MoveWindow(12, 12, rcClient.Width() - 24, rcClient.Height() - 24);
 }
+
+void CPageReport::loadReports()
+{
+	auto& reports = theApp.m_model.m_hsmsPassive.getReports();
+	for (auto item : reports) {
+		int index = m_listCtrl.InsertItem(m_listCtrl.GetItemCount(), _T(""));
+		m_listCtrl.SetItemData(index, (DWORD_PTR)item);
+		m_listCtrl.SetItemText(index, 1, std::to_string(item->getReportId()).c_str());
+		m_listCtrl.SetItemText(index, 2, item->getVariablesIdsText().c_str());
+	}
+}
+
+void CPageReport::OnCreateBtns()
+{
+	const int BTN_W = 80;
+	const int BTN_H = 28;
+	CreateBtn(_T("鏂板"), BTN_W, BTN_H, 2001);
+	CreateBtn(_T("鍒犻櫎"), BTN_W, BTN_H, 2002)->EnableWindow(FALSE);
+	CreateBtn(_T("缂栬緫"), BTN_W, BTN_H, 2003)->EnableWindow(FALSE);
+}
+
+void CPageReport::OnLvnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
+{
+	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
+	int nSelCount = m_listCtrl.GetSelectedCount();
+
+	if (CButton* pDel = GetBtnByName("鍒犻櫎")) {
+		pDel->EnableWindow(nSelCount > 0);
+	}
+	if (CButton* pEdit = GetBtnByName("缂栬緫")) {
+		pEdit->EnableWindow(nSelCount > 0);
+	}
+
+	*pResult = 0;
+}

--
Gitblit v1.9.3