AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi QReport aus mehreren Tabellen aufbauen? SQL Join?
Thema durchsuchen
Ansicht
Themen-Optionen

QReport aus mehreren Tabellen aufbauen? SQL Join?

Offene Frage von "Jetro223"
Ein Thema von Jetro223 · begonnen am 28. Dez 2003 · letzter Beitrag vom 29. Dez 2003
Antwort Antwort
Jetro223

Registriert seit: 20. Dez 2003
24 Beiträge
 
#1

QReport aus mehreren Tabellen aufbauen? SQL Join?

  Alt 28. Dez 2003, 13:58
Hallo, da mir hier immer so genial geholfen wird und sich bisher keiner über meine Fragerei beschwert...*hüstel*:


Also ich hab immer noch meine Paradox 7 Datenbank (Zugriff via TQuery und SQL). Die ist inzwischen auf 2 Tabellen "gewachsen".

Code:
Tabelle 1:
Artikelnummer
.
.
.
LNR
und

Code:
Tabelle 2:
LNR
Name
Ich erstelle jetzt einen QuickReport, in dem ich einige Daten aus Tabelle 1 ausdrucken möchte.

Code:
QuickReport:

Artikelnummer . . . LNR
Nun soll aber in den Report noch der zur Spalte "LNR" gehörende "Name" aus Tabelle 2.

Also:

Code:
Artikelnummer(Tabelle1) . . . Name(Tabelle2) . . .LNR(Tabelle1)
So rufe ich den QuickReport auf:

Delphi-Quellcode:
procedure TFArtikel.BVorschauClick(Sender: TObject);
var
  slSQL : TStrings;
  sMessage : string;
begin
  //Artikelnummer
  If RadioButtonArtNr.Checked Then
    If (Length(EDArtNrVon.Text) = 5) AND (Length(EDArtNrBis.Text) = 5) Then
      Begin
        slSQL := DB.SQL;
        DB.SQL.Clear;
        DB.SQL.Add('SELECT * FROM "c:\artikel.db" WHERE ArtNr BETWEEN ' + EDArtNrVon.Text + ' AND ' + EDArtNrBis.Text + ' ORDER BY ArtNr');
        DB.Open;
        FQRArtNr.QuickRep1.Preview;
        DB.SQL := slSQL;
        DB.Open;
    End;
