Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Rave: Master/Detail Ausdruck mit DirectDataViews geht nicht. (https://www.delphipraxis.net/53584-rave-master-detail-ausdruck-mit-directdataviews-geht-nicht.html)

Peter-Ziegler 19. Sep 2005 14:31


Rave: Master/Detail Ausdruck mit DirectDataViews geht nicht.
 
Hallo,

unsere Daten liegen in keiner Datenbank, daher habe
ich versucht einen Master/Detail Ausdruck mit den DirectDataViews hinzukriegen:

DataBand1:
DataView = DirectDataView_Master

DataBand2:
ControlerBand = DataBand1, DataView = DirectDataView_Detail
MasterDataView = DirectDataView_Master, MasterKey = DirectDataView_Master.MasterKey
DetailKey = DirectDataView_Detail.DetailKey

Im Ausdruck erscheinen nur die Master Zeilen und keine Detail Zeilen,
obwohl es Einträge mit gleichem MasterKey und DetailKey gibt.

Könnte es sein, dass Master/Detail Ausdrucke mit DirectDataViews nicht funktionieren??

Danke im Voraus,
Gruß (an Thomas/ Team Nevrona)

Peter

PS:
In Delphi werden die Tabellen-Daten, die nur als StringListe vorliegen,
jeweils mit einer TRvCustomConnection an Rave übergeben.
Vielleicht ist das das Problem.
Es gibt ja auch TRvDataSetConnection. Muss man die bei Master/Detail benützen??

Safti 21. Sep 2005 09:43

Re: Rave: Master/Detail Ausdruck mit DirectDataViews geht ni
 
Hallo Peter,

Stelle mal im BandStyle des DataBand2 die PrintLocation auf Detail, dann sollten auch die Detail-Daten gedruckt werde. Ohne diese Einstellung werden sie nicht gedruckt. Hab es gerade mal getestet.;)

Gruß
Safti

Peter-Ziegler 21. Sep 2005 12:23

Re: Rave: Master/Detail Ausdruck mit DirectDataViews geht ni
 
Hallo Safti,

die Print Location im Band Style des Detail-Band steht auf Detail.
Es geht trotzdem nicht.

Geht es bei dir wirklich ueber eine TRvCustomConnection??
Mache ich da was falsch?
Also für einfache Tabellen Ausdrucke hat es bisher funktioniert.
Die TRvCustomConnection sorgt bei mir für eine Abbildung der Daten aus den Stringlisten in einen
Tabellen DataView.

Ich habe wie gesagt die Vermutung, dass es an der Benutzung der TRvCustomConnection liegt.
Leider wird es mit der TRvDataSetConnection auch nicht gehen,
da die Daten wie gesagt nicht in einer Datenbank sondern in StringListen liegen.

Und für die TRvDataSetConnection braucht man einen TClientDataSet und
den kann man nach meiner bisherigen Kenntnis nur mit einer DB verbinden
und nicht mit Daten, die nur im Speicher als Listen vorliegen.

Danke und Gruß
Peter

Safti 21. Sep 2005 13:33

Re: Rave: Master/Detail Ausdruck mit DirectDataViews geht ni
 
Hallo Peter,

ja es geht bei mir auch über TRvCustomConnection. Bei mir funktioniert auch auch die Kombination von TRvDataSetConnection (Master) + TRvCustomConnection (Detail). Ich habe meine Daten zwar in Arrays, aber das ist ja letztendlich egal. Sicher, dass die Einstellungen für den MasterKey und DetailKey im DataBand2 stimmen?

Gruß
Safti

merlin17 21. Sep 2005 13:37

Re: Rave: Master/Detail Ausdruck mit DirectDataViews geht ni
 
Peter,

eigentlich sollte es total egal sein, ob TRvQuery,TRvTable, TRvDS oder TRvCC ist.
Auch die Kombination ist möglich. Alles gecheckt und keine fehlende TRv.. - Info irgendwo
in den Bändern ?!

Welche Raveversion hast Du ?

;-) thomas, TeamNevrona

Peter-Ziegler 22. Sep 2005 08:11

Re: Rave: Master/Detail Ausdruck mit DirectDataViews geht ni
 
Hallo,

@Thomas:
meine Rave Version ist Borland Edition 5.0 Build 021125 (im Help About).
Was meinst du mit fehlende TRv.. - Info in den Bändern??

Wie gesagt folgende Einstellungen habe ich in Rave gemacht:

DataBand1 (Master):
DataView = DirectDataView_Master

DataBand2 (Detail):
ControlerBand = DataBand1, DataView = DirectDataView_Detail
MasterDataView = DirectDataView_Master, MasterKey = DirectDataView_Master.MasterKey
DetailKey = DirectDataView_Detail.DetailKey

Die DirectDataViews kommen aus 2 TRvCustomConnection's in Delphi.

Folgende Properties der TRvCustomConnection's habe ich gesetzt:

RvCustomConnection.OnGetCols := GetCols;
RvCustomConnection.OnGetRow := GetRow;
RvCustomConnection.OnOpen := Open;
RvCustomConnection.Name := TableName;
RvCustomConnection.RuntimeVisibility := rtDeveloper;

Fehlt noch was?

Als Datentyp habe ich nur dtString benützt.

Code-Schnipsel:
procedure TTableRvConnection.GetCols(
Connection: TRvCustomConnection);
var
col: Integer;
begin
for col := 0 to FTableData.Columns -1 do
Connection.WriteField( FTableData.GetColName( col ), dtString, 10, '', '' );
end;

Gruß
Peter

PS:
Mir fällt jetzt auf, dass ich beim Connection.WriteField immer Width=10 und FullName='' angegeben habe.
Hatte sich bei einfachen Tabellen bisher nicht negativ ausgewirkt.
Könnte es daran liegen?


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