Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Quantumgrid 6.x: Inhalt einer bestimmten, gefilterten Spalte in TStringList.

  Alt 18. Jan 2011, 20:23
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;
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (18. Jan 2011 um 20:25 Uhr)
  Mit Zitat antworten Zitat