![]() |
DataSet und Rave
Hallo,
ich habe ein Problem beim Zugriff auf ein DataSet über einen Rave Report. Das DataSet ist quasi von ![]() Gruß, oXmoX |
Re: DataSet und Rave
Ist denn niemand da, der mir einen Tipp geben kann?
|
Re: DataSet und Rave
doch, ich bin stellenweise da.....
komme aber frühestens erst nach den "ruhigen Feiertagen" dazu, mir Deine Frage näher anzuschauen, -> not promised außerdem ist der Thread ja erst von gestern.... things.take.time. :-D -take care :-) thomas, TeamNevrona |
Re: DataSet und Rave
okay! ...ich übe geduld *daumendreh*
|
Re: DataSet und Rave
Liste der Anhänge anzeigen (Anzahl: 1)
So,
nun habe ich mir mal die BSP von Marco angeschaut und um die Rave-Eigenschaft erweitert; der GetCols-Bereich ist sicherlich nicht korrekt, aber mti dtStrings ging es am schnellesten <g>
Delphi-Quellcode:
In der Zip-Datei noch die RAV; hat bei mir problemlos geklappt <g>
type
TForm1 = class(TForm) DBGrid1: TDBGrid; DataSource1: TDataSource; DirectoryListBox1: TDirectoryListBox; RvProject1: TRvProject; Button1: TButton; RvCustomConnection1: TRvCustomConnection; procedure FormCreate(Sender: TObject); procedure DirectoryListBox1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure RvCustomConnection1GetCols(Connection: TRvCustomConnection); procedure RvCustomConnection1GetRow(Connection: TRvCustomConnection); procedure RvCustomConnection1Open(Connection: TRvCustomConnection); procedure RvCustomConnection1Next(Connection: TRvCustomConnection); procedure RvCustomConnection1EOF(Connection: TRvCustomConnection; var Eof: Boolean); private { Private declarations } public DirDataset: TDirdataSet; end; var Form1: TForm1; implementation ......................................... procedure TForm1.RvCustomConnection1EOF(Connection: TRvCustomConnection; var Eof: Boolean); begin eof := false; if DirDataset.Eof then eof := true; end; procedure TForm1.RvCustomConnection1GetCols(Connection: TRvCustomConnection); begin with Connection do begin WriteField('shortFileName', dtString, 50, 'Dateiname', 'aus MarcoCantu-BSP'); WriteField('Time', dtString, 50, 'Zeit', 'aus MarcoCantu-BSP'); WriteField('Size', dtString, 50, 'Groesse', 'aus MarcoCantu-BSP'); WriteField('Attr', dtString, 50, 'Dateiname', 'aus MarcoCantu-BSP'); end; end; procedure TForm1.RvCustomConnection1GetRow(Connection: TRvCustomConnection); begin with Connection do begin WriteStrData('', DirDataset.Fields.FieldByNumber(1).AsString); WriteStrData('', DirDataset.Fields.FieldByNumber(2).AsString); WriteStrData('', DirDataset.Fields.FieldByNumber(3).AsString); WriteStrData('', DirDataset.Fields.FieldByNumber(4).AsString); end; end; procedure TForm1.RvCustomConnection1Next(Connection: TRvCustomConnection); begin DirDataset.Next; end; procedure TForm1.RvCustomConnection1Open(Connection: TRvCustomConnection); begin Connection.DataRows := DirDataset.RecordCount; end; procedure TForm1.Button1Click(Sender: TObject); begin RvProject1.Execute; end; :-) thomas, TeamNevrona |
Re: DataSet und Rave
SPITZEN LEISTUNG!!!
Ich werd wohl erst nächste Woche dazu kommen, mir die Sachen anzuschauen, aber ein dickes Lob schick ich dir schonmal vorraus ...wird bestimmt auch bei mir klappen! Ich meld mich. |
Re: DataSet und Rave
und... bin neugierig... :oops: hat es geklappt ?!?!
:-) thomas, TeamNevrona |
Re: DataSet und Rave
bin leider grad an einer anderen baustelle ...aber ich werde berichten :zwinker:
|
Re: DataSet und Rave
Sorry, aber bin erst jetzt wieder dazu gekommen, hier weiterzumachen.
Es hat natürlich auch bei mir funktioniert. Allerdings verstehe ich nicht, warum das ganze nicht auch mit einer RvDataSetConnection funktioniert. Naja, die RvCustomConnection tuts jedenfalls auch und ich bin echt dankbar dafür :) . |
Re: DataSet und Rave
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo nochmal!
Leider habe ich noch immer Probleme mit dem TDirDataSet und Rave. Folgendes möchte ich erreichen: Im Report soll eine verschachtelte Liste mit zwei Ebenen dargestellt werden. Die erste Ebene zeigt die Dateien aus dem aktuellen Verzeichnis, die zweite Ebene zeigt die Dateien aus den Unterverzeichnissen. Das lässt sich soweit ich weiß in Rave Reports über Master und Detail Databands realisieren. Also habe ich TDirDataSet um einen Master- und einen Detailkey erweitert (Filename - der vollständige Dateiname mit Pfad und ParentDir - der vollständige Name des übergeordneten Verzeichnisses mit Pfad) und schließlich eine Klasse TSubDirDataSet hizugefügt, die nicht die Dateien des aktuellen Verzeichnisses zurückgibt, sondern die Dateien aus den Unterverzeichnissen des aktuellen Verzeichnisses. Das Ergebnis habe ich als Attachment beigefügt incl. eines neuen .rav Projektes, das eine Region mit zwei DataBands enthält, die mit TDirDataSet (DataBand1 --> DataView1) bzw. TSubDirDataSet (DataBand2 --> DataView2) verknüpft sind. Wenn ich die Preview des Reports ausführe, sehe ich eine Liste, die im oberen Teil die Dateien des aktuellen Verzeichnisses enthält und im unteren Teil die Dateien der Unterverzeichnisse. Bis hierhin läuft alles nach Plan ;-) . Und jetzt endlich zu meinem Problem: Wie muss ich die .rav konfiguriern, damit ich meine verschachtelte Liste bekomme? Ich denke, dazu muss ich im DataBand2 das DataBand1 als Controllerband einstellen, sowie DataView1 als Master angeben. Dann setze ich den Masterkey auf FileName sowie den DetailKey auf ParentDir, right? Und zum Schluss stelle ich den Bandstyle von DataBand2 noch auf Detail ..auf diese Weise hat es bisher jedenfalls immer funktioniert. ...Funktioniert aber nicht mit dem TDirDataSet :-( ...jetzt bekomme ich nur noch den Inhalt von DataBand1 angezeigt, obwohl es Unterverzeichnisse mit Dateien gibt (und für die gilt ja: Detail.ParentDir = Master.FileName). Ich bin ziemlich ratlos. Kann es sein dass TDirDataSet nicht Threadsafe ist, dies aber für Rave erforderlich ist? Oder liegt es evtl. an einem Bug in Rave (Version 5.0 Borland Edition)? Danke für jede Hilfe! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 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