From 296cead8add8a66a00aa1ea07c19c1039d098c3b Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 10 九月 2025 16:15:30 +0800
Subject: [PATCH] 1.将CListCtrlEx功能移到CExpandableListCtrl。
---
SourceCode/Bond/Servo/CPageGlassList.cpp | 400 +++++++++++++++++++++++++++++---------------------------
1 files changed, 206 insertions(+), 194 deletions(-)
diff --git a/SourceCode/Bond/Servo/CPageGlassList.cpp b/SourceCode/Bond/Servo/CPageGlassList.cpp
index 4a35061..1a4cabb 100644
--- a/SourceCode/Bond/Servo/CPageGlassList.cpp
+++ b/SourceCode/Bond/Servo/CPageGlassList.cpp
@@ -6,9 +6,12 @@
#include "CPageGlassList.h"
#include "afxdialogex.h"
#include "GlassJson.h"
+#include "CServoUtilsTool.h"
+#include "ToolUnits.h"
+#include <optional>
-#define PAGE_SIZE 100
+#define PAGE_SIZE 10
#define PAGE_BACKGROUND_COLOR RGB(252, 252, 255)
// CPageGlassList 瀵硅瘽妗�
@@ -23,9 +26,8 @@
m_pObserver = nullptr;
m_strStatus = "";
- m_strKeyword = "";
m_nCurPage = 0;
- m_nTotalPages = 0;
+ m_nTotalPages = 1;
memset(m_szTimeStart, 0, sizeof(m_szTimeStart));
memset(m_szTimeEnd, 0, sizeof(m_szTimeEnd));
@@ -198,7 +200,7 @@
//m_dateTimeEnd.ModifyStyle(0, DTS_TIMEFORMAT);
}
-void CPageGlassList::LoadTransfers()
+void CPageGlassList::LoadData()
{
m_nCurPage = 1;
UpdatePageData();
@@ -206,19 +208,78 @@
void CPageGlassList::UpdatePageData()
{
- /*
- TransferData filter;
- filter.strStatus = m_strStatus;
- filter.strDescription = m_strKeyword;
- filter.strCreateTime = m_szTimeStart;
- filter.strEndTime = m_szTimeEnd;
- auto vecData = TransferManager::getInstance().getTransfers(filter, m_nCurPage, PAGE_SIZE);
- FillDataToListCtrl(vecData);
+ // 濡傛灉涓虹1椤�, 鍙栧嚭缂撳瓨Glass, 绗﹀悎鏉′欢鍒欐樉绀猴紱
+ m_listCtrl.DeleteAllItems();
+ UpdateWipData();
- int nTotalRecords = TransferManager::getInstance().getFilteredTransferCount(filter);
- m_nTotalPages = (nTotalRecords + PAGE_SIZE - 1) / PAGE_SIZE;
+
+ // 鏌ヨ
+ auto& db = GlassLogDb::Instance();
+ auto page = db.queryPaged(m_filters, PAGE_SIZE, PAGE_SIZE * (m_nCurPage - 1));
+ for (const auto& r : page.items) {
+ int index = m_listCtrl.InsertItem(m_listCtrl.GetItemCount(), "");
+ m_listCtrl.SetItemText(index, 1, std::to_string(r.id).c_str());
+ m_listCtrl.SetItemText(index, 2, std::to_string(r.cassetteSeqNo).c_str());
+ m_listCtrl.SetItemText(index, 3, std::to_string(r.jobSeqNo).c_str());
+ m_listCtrl.SetItemText(index, 4, r.classId.c_str());
+ m_listCtrl.SetItemText(index, 5, SERVO::CServoUtilsTool::getMaterialsTypeText((SERVO::MaterialsType)r.materialType).c_str());
+ m_listCtrl.SetItemText(index, 6, SERVO::CServoUtilsTool::getGlassStateText((SERVO::GlsState)r.state).c_str());
+ m_listCtrl.SetItemText(index, 7, r.tStart.c_str());
+ m_listCtrl.SetItemText(index, 8, r.tEnd.c_str());
+ m_listCtrl.SetItemText(index, 9, r.buddyId.c_str());
+ m_listCtrl.SetItemText(index, 10, SERVO::CServoUtilsTool::getInspResultText((SERVO::InspResult)r.aoiResult).c_str());
+ m_listCtrl.SetItemText(index, 11, r.path.c_str());
+ m_listCtrl.SetItemText(index, 12, r.params.c_str());
+ m_listCtrl.SetItemColor(index, RGB(0, 0, 0), index % 2 == 0 ? RGB(255, 255, 255) : RGB(235, 235, 235));
+
+ // 娴嬭瘯鍙嶅簭鍒楀寲
+ /*
+ SERVO::CGlass g2;
+ std::string err;
+ if (GlassJson::FromString(r.pretty, g2, &err)) {
+ AfxMessageBox(r.pretty.c_str());
+ }
+ */
+ }
+
+ // 涓婁竴椤� / 涓嬩竴椤�
UpdatePageControls();
- */
+}
+
+void CPageGlassList::UpdateWipData()
+{
+ if (m_nCurPage != 1) return;
+
+ // 鍙栧嚭缂撳瓨Glass, 绗﹀悎鏉′欢鍒欐樉绀猴紱
+ // 浣嗚鍒犻櫎鏃х殑鏁版嵁
+ std::vector<SERVO::CGlass*> wipGlasses;
+ theApp.m_model.m_master.getWipGlasses(wipGlasses);
+ std::vector<SERVO::CGlass*> tempGlasses = wipGlasses;
+ int count = m_listCtrl.GetItemCount();
+ if (count > 0) {
+ for (int i = count - 1; i >= 0; i--) {
+ SERVO::CGlass* pGlass = (SERVO::CGlass*)m_listCtrl.GetItemData(i);
+ if (eraseGlassInVector(pGlass, wipGlasses)
+ && GlassMatchesFilters(*pGlass, m_filters)) {
+ // 鏇存柊
+ UpdateWipRow(i, pGlass);
+ }
+ else {
+ // 鍒犻櫎
+ m_listCtrl.DeleteItem(i);
+ }
+ }
+ }
+
+ // 鍓╀笅鐨勫绗﹀彿鎻掑叆
+ for (auto* item : wipGlasses) {
+ if (GlassMatchesFilters(*item, m_filters)) {
+ InsertWipRow(item);
+ }
+ }
+ for (auto* item : tempGlasses) {
+ item->release();
+ }
}
void CPageGlassList::UpdatePageControls()
@@ -228,91 +289,8 @@
SetDlgItemText(IDC_LABEL_PAGE_NUMBER, strPage);
GetDlgItem(IDC_BUTTON_PREV_PAGE)->EnableWindow(m_nCurPage > 1);
GetDlgItem(IDC_BUTTON_NEXT_PAGE)->EnableWindow(m_nCurPage < m_nTotalPages);
-
- Resize();
}
-void CPageGlassList::UpdateDateFilter()
-{
- CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_DATETIME);
- if (nullptr != pComboBox) {
- int nIndex = pComboBox->GetCurSel();
- if (nIndex == 0) {
- memset(m_szTimeStart, 0, sizeof(m_szTimeStart));
- memset(m_szTimeEnd, 0, sizeof(m_szTimeEnd));
- m_szTimeStart[0] = '\0';
- m_szTimeEnd[0] = '\0';
- }
- else {
- CTime time = CTime::GetCurrentTime();
- if (nIndex == 1) {
- sprintf_s(m_szTimeStart, 64, "%d-%02d-%02d 00:00:00", time.GetYear(), time.GetMonth(), time.GetDay());
- sprintf_s(m_szTimeEnd, 64, "%d-%02d-%02d 23:59:59", time.GetYear(), time.GetMonth(), time.GetDay());
- }
- else if (nIndex == 2) {
- CTime time2 = time - CTimeSpan(7, 0, 0, 0);
- sprintf_s(m_szTimeStart, 64, "%d-%02d-%02d 00:00:00", time2.GetYear(), time2.GetMonth(), time2.GetDay());
- sprintf_s(m_szTimeEnd, 64, "%d-%02d-%02d 23:59:59", time.GetYear(), time.GetMonth(), time.GetDay());
- }
- else if (nIndex == 3) {
- sprintf_s(m_szTimeStart, 64, "%d-%02d-01 00:00:00", time.GetYear(), time.GetMonth());
- sprintf_s(m_szTimeEnd, 64, "%d-%02d-%02d 23:59:59", time.GetYear(), time.GetMonth(), time.GetDay());
- }
- else if (nIndex == 4) {
- sprintf_s(m_szTimeStart, 64, "%d-01-01 00:00:00", time.GetYear());
- sprintf_s(m_szTimeEnd, 64, "%d-12-31 23:59:59", time.GetYear());
- }
- else if (nIndex == 5) {
- SYSTEMTIME t1, t2;
- m_dateTimeStart.GetTime(&t1);
- m_dateTimeEnd.GetTime(&t2);
- //sprintf_s(m_szTimeStart, 64, "%d-%02d-%02d %02d:%02d:%02d", t1.wYear, t1.wMonth, t1.wDay, t1.wHour, t1.wMinute, t1.wSecond);
- //sprintf_s(m_szTimeEnd, 64, "%d-%02d-%02d %02d:%02d:%02d", t2.wYear, t2.wMonth, t2.wDay, t2.wHour, t2.wMinute, t2.wSecond);
-
- sprintf_s(m_szTimeStart, 64, "%d-%02d-%02d 00:00:00", t1.wYear, t1.wMonth, t1.wDay);
- sprintf_s(m_szTimeEnd, 64, "%d-%02d-%02d 23:59:59", t2.wYear, t2.wMonth, t2.wDay);
- }
- }
- }
-}
-
-/*
-void CPageGlassList::FillDataToListCtrl(const std::vector<TransferData>& vecData)
-{
- if (m_listCtrl.m_hWnd == nullptr) {
- return;
- }
-
- m_listCtrl.DeleteAllItems();
- for (const auto& item : vecData) {
- InsertTransferData(item);
- }
-}
-
-void CPageGlassList::InsertTransferData(const TransferData& data)
-{
- if (m_listCtrl.m_hWnd == nullptr) {
- return;
- }
-
- int nIndex = m_listCtrl.GetItemCount();
- if (nIndex < 0) {
- return;
- }
-
- int nItem = m_listCtrl.InsertItem(nIndex, _T(""));
- CString str;
- str.Format(_T("%d"), data.nRecordId);
- m_listCtrl.SetItemText(nItem, 1, str);
- m_listCtrl.SetItemText(nItem, 2, CString(data.strStatus.c_str()));
- m_listCtrl.SetItemText(nItem, 3, CString(data.strClassID.c_str()));
- m_listCtrl.SetItemText(nItem, 4, CString(data.strCreateTime.c_str()));
- m_listCtrl.SetItemText(nItem, 5, CString(data.strPickTime.c_str()));
- m_listCtrl.SetItemText(nItem, 6, CString(data.strPlaceTime.c_str()));
- m_listCtrl.SetItemText(nItem, 7, CString(data.strEndTime.c_str()));
- m_listCtrl.SetItemText(nItem, 8, CString(data.strDescription.c_str()));
-}
-*/
// CPageTransferLog 娑堟伅澶勭悊绋嬪簭
BOOL CPageGlassList::OnInitDialog()
@@ -321,6 +299,7 @@
// TODO: 鍦ㄦ娣诲姞棰濆鐨勫垵濮嬪寲
SetTimer(1, 3000, nullptr);
+ SetTimer(2, 2000, nullptr);
// 涓嬫媺妗嗘帶浠�
InitStatusCombo();
@@ -342,7 +321,8 @@
ListView_SetImageList(m_listCtrl.GetSafeHwnd(), imageList, LVSIL_SMALL);
CString headers[] = {
- _T(""),
+ _T(""),
+ _T("id"),
_T("Cassette Sequence No"),
_T("Job Sequence No"),
_T("Class ID"),
@@ -355,24 +335,15 @@
_T("璺緞"),
_T("宸ヨ壓鍙傛暟")
};
- int widths[] = { 0, 80, 80, 100, 120, 120, 120, 120, 200, 200, 200, 200 };
+ int widths[] = { 0, 80, 80, 80, 100, 120, 120, 120, 120, 200, 200, 200, 200 };
for (int i = 0; i < _countof(headers); ++i) {
strItem.Format(_T("Col_%d_Width"), i);
widths[i] = GetPrivateProfileInt("GlassListCtrl", strItem, widths[i], strIniFile);
- m_listCtrl.InsertColumn(i, headers[i], LVCFMT_LEFT, widths[i]);
+ m_listCtrl.InsertColumn(i, headers[i], i == 0 ? LVCFMT_RIGHT : LVCFMT_LEFT, widths[i]);
}
- m_listCtrl.SetColumnWidth(10, LVSCW_AUTOSIZE_USEHEADER);
-
-
- // 璁$畻鎬婚〉鏁�
- /*
- int nTotalRecords = TransferManager::getInstance().getTotalTransferCountAll();
- m_nTotalPages = (nTotalRecords + PAGE_SIZE - 1) / PAGE_SIZE;
- m_nCurPage = 1;
- */
Resize();
- LoadTransfers();
+ OnBnClickedButtonSearch();
return TRUE; // return TRUE unless you set the focus to a control
// 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
@@ -428,6 +399,11 @@
KillTimer(1);
InitRxWindow();
}
+
+ else if (nIDEvent == 2) {
+ UpdateWipData();
+ }
+
CDialogEx::OnTimer(nIDEvent);
}
@@ -440,8 +416,8 @@
m_dateTimeEnd.EnableWindow(nIndex == nCount - 1);
// 鏇存柊鏃ユ湡杩囨护鍣ㄥ拰椤甸潰鏁版嵁
- UpdateDateFilter();
- LoadTransfers();
+ // UpdateDateFilter();
+ // LoadTransfers();
}
void CPageGlassList::OnCbnSelchangeComboStatusFilter()
@@ -456,7 +432,7 @@
pComboBox->GetLBText(nIndex, cstrText);
m_strStatus = CT2A(cstrText);
}
- LoadTransfers();
+ // LoadTransfers();
}
void CPageGlassList::OnBnClickedButtonSearch()
@@ -464,11 +440,47 @@
// 鑾峰彇鍏抽敭瀛楄緭鍏ユ鍐呭
CString strKeyword;
GetDlgItemText(IDC_EDIT_KEYWORD, strKeyword);
- m_strKeyword = CT2A(strKeyword);
+ m_filters.keyword = CT2A(strKeyword);
- // 鏇存柊鏃ユ湡杩囨护鍣ㄥ拰椤甸潰鏁版嵁
- UpdateDateFilter();
- LoadTransfers();
+ CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_DATETIME);
+ int index = pComboBox->GetCurSel();
+ if (index == 0) {
+ // 涓嶉檺
+ m_filters.tStartFrom = std::nullopt;
+ m_filters.tStartTo = std::nullopt;
+ }
+ else if (index == 1) {
+ auto [fromUtc, toUtc] = CToolUnits::CalcQuickRangeUtc(QuickRange::Today);
+ m_filters.tStartFrom = fromUtc;
+ m_filters.tStartTo = toUtc;
+ }
+ else if (index == 2) {
+ auto [fromUtc, toUtc] = CToolUnits::CalcQuickRangeUtc(QuickRange::Last7Days);
+ m_filters.tStartFrom = fromUtc;
+ m_filters.tStartTo = toUtc;
+ }
+ else if (index == 3) {
+ auto [fromUtc, toUtc] = CToolUnits::CalcQuickRangeUtc(QuickRange::ThisMonth);
+ m_filters.tStartFrom = fromUtc;
+ m_filters.tStartTo = toUtc;
+ }
+ else if (index == 4) {
+ auto [fromUtc, toUtc] = CToolUnits::CalcQuickRangeUtc(QuickRange::ThisYear);
+ m_filters.tStartFrom = fromUtc;
+ m_filters.tStartTo = toUtc;
+ }
+ else if(index == 5){
+ // 鑷畾涔�
+ std::chrono::system_clock::time_point tp;
+ if (CToolUnits::GetCtrlDateRangeUtc_StartOfDay(m_dateTimeStart, tp)) m_filters.tStartFrom = tp;
+ if (CToolUnits::GetCtrlDateRangeUtc_EndOfDay(m_dateTimeEnd, tp)) m_filters.tStartTo = tp;
+ }
+
+ auto& db = GlassLogDb::Instance();
+ long long total = db.count(m_filters);
+ m_nTotalPages = (PAGE_SIZE > 0) ? int((total + PAGE_SIZE - 1) / PAGE_SIZE) : 1;
+
+ LoadData();
}
void CPageGlassList::OnBnClickedButtonExport()
@@ -478,90 +490,22 @@
return;
}
- CStdioFile file;
- if (!file.Open(fileDialog.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeText)) {
- AfxMessageBox(_T("鍒涘缓鏂囦欢澶辫触锛�"));
- return;
+ // 瀵煎嚭 CSV锛氬鍑虹鍚� filters 鐨勨�滃叏閮ㄨ褰曗�濓紙涓嶅彈鍒嗛〉闄愬埗锛�
+ // 杩斿洖瀵煎嚭鐨勮鏁帮紙涓嶅惈琛ㄥご锛�
+ // csvPath锛氱洰鏍囨枃浠惰矾寰勶紙UTF-8锛�
+ auto& db = GlassLogDb::Instance();
+ std::string csvPath((LPTSTR)(LPCTSTR)fileDialog.GetPathName());
+ if (db.exportCsv(csvPath, m_filters) > 0) {
+ AfxMessageBox("瀵煎嚭CSV鎴愬姛锛�");
}
-
- CString strHeader = _T("浠诲姟ID,鐘舵��,ClassID,鍒涘缓鏃堕棿,鍙栫墖鏃堕棿,鏀剧墖鏃堕棿,缁撴潫鏃堕棿,鎻忚堪\n");
- file.WriteString(strHeader);
-
- for (int i = 0; i < m_listCtrl.GetItemCount(); ++i) {
- CString row;
- for (int j = 1; j <= 8; ++j) {
- row += m_listCtrl.GetItemText(i, j);
- if (j != 8) {
- row += ",";
- }
- }
- row += "\n";
- file.WriteString(row);
- }
- file.Close();
}
void CPageGlassList::OnBnClickedButtonPrevPage()
{
- SERVO::CGlass g;
- g.setID("GLS-001");
- g.setType(SERVO::MaterialsType::G1);
- g.setOriginPort(1, 5);
- g.setScheduledForProcessing(TRUE);
- g.m_failReason = "none";
- g.markQueued();
- g.markStart();
-
-
- // 娣诲姞鍙傛暟
- CParam p1("鏍℃瀵逛綅寤舵椂", "P001", "ms", 123);
- CParam p2("娓╁害", "P002", "degC", 25.5);
- g.getParams().push_back(p1);
- g.getParams().push_back(p2);
-
- // 璁剧疆 JobDataS
- SERVO::CJobDataS* js = g.getJobDataS();
- js->setCassetteSequenceNo(10);
- js->setJobSequenceNo(20);
- js->setLotId("LOT-ABC");
- js->setGlass1Id("GLS-001");
-
- // 娣诲姞 Path
- g.addPath(100, 1);
- SERVO::CPath* tail = g.getPath()->getTailPath();
- tail->setInTime(111111);
- tail->setOutTime(222222);
- tail->setInspResult(SERVO::InspResult::Pass);
- tail->processEnd();
- return;
- // 2. 杞负 JSON
- std::string jsonText = GlassJson::ToPrettyString(g);
- TRACE("搴忓垪鍖栫粨鏋�:\n%s\n\n", jsonText.c_str());
-
- // 3. 鍙嶅簭鍒楀寲
- SERVO::CGlass g2;
- std::string err;
- if (!GlassJson::FromString(jsonText, g2, &err)) {
- TRACE("瑙f瀽澶辫触: %s\n", err.c_str());
- return;
- }
-
- // 4. 鎵撳嵃楠岃瘉
- TRACE("鍙嶅簭鍒楀寲鍚庣殑ID: %s\n", g2.getID().c_str());
- TRACE("鍙嶅簭鍒楀寲鍚庣殑鍙傛暟鏁伴噺: %d\n", (int)g2.getParams().size());
- if (!g2.getParams().empty()) {
- TRACE("绗竴涓弬鏁板悕: %s 鍊�=%d\n",
- g2.getParams()[0].getName().c_str(),
- g2.getParams()[0].getIntValue());
- }
-
-
-
if (m_nCurPage > 1) {
m_nCurPage--;
UpdatePageData();
- }
-
+ }
}
void CPageGlassList::OnBnClickedButtonNextPage()
@@ -570,4 +514,72 @@
m_nCurPage++;
UpdatePageData();
}
+}
+
+// 鏍稿績锛歐IP 鐨� CGlass 鏄惁鍛戒腑褰撳墠 Filters
+// useEndTime=true 鏃剁敤 tEnd 鍒ゆ椂闂达紙姣斿鈥滃畬鎴愬垪琛ㄢ�濈敤 t_end锛夛紝榛樿鎸� tStart銆�
+bool CPageGlassList::GlassMatchesFilters(const SERVO::CGlass& g,
+ const GlassLogDb::Filters& f,
+ bool useEndTime/* = false*/)
+{
+ // 1) 绮剧‘瀛楁
+ if (f.classId && g.getID() != *f.classId) return false;
+ if (f.cassetteSeqNo && g.getCassetteSequenceNo() != *f.cassetteSeqNo)return false;
+ if (f.jobSeqNo && g.getJobSequenceNo() != *f.jobSeqNo) return false;
+
+ // 2) 鍏抽敭瀛楋紙涓� DB 淇濇寔涓�鑷达細class_id / buddy_id / path / params / pretty锛�
+ if (f.keyword) {
+ const std::string& kw = *f.keyword;
+ if (!(CToolUnits::containsCI(g.getID(), kw)
+ || CToolUnits::containsCI(g.getBuddyId(), kw)
+ || CToolUnits::containsCI(g.getPathDescription(), kw)
+ || CToolUnits::containsCI(g.getParamsDescription(), kw)))
+ return false;
+ }
+
+ // 3) 鏃堕棿锛堜笌 DB 淇濇寔涓�鑷达細榛樿鎸� t_start 杩囨护锛涢渶瑕佸彲鍒囧埌 t_end锛�
+ if (f.tStartFrom || f.tStartTo) {
+ std::optional<std::chrono::system_clock::time_point> tp = useEndTime ? g.tEnd() : g.tStart();
+ // 绾﹀畾锛氳嫢娌℃湁瀵瑰簲鏃堕棿鎴筹紝鍒欒涓轰笉鍛戒腑锛堜笌 DB 鐩稿悓锛歂ULL 涓嶄細鍛戒腑鑼冨洿锛�
+ if (!tp) return false;
+ if (f.tStartFrom && *tp < *f.tStartFrom) return false;
+ if (f.tStartTo && *tp > *f.tStartTo) return false;
+ }
+
+ return true;
+}
+
+void CPageGlassList::InsertWipRow(SERVO::CGlass* pGlass)
+{
+ int index = m_listCtrl.InsertItem(0, "");
+ m_listCtrl.SetItemColor(index, RGB(0, 0, 0), RGB(201, 228, 180));
+ UpdateWipRow(index, pGlass);
+}
+
+void CPageGlassList::UpdateWipRow(unsigned int index, SERVO::CGlass* pGlass)
+{
+ ASSERT(index < m_listCtrl.GetItemCount());
+ m_listCtrl.SetItemData(index, (DWORD_PTR)pGlass);
+ m_listCtrl.SetItemText(index, 2, std::to_string(pGlass->getCassetteSequenceNo()).c_str());
+ m_listCtrl.SetItemText(index, 3, std::to_string(pGlass->getJobSequenceNo()).c_str());
+ m_listCtrl.SetItemText(index, 4, pGlass->getID().c_str());
+ m_listCtrl.SetItemText(index, 5, SERVO::CServoUtilsTool::getMaterialsTypeText(pGlass->getType()).c_str());
+ m_listCtrl.SetItemText(index, 6, SERVO::CServoUtilsTool::getGlassStateText(pGlass->state()).c_str());
+ m_listCtrl.SetItemText(index, 7, CToolUnits::TimePointToLocalString(pGlass->tStart()).c_str());
+ m_listCtrl.SetItemText(index, 8, CToolUnits::TimePointToLocalString(pGlass->tEnd()).c_str());
+ m_listCtrl.SetItemText(index, 9, pGlass->getBuddyId().c_str());
+ m_listCtrl.SetItemText(index, 10, SERVO::CServoUtilsTool::getInspResultText((SERVO::InspResult)pGlass->getAOIInspResult()).c_str());
+ m_listCtrl.SetItemText(index, 11, pGlass->getPathDescription().c_str());
+ m_listCtrl.SetItemText(index, 12, pGlass->getParamsDescription().c_str());
+}
+
+bool CPageGlassList::eraseGlassInVector(SERVO::CGlass* pGlass, std::vector<SERVO::CGlass*>& glasses)
+{
+ auto iter = std::find(glasses.begin(), glasses.end(), pGlass);
+ if (iter != glasses.end()) {
+ glasses.erase(iter);
+ return true;
+ }
+
+ return false;
}
\ No newline at end of file
--
Gitblit v1.9.3