AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ADO und FastReport

Ein Thema von terra · begonnen am 25. Aug 2010 · letzter Beitrag vom 27. Aug 2010
Antwort Antwort
terra

Registriert seit: 2. Jun 2005
26 Beiträge
 
Delphi 2010 Architect
 
#1

ADO und FastReport

  Alt 25. Aug 2010, 23:02
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
Mark
  Mit Zitat antworten Zitat
terra

Registriert seit: 2. Jun 2005
26 Beiträge
 
Delphi 2010 Architect
 
#2

AW: ADO und FastReport

  Alt 26. Aug 2010, 13:27
bitte bitte, weil echt wichtig !

Terra
Mark
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: ADO und FastReport

  Alt 26. Aug 2010, 18:14
Kurz gesagt mit TADOTable kannst du deine Aufgabe nicht erfüllen; du brauchst dazu unbedingt TADOQuery (oder TAdoDataset).
Ausserdem solltest du Grundkenntnisse in SQL haben und wissen wie man mit Parametern in SQL-Abfragen arbeitet.

Wenn du nur eine einzige Rechnung haben möchtest, dann brauchst du dafür eine SQL-Abfrage:
Delphi-Quellcode:
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.)
Zu der Rechnung gibt es jetzt genau einen Kunden:
Delphi-Quellcode:
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
Die Verknüpfung zwischen Rechnung und Kunde habe ich hier manuell im Code hergestellt.
Man kann das aber auch automatisch über das Property DataSource in der Komponente TAdoQuery veranlassen.
Andreas
  Mit Zitat antworten Zitat
terra

Registriert seit: 2. Jun 2005
26 Beiträge
 
Delphi 2010 Architect
 
#4

AW: ADO und FastReport

  Alt 26. Aug 2010, 18:34
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
Mark
  Mit Zitat antworten Zitat
terra

Registriert seit: 2. Jun 2005
26 Beiträge
 
Delphi 2010 Architect
 
#5

AW: ADO und FastReport

  Alt 27. Aug 2010, 10:40
Wie immer liegt die Antwort genau vor den Augen.

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
Mark
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz