Hallo,
um lästige Tipparbeit zu sparen kann der Nutzer in einem Grid mehrere Einträge markieren und einen Wert aus einer ComboBox auswählen - dieser wird dann in alle markierten Sätze eingetragen.
Beim Wechseln zum nächsten Datensatz wird die Procedure "BeforePost" durchlaufen. Dort werden einige Plausibilitätsprüfungen durchgeführt. Hat der Nutzer jetzt einen Wert ausgewählt der gegen die Plausibilität "verstößt" - so erhält er für jeden markierten Satz im Grid eine Fehlermeldung.
Delphi-Quellcode:
with grid do
begin
grid.DataSource.DataSet.DisableControls;
for i := 0 to SelectedList.Count - 1 do
begin
grid.DataSource.DataSet.GotoBookmark(SelectedList.items[i]);
if grid.DataSource.DataSet.State in [dsBrowse] then
grid.DataSource.DataSet.Edit;
grid.DataSource.DataSet.FieldByName('Status').AsString := wert;
end;
grid.DataSource.DataSet.EnableControls;
end;
procedure TFrm_Patient_STP.SQL_LeistungBeforePost(DataSet : TDataSet);
if SQL_LeistungLJAHR.AsInteger >= 2006 then
begin
if not station_ueberpruefen(....) then
begin
Abort;
Exit;
end;
if (not fallnummer_ueberpruefen(SQL_Leistung) then
begin
Abort;
Exit;
end;
end;
usw.....
end;
Meine Frage : Gibt es einen "eleganten" Weg, um auf die Meldungen von BeforePost reagieren zu können. Ich würde gerne nach der ersten Fehlermeldung das Abarbeiten des Grid stoppen. Oder muß ich mir mit einer Variablen (Boolean) helfen?
Danke und viele Grüße
Ines