From 72f3802bd7ab24b672c951a287787b5dea253f3b Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期六, 02 八月 2025 10:48:36 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/EAPSimulator/CDefineReportsDlg.cpp | 193 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 193 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/EAPSimulator/CDefineReportsDlg.cpp b/SourceCode/Bond/EAPSimulator/CDefineReportsDlg.cpp
new file mode 100644
index 0000000..5ff5f39
--- /dev/null
+++ b/SourceCode/Bond/EAPSimulator/CDefineReportsDlg.cpp
@@ -0,0 +1,193 @@
+锘�// CDefineReportsDlg.cpp: 瀹炵幇鏂囦欢
+//
+
+#include "pch.h"
+#include "EAPSimulator.h"
+#include "CDefineReportsDlg.h"
+#include "afxdialogex.h"
+#include "CAddIDSDlg.h"
+
+
+// CDefineReportsDlg 瀵硅瘽妗�
+
+IMPLEMENT_DYNAMIC(CDefineReportsDlg, CDialogEx)
+
+CDefineReportsDlg::CDefineReportsDlg(CWnd* pParent /*=nullptr*/)
+ : CDialogEx(IDD_DIALOG_DEFINE_REPORTS, pParent)
+{
+
+}
+
+CDefineReportsDlg::~CDefineReportsDlg()
+{
+}
+
+void CDefineReportsDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialogEx::DoDataExchange(pDX);
+}
+
+
+BEGIN_MESSAGE_MAP(CDefineReportsDlg, CDialogEx)
+ ON_BN_CLICKED(IDC_BUTTON_ADD_RPTID, &CDefineReportsDlg::OnBnClickedButtonAddRptid)
+ ON_LBN_SELCHANGE(IDC_LIST1, &CDefineReportsDlg::OnLbnSelchangeList1)
+ ON_BN_CLICKED(IDC_BUTTON_DEL_REPORT, &CDefineReportsDlg::OnBnClickedButtonDelReport)
+ ON_BN_CLICKED(IDC_BUTTON_ADD_VID, &CDefineReportsDlg::OnBnClickedButtonAddVid)
+ ON_LBN_SELCHANGE(IDC_LIST2, &CDefineReportsDlg::OnLbnSelchangeList2)
+ ON_BN_CLICKED(IDC_BUTTON_DEL_VID, &CDefineReportsDlg::OnBnClickedButtonDelVid)
+ ON_BN_CLICKED(IDC_BUTTON_SEND, &CDefineReportsDlg::OnBnClickedButtonSend)
+END_MESSAGE_MAP()
+
+
+// CDefineReportsDlg 娑堟伅澶勭悊绋嬪簭
+void CDefineReportsDlg::OnBnClickedButtonAddRptid()
+{
+ CAddIDSDlg dlg;
+ dlg.SetTitle("RPTID");
+ dlg.DoModal();
+ int PRTID = dlg.GetId();
+ addReport(PRTID);
+}
+
+void CDefineReportsDlg::OnBnClickedButtonAddVid()
+{
+ CString strReportId;
+ CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
+ int nSel = pListBox->GetCurSel();
+ if (nSel >= 0) {
+ pListBox->GetText(nSel, strReportId);
+ int RPTID = atoi(strReportId);
+
+ CAddIDSDlg dlg;
+ dlg.SetTitle("RPTID");
+ dlg.DoModal();
+ unsigned int VID = dlg.GetId();;
+ addVid(RPTID, VID);
+ }
+
+
+}
+
+void CDefineReportsDlg::OnLbnSelchangeList1()
+{
+ CString strReportId;
+ int RPTID = -1;
+ CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
+ int nSel = pListBox->GetCurSel();
+ if (nSel >= 0) {
+ pListBox->GetText(nSel, strReportId);
+ RPTID = atoi(strReportId);
+ }
+
+ GetDlgItem(IDC_BUTTON_DEL_REPORT)->EnableWindow(nSel >= 0);
+ GetDlgItem(IDC_BUTTON_ADD_VID)->EnableWindow(nSel >= 0);
+
+ CListBox* pListBox2 = (CListBox*)GetDlgItem(IDC_LIST2);
+ pListBox2->ResetContent();
+ auto iter = m_mapReport.find(RPTID);
+ if (iter != m_mapReport.end()) {
+ auto& vids = m_mapReport[RPTID];
+ for (auto item : vids) {
+ pListBox2->AddString(std::to_string(item).c_str());
+ }
+ }
+}
+
+void CDefineReportsDlg::OnBnClickedButtonDelReport()
+{
+ CString strReportId;
+ CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
+ int nSel = pListBox->GetCurSel();
+ if (nSel >= 0) {
+ pListBox->GetText(nSel, strReportId);
+ int RPTID = atoi(strReportId);
+ delReport(RPTID);
+ pListBox->DeleteString(nSel);
+ ((CListBox*)GetDlgItem(IDC_LIST2))->ResetContent();
+ }
+
+ nSel = pListBox->GetCurSel();
+ GetDlgItem(IDC_BUTTON_DEL_REPORT)->EnableWindow(nSel >= 0);
+ GetDlgItem(IDC_BUTTON_ADD_VID)->EnableWindow(nSel >= 0);
+}
+
+void CDefineReportsDlg::OnLbnSelchangeList2()
+{
+ CListBox* pListBox2 = (CListBox*)GetDlgItem(IDC_LIST2);
+ int nSel = pListBox2->GetCurSel();
+ GetDlgItem(IDC_BUTTON_DEL_VID)->EnableWindow(nSel >= 0);
+}
+
+void CDefineReportsDlg::OnBnClickedButtonDelVid()
+{
+ CString strRPTID, strVID;
+ CListBox* pListBox1 = (CListBox*)GetDlgItem(IDC_LIST1);
+ CListBox* pListBox2 = (CListBox*)GetDlgItem(IDC_LIST2);
+ int nSel1 = pListBox1->GetCurSel();
+ int nSel2 = pListBox2->GetCurSel();
+ if (nSel1 >= 0 && nSel2 >= 0) {
+ pListBox1->GetText(nSel1, strRPTID);
+ pListBox2->GetText(nSel2, strVID);
+ int RPTID = atoi(strRPTID);
+ int VID = atoi(strVID);
+ delVid(RPTID, VID);
+ pListBox2->DeleteString(nSel2);
+ }
+
+ nSel2 = pListBox2->GetCurSel();
+ GetDlgItem(IDC_BUTTON_DEL_VID)->EnableWindow(nSel2 >= 0);
+}
+
+void CDefineReportsDlg::addReport(int RPTID)
+{
+ auto iter = m_mapReport.find(RPTID);
+ if (iter == m_mapReport.end()) {
+ std::vector<unsigned int> vids;
+ m_mapReport[RPTID] = vids;
+ }
+
+ CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
+ pListBox->AddString(std::to_string(RPTID).c_str());
+}
+
+bool CDefineReportsDlg::addVid(unsigned int RPTID, unsigned int vid)
+{
+ auto iter = m_mapReport.find(RPTID);
+ if (iter == m_mapReport.end()) {
+ return false;
+ }
+
+ auto& vids = m_mapReport[RPTID];
+ vids.push_back(vid);
+ CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST2);
+ pListBox->AddString(std::to_string(vid).c_str());
+
+ return true;
+}
+
+void CDefineReportsDlg::delReport(int RPTID)
+{
+ auto iter = m_mapReport.find(RPTID);
+ if (iter != m_mapReport.end()) {
+ m_mapReport.erase(iter);
+ }
+}
+
+void CDefineReportsDlg::delVid(int RPTID, int VID)
+{
+ auto iter = m_mapReport.find(RPTID);
+ if (iter != m_mapReport.end()) {
+ auto& vids = iter->second;
+ for (auto iter2 = vids.begin(); iter2 != vids.end(); iter2++) {
+ if ((*iter2) == VID) {
+ vids.erase(iter2);
+ break;
+ }
+ }
+ }
+}
+
+void CDefineReportsDlg::OnBnClickedButtonSend()
+{
+ theApp.m_model.m_pHsmsActive->hsmsDefineReports(m_mapReport);
+}
--
Gitblit v1.9.3