..nehmen wir noch mal die Demostruktur:
Delphi-Quellcode:
Kunde1
Detail 1
Arbeit 1
Arbeit 2
Arbeit 3
Arbeitsbeschreibung 1
Beschreibungsdokument 1
Beschreibungsdokument 2
Detail 2
Arbeit 1
Arbeit 2
Detail 3
Detail 4
Arbeit 1
Arbeitsbeschreibung 1
Kunde 2
wenn die Tabelle "Kunden" selectiert wird, wird anschließend die Tabelle "Detail" gefiltert (wegen afterScroll),
dadurch wird anschließend die Tabelle "Arbeit" gefiltert (wegen afterScroll),
dadurch wird anschließend die Tabelle "Arbeitsbeschreibung" gefiltert (wegen afterScroll),
dadurch wird anschließend die Tabelle "Beschreibungsdokument " gefiltert (wegen afterScroll),
u.s.w.
Wenn nun Arbeit 2 angesprungen wird, fängt die "afterScroll
Sql-Aktion" ja wieder an..
Ich stell mir eher so was vor:
wenn die Tabelle "Kunden" selectiert wird,
wird anschließend jeder Eintrag von "Details" selektiert, der mit dem
Kunden in Verbindung steht.
Anschließend wird jeder Eintrag von "Arbeit" selektiert, der mit dem
Kunden in Verbindung steht.
Anschließend wird jeder Eintrag von "Arbeitsbeschreibung" selektiert, der mit dem
Kunden in Verbindung steht.
Anschließend wird jeder Eintrag von "Beschreibungsdokument " selektiert, der mit dem
Kunden in Verbindung steht.
und im afterScroll so was ähnliches wie:
Delphi-Quellcode:
ppBDEPipeline.ClearBookmarkList;
Tabelle first,
while not Tabelle.EOF do
begin
if Datensatz erfüllt Bedingung then setze Bookmark auf diesen..
Tabelle.next;
end;
Also wird einmal pro Tabelle ein
SQL geschossen und der Client hat die gefilterte Datenmänge mal "vor sich"
via Bookmarks sag ich der Pipeline, welche Daten sie drucken soll..
wie könnte ich das "Bookmark setzen" für die Pipeline realisieren ?
Beispiel zur Frage:
Delphi-Quellcode:
Query1 = Select * from Tabelle
Datasource1 ist Verbunden mit Query1
ppDBPipeline1 ist verbunden mit Datasource1
ppBDEPipeline1.ClearBookmarkList
Schleife durch das
Query
if Query1.fieldbyname('
xy').asstring = '
yepp'
then setze ein Bookmark für die Pipeline
Schleife ende
Erich Wanker - for life:=1971 to lebensende do begin ..