..ich werd mal folgendes in meine Anwendung einbauen ..
Ich schicke für jede Tabelle
NUR EIN SQL-Statement zum Server.
Somit hab ich auf der Clientseite alle Daten für den Report.
Clientseitig setz ich dann bei den verschiedenen AfterScroll-Ereignissen div. Bookmarks...
Wenn Bookmarks gesetzt werden - druckt der Reportbuilder nur die gebookmarkten Datensätze
Wenn keine Bookmarks gesetzt sind, switche ich die
Query für die Reportpipeline auf eine leere (zQuery2)
Delphi-Quellcode:
procedure TForm1.SpeedButton5Click(Sender: TObject);
var i:integer;
begin
ppDBPipeline1.DataSource:=DataSource1;
zquery1.DisableControls;
i:=0;
ppDBPipeline1.ClearBookmarkList;
zquery1.First;
while not zquery1.Eof
do
begin
if AnsiContainsText(zquery1.FieldByName('
OBJECT_NAME').AsString,edit1.Text)
then // <- somit spar ich mir ein SQL Statement
begin
ppDBPipeline1.SetBookmark;
i:=1;
end;
zquery1.Next;
end;
if i = 0
then
begin
ppDBPipeline1.DataSource:=DataSource2;
// keine Bookmarks wurden gesetzt
end;
ppReport1.Print;
zquery1.EnableControls;
zquery1.First;
end;
.ob das ganze dann wirklich schneller wird - werd ich noch berichten ..
LiGrü
Erich
Erich Wanker - for life:=1971 to lebensende do begin ..