Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Selektierte EInträge aus DBGrid in RaveReport? (https://www.delphipraxis.net/61784-selektierte-eintraege-aus-dbgrid-ravereport.html)

trockentaucher 26. Jan 2006 11:46

Datenbank: ADS • Version: 7.1 • Zugriff über: DataSorce

Selektierte EInträge aus DBGrid in RaveReport?
 
Ich stehe mir mal wieder selbst im Weg...

Ein DBGrid (dgMultiSelect := True) wird mit den Daten aus einer Query gefüllt, die Query wiederum holt sich die Daten aus div. Tabellen. Die selektieren Records zu indentifizieren ist mit DBGrid.DataSource.DataSet.GotoBookmark kein Problem. Auf diese Weise kann ich z.B. die selektierten Einträge aus der Tabelle löschen.

Nun möchte ich aber die selektierten Einträge/Records als Datenmenge an einen RaveReport übergeben, und hier finde ich keinen Ansatz. Den kompl. Inhalt des DBGrid zu übergeben, ist kein Problem, hier kann ich in Rave einfach die jeweilige Query definieren... wie aber mache ich das mit den selektierten Einträgen?!

Habe ich hier eher ein DB-Problem oder eher eines mit Rave?! Sehe ich den Wald vor lauter Bäumen nicht?


mfg,
trocki

Edit: Gibt es eine Methode bzw. einen Weg, bestimmte Records aus einer Query zu löschen? Ich würde das SQL-Statement der original Query an eine Temp.-Query übergeben und die Daten aus der Tabelle zunächst gem. dem Statement einlesen. Anschliessend die "nicht selektierten" Einträge aus der Temp.-Query löschen und an Rave übergeben...

Ferber 26. Jan 2006 21:23

Re: Selektierte EInträge aus DBGrid in RaveReport?
 
Hi !

Zitat:

Zitat von trockentaucher
Ein DBGrid (dgMultiSelect := True) wird mit den Daten aus einer Query gefüllt, die Query wiederum holt sich die Daten aus div. Tabellen. Die selektieren Records zu indentifizieren ist mit DBGrid.DataSource.DataSet.GotoBookmark kein Problem. Auf diese Weise kann ich z.B. die selektierten Einträge aus der Tabelle löschen.

Wenn du die selektierten Einträge aus der Tabelle löschen kannst, könntest du diese doch auch in eine temporäre Tabelle scheiben,
und diese Tabelle Rave 'zum Fraß vorwerfen'. ? :?

trockentaucher 27. Jan 2006 12:03

Re: Selektierte EInträge aus DBGrid in RaveReport?
 
Zitat:

Zitat von Ferber
Hi !
Wenn du die selektierten Einträge aus der Tabelle löschen kannst, könntest du diese doch auch in eine temporäre Tabelle scheiben,
und diese Tabelle Rave 'zum Fraß vorwerfen'. ? :?

Hi, das wäre mein Worst Case Sceanario... möchte aber diesen Aufwand, wenn möglich, vermeiden. De facto habe ich 4 Teilbereiche in meiner Anwendung, bei denen ich diese procedure einbauen müßte. Wären 4 Tabellen mehr, die immer wieder mal geleert und gefüllt werden müßten ect... Ist möglich, aber aufwendig. Eine virtuelle Datenmenge wie ein Query wäre da Pflegeleichter :?

Edit: Die eindeutige Identifizierung der Records ist möglich, da ich ein Unique AutoInc in den Tabellen habe. Kann ich diese in dem SQL-Statement mit einbauen?! So etwas wie "IF RecordNumber = XY Then..." ?! Könnte so wie ein Filter eingesetzt werden...

Ferber 27. Jan 2006 12:14

Re: Selektierte EInträge aus DBGrid in RaveReport?
 
Eine Variante wäre ein DB-Feld Namens zb. 'Selected'.
Klickt der Anwender auf eine Zelle oder Zeile im Grid wird 'Selected' auf True gesetzt.
Dann alle Selektierten an Rave, oder sonstwohin, anschliessend alle Selektierten löschen.
Berücksichtigen muss/kann man, ob der Anwender die Bearbeitung im Grid abbricht, soll 'selected' erhalten bleiben ?
Hat sich bei mir bewährt (Anwender wählt Rechnungen aus, die zu Überweisen sind).

Edit: Das mit der ID erschein mir dafür weniger geeignet.

trockentaucher 27. Jan 2006 13:02

Re: Selektierte EInträge aus DBGrid in RaveReport?
 
Zitat:

Zitat von Ferber
Eine Variante wäre ein DB-Feld Namens zb. 'Selected'.

Yepp, scheint mir im moment die einzig praktikable Lösung zu sein. Sobald die Daten an Rave zu übergeben sind (Druckjob gestartet) setze ich Selected/True und generiere eine Temp.Query die an Rave übergeben wird... Bei relativ kleinen Datenmengen noch zu handlen...

Danke für die Unterstützung!

merlin17 5. Feb 2006 20:17

Re: Selektierte EInträge aus DBGrid in RaveReport?
 
hallo,
ich würde in diesem Fall über "OnValidateRow" für TRvDatasetconnection gehen...
ist einfacher und schneller als der Umweg über eine tempQuery;
(es wird jedoch die gesamte Dataset-Result durchlaufen...)


:-) thomas, TeamNevrona


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:11 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