RecordFrame* RecordIterator::GetNext() {
  current = FindNextRecord(current);
  ASSERT_TRUE(ISALIGNED(current, RECORD_FRAME_ALIGNMENT));
  if (current != (RecordFrame*)RegionEnd()) {
    return current;
  } else {
    return NULL;
  }
}
Exemple #2
0
float CHZDLReport::CalcAverage(string monitorID, string fieldName)
{
	LISTITEM item;
	RECORD hRec;
	float Ret = 0.0;
	float countval = 0.0;
	int nCount = 0;
	int nState = 0;  //记录状态
	float recValue = 0.0;

	int iv = 0;
	string sv;

	RECORDSET hRecSet = QueryRecords(monitorID, m_starttime, m_endtime);
	FindRecordFirst(hRecSet, item);
	while( (hRec = FindNextRecord(item)) != INVALID_VALUE)
	{
		int nTmpType = 2;
		GetRecordValueByField(hRec, fieldName, nTmpType, nState, iv, recValue, sv);
		switch(nState)
		{
		case STATUS_OK:
		case STATUS_WARNING:
		case STATUS_ERROR:
			countval += recValue;
			nCount++;
		    break;
		case STATUS_DISABLE:
		case STATUS_BAD:
		case STATUS_NULL:
		    break;
		default:
		    break;
		}
	}
	if (nCount != 0) Ret = countval / nCount;

	return Ret;
}