Kompliziert ist das sicher nicht.
Delphi-Quellcode:
procedure TDataForm.TableDatumGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
if Lowecase(Sender.DataSet.FieldByName('Wochentag').AsString) = 'unbestimmt'
then Text := ''
else Text := Sender.AsString;
end;
Wenn du jetzt noch verhindern willst, dass der Benutzer Eingaben in Datum macht, dann kannst du die property ReadOnly des Feldes kontrollieren:
Delphi-Quellcode:
procedure TDataForm.DataSourceDataChange(Sender: TObject; Field: TField);
begin
if not Assigned(Field) or (Lowercase(Field.FieldName) = 'wochentag') then
with Field.DataSet.FieldByName('Datum') do
ReadOnly := (Lowercase(Field.FieldName) = 'wochentag')
and (Lowercase(Field.AsString) = 'unbestimmt');
end;
Hoffentlich habe ich nicht zu viele Fehler reingebaut...
Grüße vom marabu