From e8a27bb203fe2aff70390a5eca002d7438da9b0f Mon Sep 17 00:00:00 2001 From: mrDarker <mr.darker@163.com> Date: 星期三, 22 十月 2025 14:24:34 +0800 Subject: [PATCH] Merge branch 'clh' into liuyang --- SourceCode/Bond/Servo/CPageGlassList.h | 46 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 36 insertions(+), 10 deletions(-) diff --git a/SourceCode/Bond/Servo/CPageGlassList.h b/SourceCode/Bond/Servo/CPageGlassList.h index 5fa77a5..09e548a 100644 --- a/SourceCode/Bond/Servo/CPageGlassList.h +++ b/SourceCode/Bond/Servo/CPageGlassList.h @@ -1,5 +1,10 @@ 锘�#pragma once -#include "ListCtrlEx.h" +#include "CExpandableListCtrl.h" +#include "GlassLogDb.h" + +// ====== 缂栬瘧寮�鍏宠鏄� ====== +// USE_MOCK_SENSOR_DATA: 1=鍚敤妯℃嫙浼犳劅鍣ㄦ暟鎹敓鎴愶紱0=浣跨敤鐪熷疄鏁版嵁 +// 鍦� CPageGlassList.cpp 涓畾涔� // CPageGlassList 瀵硅瘽妗� @@ -18,8 +23,8 @@ IObserver* m_pObserver; // 鎼滅储鍏抽敭瀛� + GlassLogDb::Filters m_filters; std::string m_strStatus; - std::string m_strKeyword; // 椤电爜 int m_nCurPage; @@ -32,22 +37,39 @@ // 鎺т欢 CDateTimeCtrl m_dateTimeStart; CDateTimeCtrl m_dateTimeEnd; - CListCtrlEx m_listCtrl; + CExpandableListCtrl m_listCtrl; private: - void InitRxWindow(); + int m_nColCount = 0; + bool m_rebuilding = false; + +private: + void InitRxWindows(); void Resize(); void InitStatusCombo(); void InitTimeRangeCombo(); void InitDateTimeControls(); - void LoadTransfers(); + void LoadData(); void UpdatePageData(); void UpdatePageControls(); - void UpdateDateFilter(); - /* - void FillDataToListCtrl(const std::vector<TransferData>& vecData); - void InsertTransferData(const TransferData& data); - */ + void InsertWipRow(SERVO::CGlass* pGlass); + static bool GlassMatchesFilters(const SERVO::CGlass& g, + const GlassLogDb::Filters& f, + bool useEndTime = false); + void UpdateWipData(); + bool eraseGlassInVector(SERVO::CGlass* pGlass, std::vector<SERVO::CGlass*>& glasses); + void UpdateWipRow(unsigned int index, SERVO::CGlass* pGlass); + bool WriteAnsiStringAsUtf8ToFile(const CString& ansiContent, const CString& filePath); + void ExportToCsv(const GlassLogDb::Row& row, const CString& filePath); + void ExportToJson(const GlassLogDb::Row& row, const CString& filePath); + void ExportBasicInfo(CString& csvContent, const GlassLogDb::Row& row); + void ExportProcessParams(CString& csvContent, const GlassLogDb::Row& row); + void ExportSensorData(CString& csvContent, const GlassLogDb::Row& row); + static std::vector<std::string> getMachineColumnOrder(int machineId); + static std::string timePointToString(const std::chrono::system_clock::time_point& tp); + static int64_t timePointToMs(const std::chrono::system_clock::time_point& tp); + void GenerateMockSVData(SERVO::CGlass& glass); + double GenerateMockValue(int machineId, const std::string& dataType, int index); // 瀵硅瘽妗嗘暟鎹� #ifdef AFX_DESIGN_TIME @@ -67,5 +89,9 @@ afx_msg void OnBnClickedButtonExport(); afx_msg void OnBnClickedButtonPrevPage(); afx_msg void OnBnClickedButtonNextPage(); + afx_msg void OnShowFullText(NMHDR* pNMHDR, LRESULT* pResult); + virtual BOOL PreTranslateMessage(MSG* pMsg); DECLARE_MESSAGE_MAP() +public: + afx_msg void OnBnClickedButtonExportRow(); }; -- Gitblit v1.9.3