getFieldDataNative method

  1. @override
bool getFieldDataNative(
  1. TField field,
  2. TValueBuffer? buffer
)
override

Implementation

@override
bool getFieldDataNative(TField field, TValueBuffer? buffer) {
  final TRecordBuffer? rec;
  switch (state) {
    case TDataSetState.dsCalcFields:
      rec = calcBuffer;
      break;
    case TDataSetState.dsOldValue:
      rec = _oldValueBuffer ?? activeBuffer();
      break;
    default:
      rec = activeBuffer();
  }
  if (rec == null) return false;
  final key = field.fieldName.toUpperCase();
  final dynamic v;
  if (field.fieldKind == TFieldKind.fkCalculated ||
      field.fieldKind == TFieldKind.fkLookup) {
    if (!rec.calcData.containsKey(key)) return false;
    v = rec.calcData[key];
  } else {
    if (!rec.fieldData.containsKey(key)) return false;
    v = rec.fieldData[key];
  }
  if (v == null) return false;
  if (buffer != null) buffer.value = v;
  return true;
}