Wie man Datensatz dynamisch in FastReport zuweist?

8

Ich habe einen Bericht mit FastReport Designer erstellt und ihn mit Delphi 6 aufgerufen. Aber DataSet für MasterData und die Felder werden zur Entwurfszeit nicht zugewiesen. Ich möchte diese Eigenschaften zur Laufzeit basierend auf dem ausgewählten DataSet festlegen. Wie kann ich das machen? Wie kann ich auf das DataSet des MasterData in Delphi zugreifen, bevor ich das preview / print / design aufrufen kann? Der folgende Code wurde in frxReport1BeforePrint hinzugefügt.

%Vor%

Aber ich muss diese Eigenschaften vor dem Aufruf der print / design / preview einstellen. Jede Hilfe wird geschätzt.

    
sinu 31.10.2010, 21:48
quelle

2 Antworten

2

Sie sollten zuerst angeben, ob Sie versuchen, ein in Ihrer Anwendung definiertes Datenset oder ein direkt in Ihrem Bericht definiertes Datenset zu verwenden (Registerkarte "Daten" im FastReport-Designer)?

Wenn Sie versuchen, ein Dataset zu verwenden, das in Ihrer Anwendung definiert ist (z. B. eine AdoDataset-Instanz, die in einem Ihrer Datenmodule definiert ist), müssen Sie das MasterBand nicht an Ihr Dataset binden. dynamisch. Innerhalb des Berichts ist Ihr MasterBand in der Entwurfszeit an eine TfrxDbDataset-Instanz gebunden. Zur Laufzeit kann Ihre frxDbDataset-Instanz mit einem beliebigen Dataset in Ihrem Projekt verbunden werden.

So würde es aussehen:

1- Sie löschen eine frxReport-Komponente und eine frxDbDataset-Komponente in Ihrem Formular oder Datenmodul. 2- Gehen Sie im Berichts-Designer zum Abschnitt Datasets und fügen Sie das verfügbare frxDbDataset zur Dataset-Liste des Berichts hinzu. 3- Sie fügen ein Masterdatenband hinzu und weisen das frxDbDataset seiner Dataset-Eigenschaft zu. 4- Nun können Sie in Ihrem Code vor dem Anzeigen oder Vorbereiten des Berichts Folgendes schreiben:

%Vor%

Was Sie frxDbDataset zuweisen, wird vom Master-Band in Ihrem Bericht gedruckt.

Wenn Sie das Dataset direkt im Bericht mithilfe des FastReport-Designers definieren; dann ist alles in deinem Bericht. Öffnen Sie einfach den FastReport-Designer und tun Sie dies:

1- Gehen Sie zur Registerkarte Daten und definieren Sie Ihre Datensätze (z. B. AdoQuery1). 2- Wählen Sie Berichtsobjekt im Bereich Berichtsbaum. 3- Wechseln Sie im Objektinspektor zur Registerkarte Ereignisse. 4- Wählen Sie ein passendes Ereignis; OnStartReport ist eine gute Veranstaltung für Ihre Arbeit. Doppelklicken Sie darauf, um den Code-Editor zu öffnen. 5- Jetzt können Sie den im Datenregister definierten Datensatz dem Master-Datenband mit PascalScript-Code zuweisen. Etwas wie das:

%Vor%     
vcldeveloper 31.10.2010 23:32
quelle
-1

Wenn Sie FastReport 3+ verwenden, können Sie Datenbankkomponenten innerhalb berichten. Sie benötigen lediglich eine Datenbankverbindung und führen den Designer aus Ihrer Anwendung aus.

Sie können Variablen definieren, sie aus der Anwendung übergeben und Ihre .fr3-Berichtsdatei ausführen.

    
DiGi 01.11.2010 16:13
quelle

Tags und Links