Hallo zusammen,
falls jemand das Thema interessiert, so möchte ich meine Lösung (vom sehr guten DevExpress-Support) hier nicht vorenthalten.
Nochmals die Fakten:
- Master/Detail Relationship- Grid (auf die Detail View lassen sich die Standard Export Funktionen im Moment leider nicht anwenden)
- die Detail-Datensätze sind nicht aufgeklappt (ansonsten könnte auch
Clones verwendet werden)
- es werden ALLE gefilterten Datensätze aus der Detail-View von
einer Column und über ALLE Masterdatensätze benötigt (wenn nur die Detaildatensätze von
einem fokusierten Masterdatensatz benötigt werden, kann FocusedRecordIndex angewendet werden)
Delphi-Quellcode:
var
ADC: TcxCustomDataController;
I, J, AMasterIndex, AIndex: Integer;
sl : TStrings;
begin
sl := TStringList.Create;
tv_AdressStamm.BeginUpdate;
try
with tv_AdressStamm.DataController do
for I := 0 to FilteredRecordCount - 1 do
begin
if I mod 4 = 0 then Application.ProcessMessages;
AMasterIndex := FilteredRecordIndex[I];
ADC := GetDetailDataController(AMasterIndex, 0);
if ADC <> nil then
for J := 0 to ADC.FilteredRecordCount - 1 do
begin
AIndex := ADC.FilteredRecordIndex[J];
if (AnsiPos('@', ADC.Values[AIndex, tv_Kontaktpersonenpers_email.Index]) > 0) and (AnsiPos('.', ADC.Values[AIndex, tv_Kontaktpersonenpers_email.Index]) > 0) then
sl.Add(Trim(ADC.Values[AIndex, tv_Kontaktpersonenpers_email.Index]));
end;
end;
finally
tv_AdressStamm.EndUpdate;
dlgSave.Filter := 'Text-Datei(*.txt)|*.txt';
if dlgSave.Execute then begin
sl.SaveToFile(dlgSave.FileName);
end;
sl.Free;
end;
end;