![]() |
ADO und FastReport
Servuz zusammen !
Entweder ist es schon zu spät oder ich stehe einfach nur auf dem Schlauch. Wie auch immer, ich komme nicht weiter und brauche mal eure Hilfe. Habe hier ein Projekt was mit ADO arbeitet und 2 Datenbanken sowie 12 Tabellen bearbeitet. Im Moment ist aber nur eine Datenbank wichtig die einmal eine Tabelle für Kunden und eine für Rechnungen enthält. Im Fastreport Formular habe ich auch 2 ADO-Tabellen erstellt und diese mit dem Project Conector zur ADO Datenbank verbunden. Somit erspaare ich mir das doppelte öffnen der DB. Denke mal, das es so auch richtig ist, da ich mich mit dem FastReport auch NULL auskenne bzw. vorher damit gearbeitet habe. Im Formular heißen die Tabellen einmal KUNDEN und einmal KAUF. Im Projekt heißen die Tabellen einmal DS1 für die Kunden und DS2 für die Rechnungen. im Projekt das Fastreport Modul heißt FRECH. Es geht jetzt darum, dem Formular zu sagen welcher Kunde und welche Rechnung grade im Projekt aufgerufen wurden und diese im Formular anzuzeigen. Habe mir mal die Demos schon angeschaut aber komme irgendwie nicht klar mit allem. Im TfrxReport habe ich schon ausprobiert das Kauf-Dataset einzubinden und die Daten dann von dort auszulesen. Das dauert aber beim Aufruf der Vorschau viel zu lange. (ca. 20.000 Datensätze) Rufe ich die Vorschau im Formulareditor auf, wo alle Tabellen im Formular liegen, geht es sehr schnell. Allerdings wird nur der 1. Datensatz aufgerufen, was ja aber logisch ist. Also nochmal um es genau zu beschreiben, was ich machen möchte. Ich rufe in meinem Projekt einen Kunden auf der in der Datenbank steht. Dieser kunde hat eine Kundennummer. Die Kundennummer bestimmt die Rechnung(en) in der Rechnungstabelle. Rufe ich die Rechnung auf habe ich damit eine bestimmte Rechnungsnummer. Jetzt habe ich eine Kunden- und eine Rechnungsnummer die ich in das FastReport Formular senden möchte um dort den gleichen Stand der Tabellen zu haben um eine richtige Rechnung zu erhalten. Im Formular werden dann ganz Standartmäßig alle Daten aus den ausgewählten Datensätze gelesen. Wäre toll, wen mir jemand helfen könnte. Terra |
AW: ADO und FastReport
bitte bitte, weil echt wichtig !
Terra |
AW: ADO und FastReport
Kurz gesagt mit TADOTable kannst du deine Aufgabe nicht erfüllen; du brauchst dazu unbedingt TADOQuery (oder TAdoDataset).
Ausserdem solltest du ![]() Wenn du nur eine einzige Rechnung haben möchtest, dann brauchst du dafür eine SQL-Abfrage:
Delphi-Quellcode:
Zu der Rechnung gibt es jetzt genau einen Kunden:
ADOQueryRechnung.close;
ADOQueryRechnung.SQL.Text := 'SELECT * FROM Rechnungen WHERE IdRechnung=:IdRechnung'; ADOQueryRechnung.Parameters.ParamValues['IdRechnung'] := '4711'; // die gewünschte Rechnungsnummer ADOQueryRechnung.Open; // jetzt enthält die Abfrage genau einen Datensatz (oder keinen, falls Rechnungsnr nicht vorh.)
Delphi-Quellcode:
Die Verknüpfung zwischen Rechnung und Kunde habe ich hier manuell im Code hergestellt.
ADOQueryKunde.close;
ADOQueryKunde.SQL.Text := 'SELECT * FROM Kunden WHERE IdKunde=:IdKunde'; ADOQueryKunde.Parameters.ParamValues['IdKunde'] := ADOQueryRechnung['Kundennummer']; ADOQueryKunde.Open; // jetzt enthält die Abfrage 'ADOQueryKunde' genau einen Datensatz Man kann das aber auch automatisch über das Property DataSource in der Komponente TAdoQuery veranlassen. |
AW: ADO und FastReport
Habe jetzt mal eine ganz bescheidene Frage:
Schreibe ich deinen Quellcode in das FastReport rein? Wenn ich mir so deinen Source anschaue, macht es ja nichts weiter, was ich bereits mit dem MasterSource in dem Table mache. Ich habe ja bereits aus meinem Projekt eine Kundennummer und eine Rechnungsnummer. Diese Werte müssen nur an FastReport (FRech.DataSet .... ?) gesendet werden, damit dort in der Tabelle (Kunde, Rechnungen) die gleichen Werte aufgerufen werden. z.B. FastReport.Tabelle_Kundennummer := ADOTabelle.Kundennummer; Ich habe aber mehrere Tabellen in FastReport aber weiß leider nicht, wie ich die dort anspreche. Das ist eigentlich mein Hauptproblem. LG Terra |
AW: ADO und FastReport
Wie immer liegt die Antwort genau vor den Augen. :wink:
Fastreport hat ja die Komponente "TfrxDBDataset". Diese einfach mit der Tabelle Verknüpfen, im Fastreport die Datenbanken austauschen und schon hat man immer den Ausgewählten User und Rechnungsnummer in Fastreport, die man benötigt. Aber ohne die DEMOS hätte ich heute noch gesucht ^^ LG Terra |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 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