RecordFrame* RecordIterator::GetNext() { current = FindNextRecord(current); ASSERT_TRUE(ISALIGNED(current, RECORD_FRAME_ALIGNMENT)); if (current != (RecordFrame*)RegionEnd()) { return current; } else { return NULL; } }
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; }