![]() |
CustomConnection - OnNext OnFirst
Hallo!
Ich hoffe hier ist jemand der mir helfen kann. Ich würde gern einen Record in Tabellenform im Rave drucken. Muss ich hierfür die OnFirst und OnNext Ereignisse verwenden, oder geht das auch anders? Wie benutze ich diese Ereignisse? :gruebel: Würde mich auch sehr über einen Quelltextauszug freuen! Danke!! LG kati |
Re: CustomConnection - OnNext OnFirst
Hallo
mit Rave arbeite ich noch nicht so lange (1 Woche :oops: ), aber ich versuchs mal: wenn du die Anzahl der Records schon weißt, ist die Verbindung onopen, getcols und getrows der customcennection nicht schlecht. Die andere Variante wärte onFirst, onNext und onEof um das Ende festzustellen, da bin ich mir aber nicht so sicher. Beispiel zur 1. variante findest du hier im Forum ![]() ![]() Fülle zuerst die 3 Ereignisse (onopen die Anzahl der Einträge, ongetcols die Spalten und getrow die Daten), dann starte dein Programm. Es ist wichtig, das dein Programm beim ersten Designen läuft. Öffne den Rave-Designer, füge mit einem klick auf "View" eine neues Data object hinzu. Wähle "direct dataview" und dann deine Customconnection aus. Hast du das schon gemacht, mußt du evtl das Dataview "refreshen" um die aktuellen Daten zu übernehmen. Rechts bei der Dataview siehst du dann die einzelnen Felder. Anschließend eine "Region Componente" aus dem Report-Reiter auf die Seite ziehen. Dann ein Databand in die erstellte Region. In diesem Databand erstellst du dann die benötigten Anzeigen (z.B. Datatext oder datamemo), diesen Anzeigen weißt du links im Objektinspektor zuerst das erstellte Dataview und dann das entsprechende Datafield aus. Du kannst auch rechts ein Dataview-eintrag anklicken und mit gedrückter STRG-Taste auf ein BNand ziehen, dann kannst du dir das Einstellen der Data*-Eigenschaften sparen. Mit einem Klick auf "execute Report" solltest du dann ein Ergebnis sehen. Ich hoffe da war jetzt kein Blödsinn dabei, ansonsten korrigiert mich bitte :) Mfg Frank |
Re: CustomConnection - OnNext OnFirst
Hallo kati
Zitat:
Delphi-Quellcode:
@Frank:
procedure TForm1.RvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin Connection.WriteField('LogoBitmap', dtGraphic, 30, '', ''); end; procedure TForm1.RvCustomConnection1Open(Connection: TRvCustomConnection); begin // some procedures for "extended customConnection.... in this example not always a must LogoRow := 1; end; procedure TForm1.RvCustomConnection1Next(Connection: TRvCustomConnection); begin inc(LogoRow); end; procedure TForm1.RvCustomConnection1EOF(Connection: TRvCustomConnection; var Eof: Boolean); begin Eof := (LogoRow > 1); end; procedure TForm1.RvCustomConnection1GetRow( Connection: TRvCustomConnection); var FileStream: TFileStream; MemStream: TMemoryStream; begin try MemStream := TMemoryStream.Create; try MemStream.LoadFromFile(ExtractFilePath(Application.ExeName) + 'custom.bmp'); Connection.WriteBlobData(MemStream.Memory^, MemStream.Size); finally MemStream.Free; end; finally end; end; Zitat:
Zitat:
:-) thomas, TeamNevrona |
Re: CustomConnection - OnNext OnFirst
Danke für eure hilfe!:thumb:
Jetzt funktionierts!!! LG kati |
Re: CustomConnection - OnNext OnFirst
wo liegen da eigentlich die Vorteile/Unterschiede zu onnext? Setzt man besser die Anzahl der Daten in onopen oder prüft man das Ende in onEOF? Der Unterschied ist mir nicht so klar.
Mfg Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 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