Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Oracle-Calc-Field an Rave-Report (https://www.delphipraxis.net/49427-oracle-calc-field-rave-report.html)

Glühwürmchen 11. Jul 2005 10:51

Datenbank: Oracle • Version: 10 • Zugriff über: TSocketConnection / TClientDataSet / TDataSource

Oracle-Calc-Field an Rave-Report
 
Hallo Allerseits

ich habe in einer Oracle-Tabelle vier Integer-Felder "IP1", "IP2", "IP3" und "IP4". Da stehen beispielsweise die Werte 121, 122, 123 und 124 drinne.

Wird zur Laufzeit diese Tabelle dargestellt gibt es im Grid eine Spalte mit Namen "IP-Text" ind da steht dann "121.122.123.124".

Nun soll dieser IP-Text im RaveReport erscheinen. Wie ghet das?
Ich erhalte immer nur ein "INVALID".

Bisher gemacht habe ich folgendes:
in Delphi:
RvProject1.SetParam('IP_TXT', sParam1);
Frage: Wie weise ich sParam1 den richtigen Wert zu? Das muß ja auch dann noch gehen, wenn
ich 1000 verschiedene Datensätze und damit 1000 verschiedene IP-Adressen habe.

in RAVE:
RaveReport.Parameters --> IP_TXT

Danke schon mal für Eure Hilfe.
Glühwürmchen

merlin17 11. Jul 2005 11:29

Re: Oracle-Calc-Field an Rave-Report
 
Hallo,

vergiss' für diesen Fall den Paramterweg!


-> übernehme einfach die vier Felder in die RaveDataView (wenn noch nicth geschehen)
und in dem DataText kannst du im DataText-Editor die 4 Felder wie folgt adieren:
IP1 + '.' + IP2 + '.' ....

alternativ geht noch der Weg über die Rave CalcFields (sollte hier in der DP schon mal behandelt worden sein).



:-) thomas

Glühwürmchen 11. Jul 2005 12:06

Re: Oracle-Calc-Field an Rave-Report
 
Prima, danke schön.
Das funzt.

Muß ich bei allen berechneten Feldern genau wissen, was ise tun, um sie im Bericht abbilden zu können?

Bzw. muß ich die Felder. die Delphi zur Laufzeit berechnet im Bericht auch noch mal "selbst" berechnen?

merlin17 11. Jul 2005 12:10

Re: Oracle-Calc-Field an Rave-Report
 
Hallo,

Zitat:

Muß ich bei allen berechneten Feldern genau wissen, was ise tun, um sie im Bericht abbilden zu können?
???
Zitat:

Bzw. muß ich die Felder. die Delphi zur Laufzeit berechnet im Bericht auch noch mal "selbst" berechnen?
nein, analog DBGrid, hier musst du ja auch nicht nochmal berechnen.

:-) thomas, TeamNevrona

Glühwürmchen 11. Jul 2005 12:43

Re: Oracle-Calc-Field an Rave-Report
 
Zitat:

Zitat:

Zitat:
Muß ich bei allen berechneten Feldern genau wissen, was ise tun, um sie im Bericht abbilden zu können?
???
Will heißen:
Ich habe eine DB mit ca. 100 Tabellen. Ich weiß nicht wirklich, was da so in jeder Tabelle drin steht und schon garnicht, wie die Werte in den berechneten Feldern zustande kommen.

Jetzt ist die Frage, ob ich das vor layouten eines Rave-Berichtes jeweils erst erfragen muß, oder ob ich auch irgendwie anders an die errechneten Werte ran kommen kann.


Zitat:

nein, analog DBGrid, hier musst du ja auch nicht nochmal berechnen.
hm, wie meinst du das?

Glühwürmchen 15. Jul 2005 09:46

Re: Oracle-Calc-Field an Rave-Report
 
Noch eine Frage zum übergeben eines berechneten Wertes von Oracle-Delphi an Rave:

Ich habe in einer Tabelle Integer-Werte drin stehen. Aus diesen Zahlen sollen im Bericht dann Wörter werden. Also etwa so:

Tabelle Bericht
----------------------
1 Telefon
2 TeleFax
3 e-Mail
4 Handy
....

Wie macht man so was?

Jasocul 15. Jul 2005 09:49

Re: Oracle-Calc-Field an Rave-Report
 
Vermutlich gibt es eine weitere Tabelle, die die Information enthält, welcher Wert für welchen Text steht. Mach ein einfaches join der Tabellen und schon hast du den entsprechenden Text.

Glühwürmchen 15. Jul 2005 10:28

Re: Oracle-Calc-Field an Rave-Report
 
Hm, die Werte liegen irgendwo hardcodiert im Programm rum und nicht in einer Tabelle. Daher geht das in diesem Fall nicht.

Trotzdem würde mich interessieren, wie Du das meinst:
Zitat:

Mach ein einfaches join der Tabellen ...

Jasocul 15. Jul 2005 10:34

Re: Oracle-Calc-Field an Rave-Report
 
Tabelle1 enthält deine Nummern
Tabelle2 enthält die Nummern und dazu das Textfeld.

SQL-Code:
select Tabelle2.TextFeld
from Tabelle1, Tabelle2
where Tabelle1.Nummer = Tabelle2.Nummer
Und bevor einer kommt und meckert: Oracle ist clever genug die joins daraus selbst zu basteln. Es wird also keine Kreuztabelle vorab erzeugt.

Zu deinem eigentlichen Problem: Da wirst du wohl MirrorSections verwenden müssen. Ärgerlich nur, wenn du nicht weißt, wieviele verschiedene Nummern es gibt.


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