![]() |
Datenbank: Acc2000 • Version: 2k • Zugriff über: ADO
Abfrageergebnis zwischenspeichern
Hallo,
ich suche eine Möglichkeit das Ergebnis einer Abfrage "zwischenzuspeichern" um es dann weiterverarbeiten zu können. Das heißt, ich möchte es dann als Datengrundlage für eine Reportkomoponente verwenden. Bin für alle Stichworte, Anregungen oder Hinweise dankbar! Dirk |
Re: Abfrageergebnis zwischenspeichern
Um was für ein Ergebnis handelt es sich.
Was meinst Du mit Zwischespeichern, im Memory festhalten oder auf die Platte schreiben? Grüße Klaus |
Re: Abfrageergebnis zwischenspeichern
Hallo,
Zitat:
Da durch die Kreuzabfrage zur Entwurfszeit die Anzahl und Namen der Felder noch nicht bekannt sind, kann ich in dem Report auch vorher die zu füllenden Felder nicht benennen. Ich hoffte nun, dass ich durch das Zwischenspeichern an die Feldnamen herankommen, den Report entsprechend gestalten und dann den Report aufrufen könnte. Die Reportkomponente benötigt als Datenbasis ein Dataset. Wie kann ich dieses Dataset mit den "zwischengespeicherten" Werten "füllen"? Dirk |
Re: Abfrageergebnis zwischenspeichern
Hallo,
eine Query ist auch ein DataSet, also könntest du deine Query als Ausgangspunkt für den Report nehmen. Dein Problem "Felder nicht bekannt", wie willst du dann einen Report designen ? Heiko |
Re: Abfrageergebnis zwischenspeichern
Zitat:
Da ich aber weiß mit welchen Feldern zu rechnen ist, wollte ich die Feldliste, welche von der CQry zurückgegeben wird, einlesen, die Felder zu den im Report definierten umbenennen und dann ein neues DataSet füllen und dem Report zur Verfügung stellen. Der Report ist ein Export nach Excel. Für den Export wird ein Excel-Template eingelesen und in diesem befindet sich die Definition der zu erwartenden Felder/Feldnamen. Die Exceldatei jedesmal neu generieren, also ohne Template, würde die durch diese Templatefunktion gewonnene Flexibilität eben gerade zunichte machen. Die Daten werden in den ExcelSheets weiterverbreitet und die Reports werden mit Conditional Formats entsprechend gestaltet. Mit normalen Qry's funktioniert das schon perfekt - allerdings sind dort zur Laufzeit die Feldnamen und deren Anzahl schon bekannt. Die CrossQry liefert als Ergebnis eine Datenmenge für jeden Tag eines Monats. Da die Monate eine unterschiedliche Anzahl von Tagen haben (Schaltjahr/Februar) ist die Anzahl der Spalten unterschiedlich. Ich habe die Feldnamen ausgelesen und wollte sie jetzt umbenennen, allerdings weiß ich noch nicht wie ich den Schreibschutz des aktivierten DataSets umgehen kann bzw. die Datenmenge für das andere Dataset zusammenstellen kann. Ich hatte in der Hilfe etwas gefunden, wie man ein DataSet in ein anderes kopieren kann. Ich dachte nun bei diesem Kopiervorgang kann man die Felder entsprechend umbenennen. Bin also noch am knobeln... Dirk |
Re: Abfrageergebnis zwischenspeichern
Hallo,
vielleicht hilft ja das TClientDataSet. Heiko |
Re: Abfrageergebnis zwischenspeichern
Zitat:
Ich verstehe noch nicht wie ich damit auf eine ADOQry zugreifen kann. Muß also noch weiter lesen... Dirk |
Re: Abfrageergebnis zwischenspeichern
Hallo,
damit kannst du eine Tabelle im Speicher erzeugen, die füllst du dann aus deiner Query mit Werten und benutzt das ClientDataSet als Grundlage des Reports. Heiko PS: Ich kenne das Ding auch nur, benutzt habe ich es noch nicht. |
Re: Abfrageergebnis zwischenspeichern
Vielleicht kann ich es später verwenden.
Ich habe mit einer anderen Lösung Erfolg gehabt. In dem Template habe ich die Feldnamen mit Hochkomma angegeben. Habe keine Ahnung wieso das jetzt funktioniert - aber es funktioniert. Möglicherweise ein Typumwandlungsproblem in der Exl-Report Komponente. Danke für Deine Hinweise! Dirk |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz