Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Rave-Report "dynamisch" gestalten (https://www.delphipraxis.net/85092-rave-report-dynamisch-gestalten.html)

Kerberos 25. Jan 2007 20:51

Datenbank: DBase • Zugriff über: BDE

Rave-Report "dynamisch" gestalten
 
Hallo zusammen,

sitze hier echt an nem haarigen Problem, und weiß nicht mehr weiter.

Folgendes Problem:

Ich möchte einen Report nach ungefähr folgendem Muster erstellen:

-----------------------
HEADER
-----------------------
Data1 Data2 Data3
-----------------------
Bild1 Bild2 Bild3
Data4 Data5
Data6 Data7
usw.

Nun würde ich gerne (für den Fall das Data5 leer ist / keine Daten enthält) Data6 an dessen Stelle treten lassen (und Data7->Data6 usw).

Habe mich nun eine Weile mit den Rave-Reports befasst. Bisher habe ich mir eine "Zwischendatei" erstellt (mittels Stringlist) und den Report per code erstellt (inkl. ausrechnen der Abstände, Zeilenumbruch, etc.)

Da nun aber die Anzahl der zu erstellenden Berichte explodiert ist, suche ich nach ner einfacheren Möglichkeit. Es muss da doch was geben, um direkt die Daten aus der DB zu holen (ohne Zwischendatei)?!?!?!!! :gruebel:

Insgesamt handelt es sich um etwa 28 Bereiche (hier vereinfacht als Data dargestellt) die der User in einem vorgeschaltetem Dialog an/abwählen kann. Diese müssten jeweils sinnvoll "aufrücken", wenn ne Lücke entstanden ist.

PS: Ist DataMirror sinnvoll? So wie ich es verstanden habe, müsste ich da aber für jeden möglichen Fall ne eigene Seite erstellen? Bitte korrigiert mich, wenn ich falsch liege...

So, nun hoffe ich auf baldige Hilfe

Danke schonmal
Kerberos

mkinzler 25. Jan 2007 20:54

Re: Rave-Report "dynamisch" gestalten
 
Du könntest das Problem versuchen im SQL-Statement zu Lösen.

Jennes 25. Jan 2007 21:17

Re: Rave-Report "dynamisch" gestalten
 
Rave hatte doch eine eigene Scriptsprache. Geht damit was?

Kerberos 25. Jan 2007 21:21

Re: Rave-Report "dynamisch" gestalten
 
Zitat:

Zitat von mkinzler
Du könntest das Problem versuchen im SQL-Statement zu Lösen.

wenn du meinst, das ich im sql-statement einfach die leeren Felder rausfiltern soll, dann ist es genau das, was ich mache... aber wie stelle ich dann die andere Verbindung her? Bsp: Feld3 gebunden an DB-Feld3... wenn DB-Feld3 aber leer ist, wie sag ich dem Report, das Feld3 an nächstes, nicht leeres DB-Feld gebunden werden soll?

Oder denk ich da jetzt falsch? :gruebel:

mkinzler 25. Jan 2007 21:24

Re: Rave-Report "dynamisch" gestalten
 
Ich würde die Felder der Ergebnismenge von denen der Tabelle Trennen. D.H. feld1 der Ergebnismenge ist das erste belegte Feld der Tabelle, Feld2 das 2. usw.

Kerberos 25. Jan 2007 21:34

Re: Rave-Report "dynamisch" gestalten
 
aber wie weise ich denn die felder der ergebnismenge zur laufzeit den feldern des berichtes hinzu? und was passiert, wenn mal ein bild fehlt? wie kann ich dann die felder "aufrücken" lassen? ich muss doch im designer die position der felder festlegen... steh da irgendwie gerade auf dem schlau...

mkinzler 25. Jan 2007 21:40

Re: Rave-Report "dynamisch" gestalten
 
SQL-Code:
select iif( data1 not is null, data1, iif( data2 is not null, data2)) as feld1 ...
Im Report dann mit temp. Feldern (feld<x>) verbinden und diese in Abhängigkeit von Wert anzeigen ( so das die überflüssigen Felder am Schluß ausgeblendet werden).

Kerberos 25. Jan 2007 21:50

Re: Rave-Report "dynamisch" gestalten
 
wie das select aussehen muss, war schon klar... trotzdem danke...

mir geht es jedoch mehr um die verbindug mit den feldern. kannst du mir da auch weiterhelfen? habe das bisher halt alles mit textout usw. realisiert... wie krieg ich des mit den temp feldern hin?

mkinzler 25. Jan 2007 21:52

Re: Rave-Report "dynamisch" gestalten
 
Verknüpfe die Controls mit Feld1, feld2, .. anstatt mit data1, data2, ...

Kerberos 25. Jan 2007 21:56

Re: Rave-Report "dynamisch" gestalten
 
kannste mir dazu mal nen beispiel geben? nur wenn du zeit/lust hast natürlich. aber irgendwie steig ich da echt net so durch... mir fehlt der entscheidende "aha-effekt"

Kerberos 26. Jan 2007 12:45

Re: Rave-Report "dynamisch" gestalten
 
natürlich sind auch alle anderen herzlich eingeladen, mir zu helfen :lol:

habs nochmal versucht, aber komme irgendwie net weiter..

danke schonmal
kerberos

mkinzler 26. Jan 2007 12:53

Re: Rave-Report "dynamisch" gestalten
 
http://www.nevrona.com/files/ravedevguide5.pdf

Kerberos 26. Jan 2007 14:37

Re: Rave-Report "dynamisch" gestalten
 
danke für den link...

aber das buch hab ich schon. wie schon gesagt, hab ich mich mit den rave-reports ja auch schon beschäftigt und die "grafische" ausgabe (also ein komplett code-generierter Bericht) hab ich ja auch schon hinbekommen. Die meisten Grundlagen kenne ich ja auch schon (jedenfalls bilde ich mir das ein :???: ) Wie ich ne Dataconnection zu ner Datenbank herstelle und diese Daten dann im Report anzeige (Master/Detail etc) weiss ich ja auch. Aber hier handelt es sich meiner Meinung nach um ein ganz anderes Problem (wie schon gesagt, korrigiere mich, wenn ich falsch liege). Es geht nicht darum, die Felder im Report auszublenden (das ist ja imho über ne einfach Abfrage im Event möglich)

ich habe vielmehr Probleme mit den Feldzuordnungen. Statische Felder sind überhaupt kein Problem (also z.b ne Tabelle mit Rechnungen oder ähnlichem)

hier geht es jedoch darum, diese Felder dynamisch zu verteilen a la "wenn vorheriges Feld leer und du passt da rein, dann rücke an dessen Stelle".

Wie schon gesagt: Vielleicht denke ich da auch zu kompliziert. So wie ich das verstanden habe, werden Felder an der Position im Report gedruckt, an die ich sie im Entwurf ziehe (und es werden die Daten angezeigt, mit denen ich das Feld verbunden habe)

Mein Problem ist ja aber, das ich zur Entwurfszeit noch nicht weiss, welche Felder überhaupt angezeigt werden sollen (geschweige denn, welchen Inhalt sie haben werden (ob Text oder Zahl oder sogar Bild) ). Klar könnte ich ein Design festlegen (mit der maximalen Anzahl der möglichen Felder). Dann hätte ich aber an den Stellen, wo der Kunde vorher das Feld abgewählt hat, leere Flächen im Report. Und genau das will ich nicht.

Und bei der Frage nach nem Beispiel ging es mir nicht um fertigen Code. Im Gegenteil, schliesslich will ich ja lernen. Ein Denkansatz bzw. wonach ich in den diversen Dokumentationen :gruebel: zu Rave suchen muss würde mir völlig reichen.

Irgendwie muss des doch klappen :wall:

Kerberos 27. Jan 2007 10:31

Re: Rave-Report "dynamisch" gestalten
 
*push*

merlin17 29. Jan 2007 13:10

Re: Rave-Report "dynamisch" gestalten
 
Zitat:

*push*
*tilt* :shock:

nein, spaß beiseite....
ich würde in so einem Falle über die CustomConnection gehen, damit hast Du alle Eventualitäten im Griff
und die größtmögliche Flexibilität....


:-) thomas, TeamNevrona


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