end;
Das Dataset vom Quickreport, der sich auf einer anderen Form befindet steht auf dem Query von der ersten Form (wo ich noch ein DBGrid hab' und die ganze Bearbeitung der Daten passiert).

Frage: Wie bekomm ich es so hin, das er automatisch zur Spalte "LNR" aus Tabelle 1 im Quickreport den Wert von "Name" aus Tabelle 2 holt?

Ich dachte irgendwie mit einem SQL-Join (was ich nebenbei gesagt noch nie gemacht hab' ), so von wegen

SQL-Code:
SELECT Name
FROM artikel, tabelle2
WHERE tabelle2.lnr = QRDBText.Caption
... könnte es so funktionieren? Und wenn ja, WANN muss ich das aufrufen )

Ich freue mich schon auf eure Antworten

Edit: Oder geht das irgendwie über so ein Lookup Field?
  Mit Zitat antworten Zitat
Benutzerbild von p0ke
p0ke

Registriert seit: 21. Dez 2003
Ort: Osnabrück
121 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: QReport aus mehreren Tabellen aufbauen? SQL Join?

  Alt 28. Dez 2003, 17:39
Hallo erstmal,

ich weiß noch nich ob ich dich ganz verstehe, bzw. die eine oder andere Info bräuchte ich noch.

Ist Tabelle 2 eine von Artikel abhängige Tabelle? Wenn du innerhalb einer Query 2 Tabellen verknüpfen willst, dann musst du ja irgendwie eine Gemeinsamkeit haben, z.B. eine Artikelnummer, die in beiden Tabellen vorhanden ist.

Ich schreibe hier mal ein kleines Beispiel, vielleicht bringt dich das weiter:

SQL-Code:
 SELECT Name FROM Artikel A, Unterartikel U
WHERE A.Artikelnummer=U.Artikelnummer

Ich weiß nich, vielleicht kannst du nochmal ein paar mehr Hintergründe nennen, was du da genau machst. Vielleicht hilft dir das aber ja schon weiter. Oder du wartest noch ein wenig, es gibt hier noch ein paar Leute die kompetentere Antworten geben können


Gruss

p0ke
René
There are only 10 types of people in the world: Those who understand binary, and those who don't.

Mein Projekt bei DP: ScreenCaptureV2
  Mit Zitat antworten Zitat
Jetro223

Registriert seit: 20. Dez 2003
24 Beiträge
 
#3

Re: QReport aus mehreren Tabellen aufbauen? SQL Join?

  Alt 28. Dez 2003, 17:56
Hallo,

danke erstmal für deine Antwort

Also ich komm der Sache langsam näher.

Zur Info für dich: In beiden Tabellen gibt es das Feld LNR.

In Tabelle 2 steht zu "LNR" aber noch eine Detailinformation der "Name". Und ich will das Feld "Name" aus Tabelle 2 mit drucken.

Er soll: In Tabelle 1 gucken --> Aha, LNR hat Nr. 22 und dann in Tabelle 2 gucken bei LNR Nr. 22 was da für ein "Name" steht. Und diesen Namen will ich dann mit drucken.


Mit

SQL-Code:
SELECT * FROM "artikel.DB" Artikel
   INNER JOIN "lieferanten.db" Liefer
   ON (Artikel.LNR = Liefer.LNR)
Funktioniert das auch im SQL Builder, aber irgendwie scheint der Report n(noch) nicht drauf zugreifen zu können.

Ich probier erstmal weiter. Vielleicht hat noch jemand einen Tipp für mich

Edit: OK, wie es scheint greift der Report jetzt darauf zu, aber leider zeigt er immer nur eine Zeile an...wenn ich das jetzt noch wegbekomme, also das er alles anzeigt...dann haut's hin
  Mit Zitat antworten Zitat
Jetro223

Registriert seit: 20. Dez 2003
24 Beiträge
 
#4

Re: QReport aus mehreren Tabellen aufbauen? SQL Join?

  Alt 28. Dez 2003, 18:13
Edit : Hoppala, ich wollte eigentlich editieren...

Edit :

So, also mit der jetzigen Anweisung

SQL-Code:
SELECT * FROM "artikel.DB" Artikel
INNER JOIN "lieferanten.db" Liefer
ON (Artikel.LNR = Liefer.LNR)
WHERE Artikel.ArtNr Between 12000 AND 20000
ORDER BY Artikel.ArtNr
Stellt er mir das, was ich haben will richtig im DBGrid dar.

Im QuickReport allerdings nur die erste Zeile.

Ich hab im Quickreport, dessen DataSet mein TQuery ist, einfach ein neues DatenbankTextFeld eingefügt und dieses erkennt auch den neuen Feldnamen "Name" der ja aus der anderen Tabelle ist.

Es fehlt 100%ig nicht mehr viel zum funktionieren Bloß was...?
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: QReport aus mehreren Tabellen aufbauen? SQL Join?

  Alt 29. Dez 2003, 05:26
Bist du sicher, daß du die DataSet deines QuickRep auf deine Query gesetzt hast?

Oder betrachtest du nur die Vorschau deines Reports? Dann wird auch nur der erste Datensatz angezeigt.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Jetro223

Registriert seit: 20. Dez 2003
24 Beiträge
 
#6

Re: QReport aus mehreren Tabellen aufbauen? SQL Join?

  Alt 29. Dez 2003, 15:59
Ja, 100prozentig sicher.

Ich schau mir auch immer nur die Vorschau an. Aber bevor ich die ganze Sache mit der anderen Tabelle eingefügt hab', hab ich auch in der Vorschau alle Daten gesehen, die ich sehen wollte und nicht nur die erste Zeile...

Mfg
  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 07:49 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