Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Quantumgrid 6.x: Inhalt einer bestimmten, gefilterten Spalte in TStringList. (https://www.delphipraxis.net/157552-quantumgrid-6-x-inhalt-einer-bestimmten-gefilterten-spalte-tstringlist.html)

juergen 16. Jan 2011 11:21

Datenbank: egal • Version: xx • Zugriff über: xx

Quantumgrid 6.x: Inhalt einer bestimmten, gefilterten Spalte in TStringList.
 
Hallo zusammen,
habe mich nun etwas in das QuantumGrid eingearbeitet. Einige von euch kennen diese Komponete von daher frage ich hier mal nach.
Was ich im Moment nicht hinbekomme:
Ich möchte eine bestimmte, gefilterte Spalte aus einer Detail-View von einem Master-Datail Grid auslesen und in eine TStringList bringen.
Auf Grund der Menge von Eigenschaften weiß ich nicht was ich anwenden sollte.

Vielen Dank schon mal vorab für Hilfestellung!

Tyrolean 17. Jan 2011 11:03

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

Zitat von juergen (Beitrag 1075020)
Hallo zusammen,
habe mich nun etwas in das QuantumGrid eingearbeitet. Einige von euch kennen diese Komponete von daher frage ich hier mal nach.
Was ich im Moment nicht hinbekomme:
Ich möchte eine bestimmte, gefilterte Spalte aus einer Detail-View von einem Master-Datail Grid auslesen und in eine TStringList bringen.
Auf Grund der Menge von Eigenschaften weiß ich nicht was ich anwenden sollte.

Vielen Dank schon mal vorab für Hilfestellung!

Ein Ansatz sollte sein:

DetailView.Datacontroller.Values[Row, Column]

Um Row und Col zu bestimmen einfach nach FocusesRocordIndex schauen bzw bei der Col solle es DetailViewColumnx.Index sein.

Gruß
günter

juergen 17. Jan 2011 11:24

AW: Quantumgrid 6.x: Inhalt einer bestimmten, gefilterten Spalte in TStringList.
 
Hallo Günter,
danke für deine Antwort.
Deinen Ansatz hatte ich schon probiert. In der Master-View würde das auch funktionieren.
Das Problem ist wohl, dass es eine Detail-View ist. Diese ist in bestimmten Bereichen (u.a. für alle Export-Funktionen) eingeschränkt.
Als Ansatz habe ich .Clones() gefunden, weiß aber (noch) nicht wie ich es richtig anzuwenden habe.

Gruß
Jürgen

Tyrolean 17. Jan 2011 12:09

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

Zitat von juergen (Beitrag 1075246)
Hallo Günter,
danke für deine Antwort.
Deinen Ansatz hatte ich schon probiert. In der Master-View würde das auch funktionieren.
Das Problem ist wohl, dass es eine Detail-View ist. Diese ist in bestimmten Bereichen (u.a. für alle Export-Funktionen) eingeschränkt.
Als Ansatz habe ich .Clones() gefunden, weiß aber (noch) nicht wie ich es richtig anzuwenden habe.

Gruß
Jürgen

Hallo!

Ich würde dann einfach mal bei DevExpress selbst nachfragen. Der Support ist normal schnell und sehr gut.
Eine schnelle Suche dort hat zB folgendes ergeben:
http://www.devexpress.com/Support/Ce...ailView+values

HTH
Günter

juergen 18. Jan 2011 20:23

AW: Quantumgrid 6.x: Inhalt einer bestimmten, gefilterten Spalte in TStringList.
 
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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz