Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ListView in Rave-Reports abbilden (https://www.delphipraxis.net/22098-listview-rave-reports-abbilden.html)

CalganX 12. Mai 2004 11:36


ListView in Rave-Reports abbilden
 
Hi,
ich schreibe ja derzeit an einem Fahrtenbuch. Allerdings würde ich gerne die ganze Liste auch ausdrucken lassen. ;)

Darum habe ich mich mal ein wenig mit Rave-Reports beschäftigt. Jetzt frage ich mich, wie ich am sinnvollsten eine Tabelle erstellen kann. :gruebel:
Hat jemand da einen Vorschlag?

Chris

MrSpock 12. Mai 2004 12:25

Re: ListView in Rave-Reports abbilden
 
Hallo Chak,

liegen die Daten in einer Tabelle (einer Datenbank) vor?

CalganX 12. Mai 2004 14:54

Re: ListView in Rave-Reports abbilden
 
Hi,
nein. Im XML-Format.
Zu einer direkten Datenbank-Anbindung habe ich bereits Lösungen gefunden (nicht zu übersehen). Irgendwo im BDN wurde auch mal über eine Möglichkeit mit Hilfe dieser Komponenten eine Art Datenbank über XML zu realisieren. Leider habe ich den Link nicht mehr und als ich ihn noch hatte meine ich mich daran zu erinnern, dass es nicht funktioniert hat. :?

Chris

kiar 12. Mai 2004 15:03

Re: ListView in Rave-Reports abbilden
 
hallo chak,

wenn du TClienDataset nimmst, hast due eine datenbank, die auch xml kann, vielleicht kannst du damit deine liste ausdrucken.

raik

CalganX 12. Mai 2004 15:04

Re: ListView in Rave-Reports abbilden
 
Hi,
danke. Ich werde es auf jedenfall mal ausprobieren.

Chris

CalganX 12. Mai 2004 15:37

Re: ListView in Rave-Reports abbilden
 
Hi,
ich denke mal, dass du von der Komponente TClientDataset aus dem Register Datenbank meinst. ;) Allerdings sehe ich erstens da keinen Zusammenhang zu XML und zum zweiten finde ich keine Idee, wie man damit auf Rave-Reports zugreifen kann. :gruebel:

Ich dachte eigentlich, dass es eine Möglichkeit gibt unter dem Rave-Report-Builder eine Art Tabelle zu erstellen. Sozusagen eine ListView. Eine andere (sehr unschöne) Möglichkeit wäre dann ein einfaches Textfeld, in das ich immer - mit Tabs separierte - Werte eintrage. Allerdings finde ich das als durchaus doofe Möglichkeit.
Deswegen meine Frage. ;)

Chris

kiar 12. Mai 2004 16:26

Re: ListView in Rave-Reports abbilden
 
hallo chak,

vielleicht habe ich dich falsch verstanden, dann muss iht mal noch das tut durchlesen, ob man damit auf rave zugreigen kann.

habe es bloss überflogen, kann aber keinen grund sehen, warum es nicht gehen soll, steht aber auch nicht expliziet drin, das es geht, musst du einfach probieren.

raik

Helmi 26. Mai 2007 21:57

Re: ListView in Rave-Reports abbilden
 
Hallo,

ich muss diesen Thread nochmal aufwärmen.

Ich steh vor dem gleichen Problem, ich möchte den Inhalt einer ListView in einem Rave-Report darstellen.
Ich muss aber direkt auf die Daten der ListView zugreifen und Diese in den Rave laden.

Weiss jemand wie das geht?

Helmi 27. Mai 2007 18:00

Re: ListView in Rave-Reports abbilden
 
Ich möchte ja nicht unverschämt erscheinen, aber ich erlaube mir diesen Beitrag nach oben zu bewegen :-D

Keldorn 27. Mai 2007 18:28

Re: ListView in Rave-Reports abbilden
 
Hallo

wie sieht dein Listview aus? Solange Du die Spaltenanzahl fest hast (oder die auf eine gewisse maximale Anzahl begrenzen kannst), hast du mit einer Customconnection kein Problem mit der reinen Datenübertragung.

Mfg Frank

Helmi 27. Mai 2007 18:31

Re: ListView in Rave-Reports abbilden
 
Hallo,

die Spaltenanzahl ist fest.
Das Einzigste was sich ändert ist die Anzahl der Zeilen.

Meine Frage ist: Wie kann ich mit einem CustomConnection die ListView in einen Rave-Report übertragen?
Dies sollte natürlich im Report auch als Art Tabelle dargestellt werden.

Keldorn 27. Mai 2007 18:37

Re: ListView in Rave-Reports abbilden
 
dann ist es einfach. mit der Zeilenanzahl hast du keine Probleme.
gugg mal hier im Forum zu Hier im Forum suchencustomconnection, da solltest du genug Beispiele finden. Eigenes Bsp für eine Listview habe ich erstmal keins. Du brauchst die 3 Ereignisse der Customconnection in Delphi: onopen (für die Anzahl der Datensätze=Listview Zeilen), ongetcol für die Feldbezeichner und ongetrow für die Daten der jeweiligen Zeile.

Mfg Frank

Helmi 27. Mai 2007 18:41

Re: ListView in Rave-Reports abbilden
 
Ich bin aber auf der Suche nach dem Code, da ich momentan noch probleme habe zu verstehen wie man CustomConnection richtiga anwendet. Ich rätsel auch noch, welche Componente man in Rave verwendet.

Leider ist die Hilfe zu Rave etwas dürftig

Keldorn 27. Mai 2007 18:45

Re: ListView in Rave-Reports abbilden
 
woran scheiterst du genau?
was Du in die 3 Ereignisse schreiben mußt, dafür gibts Beispiele hier. Für das reine Anwenden: gugg mal hier:
http://www.delphipraxis.net/internal...stomconnection

wenn dir das immer noch nicht hilft, kann ich dir auch ein Bsp schreiben.

Helmi 27. Mai 2007 19:57

Re: ListView in Rave-Reports abbilden
 
Ein Beispiel wär nicht schlecht - nicht nur für mich - sondern auch für andere die in dieser missligen lage sind :-)

Was mich auch interessieren würde ist, welche Komponente man in Rave zur Visiualisierung verwendet?

Keldorn 27. Mai 2007 20:10

Re: ListView in Rave-Reports abbilden
 
ich häng dann eins dran.

In delphi brauchst du eine RVProject, praktischerweise auch ein RVsystem und dan fürs übertragen die RVcustomconnection.
in rave, eine region, databänder und die datatext-Kompos.

RWarnecke 27. Mai 2007 20:33

Re: ListView in Rave-Reports abbilden
 
Warum druckst Du die ListView nicht direkt auf dem Drucker aus. Ich habe gestern den Beitrag für die Code-Library vorgeschlagen. Dort zeigt toms, wie der Inhalt einer ListView samt Inhalt als Tabelle ausgedruckt wird.

Helmi 27. Mai 2007 20:37

Re: ListView in Rave-Reports abbilden
 
Zitat:

Zitat von RWarnecke
Warum druckst Du die ListView nicht direkt auf dem Drucker aus. Ich habe gestern den Beitrag für die Code-Library vorgeschlagen. Dort zeigt toms, wie der Inhalt einer ListView samt Inhalt als Tabelle ausgedruckt wird.

Ist nett gemeint, aber
1. hat es nichts mit dem Thema zu tun und
2. besteht bei einem Report auch die Möglichkeit dies als PDF, HTML oder andere auszugeben.

RWarnecke 27. Mai 2007 20:39

Re: ListView in Rave-Reports abbilden
 
Das ganze war ja auch nur als Anregung gedacht, wie Du die ListView in Deinen Reort bekommst. Sorry, wenn ich micht etwas dumm ausgedrückt habe.

Keldorn 27. Mai 2007 20:59

Re: ListView in Rave-Reports abbilden
 
Liste der Anhänge anzeigen (Anzahl: 1)
so, hier mal ein kleines simples Bsp-Project für den groben Überblick (exe ist auch dabei). Es werden nur die daten übertragen nix anderes. Alle subitems müssen gefüllt sein, sonst siehst du eine AV.
Wenn du mit customconnections arbeitest beachte 2 Dinge:
- dein Delphi-Prog muß beim ersten designen in rave laufen, damit du die Feldnamen der customconnection bekommst.
- Dem databand nicht vergessen, das dataview zuzuweisen

Du könntest noch mit einer 2. customconnection oder params die captions der columns übertragen. Aber so oder so, allgemein für x-beliebige Listviews/grids wird eh schwer, schon mit der Spaltenbreite wird’s schwer. Du wirst letztendlich den code/Report für das spezielle LV anpassen. Du könntest zwar die Daten auch direkt in den Report schreiben, verlierst so aber andere Möglichkeiten des Designers,( wie z.B. sections), wenn dein Report(e) nicht nur aus diesem LV bestehen.

Ich persönlich würde mir noch überlegen, nicht die LV, sondern die eigentlichen Daten zu übertragen (irgendwo müssen die ja herkommen). Wenn du dir eine eigene Klasse erstellst, wo die Daten gehalten werden und innerhalb der Klasse die 3 Ereignisse ansprichst, kommst du evtl besser. Grad wenn Du mit Datumswerten oder später mal in Rave rechnen willst, nützt dir eine String-übergabe wie jetzt nicht wirklich viel.

hier ist aber ein grad ein kräftiges Gewitter und bevor der Saft wieder weg ist, mach ich die kiste mal lieber aus ;-).

Helmi 27. Mai 2007 21:05

Re: ListView in Rave-Reports abbilden
 
Danke für das Beispiel
Das hat mir schon viel gebracht!

Wenn das Gewitter verzogen ist, dann kannst du mir noch verraten wie man so Art Gitternetzlinien einbauen kann :-)

[Edit]
Das mit den Gitternetzlinien hat sich erledigt!
Man braucht ja nur eine horizontale Linie und ein paar vertikale Linien in das DataBand legen.

Nebenbei bemerkt ist in deinem Beispiel-Programm ein Fehler. Du nimmst an, dass die ListView-Liste beim Index 1 beginnt, richtig ist aber Index 0.

Keldorn 28. Mai 2007 07:54

Re: ListView in Rave-Reports abbilden
 
Zitat:

Zitat von Helmi
Nebenbei bemerkt ist in deinem Beispiel-Programm ein Fehler. Du nimmst an, dass die ListView-Liste beim Index 1 beginnt, richtig ist aber Index 0.

stimmt, kleiner Flüchtigkeisfehler :oops:

was ich noch vergessen habe: ich habe habe darauf verzichtet, im rvproject storerav zu verwenden, damit du keine Probleme beim Öffnen hast.

Mfg Frank

Helmi 28. Mai 2007 09:36

Re: ListView in Rave-Reports abbilden
 
Zitat:

Zitat von Keldorn
was ich noch vergessen habe: ich habe habe darauf verzichtet, im rvproject storerav zu verwenden, damit du keine Probleme beim Öffnen hast.

Was macht den storerav?

Was mich noch interessieren würde:
Was bedeutet bei
Delphi-Quellcode:
WriteField('FieldName', dtString, 15, '', '');
die "15"?
Worauf beziehen sich die?

Keldorn 28. Mai 2007 12:01

Re: ListView in Rave-Reports abbilden
 
Zitat:

Zitat von Helmi
Was macht den storerav?

damit wird die Raveprojekt-Datei mit in deine Exe gepackt und du brauchst die rav-Datei nicht mit deinem Projekt weiterzugeben.

Zitat:

Was mich noch interessieren würde:
Was bedeutet bei
Delphi-Quellcode:
WriteField('FieldName', dtString, 15, '', '');
die "15"?
Worauf beziehen sich die?
Länge des Feldes. Wenn du ein Feld aus dem Dataview mit gedrückter Strg-Taste ins Databand ziehst, wird gleich eine Datatext-Kompo im Databand erstellt. Das hat dann gleich die Breite für 15 Zeichen.

Mfg Frank

Helmi 28. Mai 2007 12:10

Re: ListView in Rave-Reports abbilden
 
Zitat:

Zitat von Keldorn
Zitat:

Was mich noch interessieren würde:
Was bedeutet bei
Delphi-Quellcode:
WriteField('FieldName', dtString, 15, '', '');
die "15"?
Worauf beziehen sich die?
Länge des Feldes. Wenn du ein Feld aus dem Dataview mit gedrückter Strg-Taste ins Databand ziehst, wird gleich eine Datatext-Kompo im Databand erstellt. Das hat dann gleich die Breite für 15 Zeichen.

Das versteh ich jetzt nicht!

Ich hab testweise mal ein Field deklariert das so ausschaut:
Delphi-Quellcode:
WriteField('Row', dtString, 1, '', '');
Nach deiner Erklärung dürfte es nur 1 Zeichen zulassen. Wenn also z. B. der String "123" übergeben wird, müsste im DataText nur die "1" zu sehen sein. Ich seh aber "12".

Irgendwas stimmt da doch ned oder?

Keldorn 28. Mai 2007 14:47

Re: ListView in Rave-Reports abbilden
 
ich habs nicht probiert, der Wert wird sicher aber immer nährungsweise sein, wenn du mit proportionalen Fonts agierst.
"W" ist z.B. bei Arial fast so breit wie "12" zusammen, da wirds natürlich auch mit einer Berechnung schwierig ;-)

Helmi 29. Mai 2007 11:12

Re: ListView in Rave-Reports abbilden
 
Zitat:

Zitat von Keldorn
ich habs nicht probiert, der Wert wird sicher aber immer nährungsweise sein, wenn du mit proportionalen Fonts agierst.
"W" ist z.B. bei Arial fast so breit wie "12" zusammen, da wirds natürlich auch mit einer Berechnung schwierig ;-)

mmh - also so richtig überzeugen tuts mich nicht!
Ich hab ein Field:
Delphi-Quellcode:
WriteField('ListName', dtString, 1, '', '');
Und übertrage den String "ListView"
und den seh ich komplett. Also irgendwie hat die 1 nichts mit der Länge zu tun

Keldorn 6. Jun 2007 19:35

Re: ListView in Rave-Reports abbilden
 
bissel späte Antwort, hatte Streß.
Zitat:

Zitat von Helmi
Und übertrage den String "ListView"
und den seh ich komplett. Also irgendwie hat die 1 nichts mit der Länge zu tun

Also das haut schon so hin. Aber die Länge hat mehr oder weniger nur Auswirkungen, wenn du ein Databand durch drag und drop vom Dataview in den Report ziehst. Dann hat das Databand die Länge, die im jeweiligen Feld im Dataview eingestellt ist.
Wenn du nachträglich im Delphi-Prog die Size änderst, hat das keine Auswirkungen.

Mfg Frank


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