getFieldDataNative method
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;
}