From 829fe6c6bc33d53fda9c31fd45a37e1df87befff Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 30 一月 2026 11:16:24 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/Servo/CReportEditDlg.cpp | 78 +++++++++++++++++++++++++++++++++++++++
1 files changed, 78 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CReportEditDlg.cpp b/SourceCode/Bond/Servo/CReportEditDlg.cpp
new file mode 100644
index 0000000..5dd368b
--- /dev/null
+++ b/SourceCode/Bond/Servo/CReportEditDlg.cpp
@@ -0,0 +1,78 @@
+锘�#include "stdafx.h"
+#include "CReportEditDlg.h"
+#include "Servo.h"
+#include "resource.h"
+#include <algorithm>
+
+IMPLEMENT_DYNAMIC(CReportEditDlg, CDialogEx)
+
+CReportEditDlg::CReportEditDlg(const CString& title, int rptId, const std::vector<unsigned int>& vids, CWnd* pParent)
+ : CDialogEx(IDD_DIALOG_REPORT_EDIT, pParent)
+ , m_strTitle(title)
+ , m_rptId(rptId)
+ , m_vids(vids)
+{
+}
+
+CReportEditDlg::~CReportEditDlg()
+{
+}
+
+void CReportEditDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialogEx::DoDataExchange(pDX);
+ DDX_Control(pDX, IDC_EDIT_RPT_ID, m_editId);
+ DDX_Control(pDX, IDC_LIST_RPT_VARS, m_listVars);
+}
+
+BEGIN_MESSAGE_MAP(CReportEditDlg, CDialogEx)
+END_MESSAGE_MAP()
+
+BOOL CReportEditDlg::OnInitDialog()
+{
+ CDialogEx::OnInitDialog();
+ SetWindowText(m_strTitle);
+
+ CString strId;
+ strId.Format(_T("%d"), m_rptId);
+ m_editId.SetWindowText(strId);
+ m_editId.SetReadOnly(TRUE);
+
+ // 鍒濆鍖栧垪琛�
+ m_listVars.SetExtendedStyle(m_listVars.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES);
+ m_listVars.InsertColumn(0, _T("ID"), LVCFMT_LEFT, 60);
+ m_listVars.InsertColumn(1, _T("鍚嶇О"), LVCFMT_LEFT, 140);
+ m_listVars.InsertColumn(2, _T("鏍煎紡"), LVCFMT_LEFT, 80);
+
+ auto& vars = theApp.m_model.m_hsmsPassive.getVariables();
+ for (int i = 0; i < (int)vars.size(); ++i) {
+ auto v = vars[i];
+ if (v == nullptr) continue;
+ int idx = m_listVars.InsertItem(m_listVars.GetItemCount(), std::to_string(v->getVarialbleId()).c_str());
+ m_listVars.SetItemText(idx, 1, v->getName().c_str());
+ m_listVars.SetItemText(idx, 2, SERVO::CVariable::formatToString(v->getFormat()).c_str());
+ m_listVars.SetItemData(idx, (DWORD_PTR)v->getVarialbleId());
+ if (std::find(m_vids.begin(), m_vids.end(), v->getVarialbleId()) != m_vids.end()) {
+ m_listVars.SetCheck(idx, TRUE);
+ }
+ }
+
+ return TRUE;
+}
+
+void CReportEditDlg::OnOK()
+{
+ std::vector<unsigned int> selected;
+ int count = m_listVars.GetItemCount();
+ for (int i = 0; i < count; ++i) {
+ if (m_listVars.GetCheck(i)) {
+ selected.push_back((unsigned int)m_listVars.GetItemData(i));
+ }
+ }
+ if (selected.empty()) {
+ AfxMessageBox(_T("鑷冲皯閫夋嫨涓�涓彉閲�"));
+ return;
+ }
+ m_vids.swap(selected);
+ CDialogEx::OnOK();
+}
--
Gitblit v1.9.3