コード例 #1
0
void CComputerGrid::UpdateComputerInfoToRow(DWORD_PTR dwData, CComputerInfo& computer)
{	
	computer.SetUpdateState(CComputerInfo::EUS_NORMAL);

	CBCGPGridRow* pRow = FindRowByData(dwData);

	if (pRow != NULL) //已经存在的行
	{
		if (CheckShowCondition(computer))
		{
			UpdateRowData(pRow, computer);
		}
		else
		{
			RemoveRow(pRow->GetRowId()); //移除该行
		}		
	}
	else //添加新行
	{
		if (CheckShowCondition(computer))
		{
			pRow = CreateRow(GetColumnCount());
			pRow->SetData(dwData);
			UpdateRowData(pRow, computer);
			AddRow(pRow, FALSE);
		}
	}
}
コード例 #2
0
// 重新加载现场测道数据
void CSensorListCtrl::OnReloadSiteDataCMD()
{
    // 现场数据对象初始化
    OnSiteDataInit();

    matrix_data::data_base_helper::device_info_map& map = data_base_helper_->get_devices_info();
    matrix_data::data_base_helper::device_info_map::const_iterator itr;
    matrix_data::data_base_helper::device_info di;
    CBCGPGridRow* pRow = NULL;

    data_base_helper_->devices_info_lock();
    for(itr = map.begin(); itr != map.end(); ++itr) {

        pRow = FindRowByData(itr->second.ip_, FALSE);
        // 填充本次数据
        if(pRow != NULL) {
            SetRowData(pRow, itr->second);	// 设置一行的数据
        }
        else {
            pRow = CreateRow(GetColumnCount());
            SetRowData(pRow, itr->second);
            AddRow(pRow, FALSE);
        }
    }
    // 删除没有用到的行
    for(int i = (GetRowCount() - 1); i >= 0; i--) {
        pRow = GetRow(i);
        if(pRow != NULL) {	// 找到行
            di.ip_ = pRow->GetData();
            if(data_base_helper_->find_device(di.ip_, di))	RemoveRow(i, FALSE);
        }
    }
    data_base_helper_->devices_info_unlock();
    AdjustLayout ();
}
コード例 #3
0
void CActiveMemberGrid::RedrawUpdateActiveMembers()
{
	while (TRUE)
	{
		UINT nMemberId = m_lpActiveMemberList->GetUpdateActiveMemberId();

		if (nMemberId > 0)
		{
			CActiveMember ActiveMember;

			if (m_lpActiveMemberList->GetActiveMember(nMemberId, ActiveMember))
			{
				CBCGPGridRow* pRow = FindRowByData(ActiveMember.GetMemberID(), FALSE);

				if (pRow != NULL)//已经存在的
				{
					UpdateRowData(pRow, ActiveMember);
				}
				else //新增加的
				{
					AddNewRow(ActiveMember);
				}
			}
			else
			{
				//已经删除了

				CBCGPGridRow* pRow = FindRowByData(nMemberId, FALSE);
				
				if (pRow != NULL)
				{
					RemoveRow(pRow->GetRowId());
				}
			}
		}
		else
		{
			//更新完毕了
			break;
		}
	}
}
コード例 #4
0
void CComputerGrid::UpdateAllComputersUseTime()
{
	for (INT_PTR i = 0; i < m_lpComputerList->GetCount(); i++)
	{
		CComputerInfo& computer = m_lpComputerList->GetComputer(i);

		CBCGPGridRow* pRow = FindRowByData(i);

		if (pRow != NULL)
		{
			pRow->GetItem(6)->SetValue(computer.GetUseTimeAsString().GetString());
		}
	}
}
コード例 #5
0
// 为新的测试数据刷新显示
void CSensorListCtrl::OnRefreshForNewTestValue(int iTestType)
{
    CBCGPGridRow* pRow = NULL;
    matrix_data::data_base_helper::device_info_map map = data_base_helper_->get_devices_info();
    matrix_data::data_base_helper::device_info_map::const_iterator itr;
    for(itr = map.begin(); itr != map.end(); ++itr) {
        pRow = FindRowByData(itr->second.ip_, FALSE);
        if(pRow != NULL) {	// 找到行
            SetRowDataOfTestByTestType(pRow, itr->second, iTestType);
            // 判断:不是新加检波器的初始测试
            if(iTestType != 45)		SetRowDataOfTestByTestType(pRow, itr->second, 40);
        }
    }
}
コード例 #6
0
void CActiveMemberGrid::UpdateAllComputersUseTime()
{
	CActiveMember ActiveMember;

	CSingleLock lock(&m_lpActiveMemberList->ActiveMemberListLock, TRUE);

	m_lpActiveMemberList->StartEnumActiveMember();

	while (m_lpActiveMemberList->GetEachActiveMember(ActiveMember))
	{
		CBCGPGridRow* pRow = FindRowByData(ActiveMember.GetMemberID());

		if (pRow != NULL)
		{
			pRow->GetItem(7)->SetValue(ActiveMember.GetUseTimeAsString().GetString());
		}
	}
}