Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Report erstellen - wie Query gestalten (https://www.delphipraxis.net/172763-report-erstellen-wie-query-gestalten.html)

mkinzler 22. Jan 2013 17:51

AW: Report erstellen - wie Query gestalten
 
Zitat:

Zitat von mkinzler:
Kann FB ist aber nicht besonders performant. ( in anderen DBMS aber auch nicht)
Ich nutze FB nicht produktiv, aber das kann ich kaum glauben.
Ich habe mich hier verguckt und geglaubt, dass es sich um Selects in der Feldliste handelt ( werden für jeden Datensatz aufgerufen -> unperformant). Hier handelt es sich aber um eine DERIVED TABLE, auf die gejoint wird.

messie 23. Jan 2013 14:03

AW: Report erstellen - wie Query gestalten
 
So, dank Lemmy habe ich jetzt eine stored proc hinbekommen. :thumb::thumb::thumb:

Im Flamerobin geht das wunderbar auch wenn es etwas dauert.
Jetzt habe ich das Problem dass der Report die Daten nicht anzeigt.

Ich habe testhalber mal eine einfache Query probiert "Select * from table where test_id = 17", das zur Entwurfszeit in die IDCQuery gespielt und den Preview zur Entwurfszeit ausgeführt. Alle zutreffenden Elemente (fortlaufende Seriennnummern) tauchen im Report auf.

Zur Laufzeit lade ich denselben String in dieselbe Query-Komponente, weise den Komponenten (QRDBText) die Query und die Felder zu und öffne die Query. Ergebnis: Gleiche Zeilenzahl aber immer die erste Seriennummer.

Was mache ich da falsch?

Grüße, Messie

Lemmy 23. Jan 2013 14:42

AW: Report erstellen - wie Query gestalten
 
Hi,

klatsch mal ein DBGrid auf dein Formular und schließ die Query an das Grid an. Kommen da die Daten?

Was genau meinst Du damit:
Zitat:

Ergebnis: Gleiche Zeilenzahl aber immer die erste Seriennummer.
Im Report?

messie 23. Jan 2013 14:59

AW: Report erstellen - wie Query gestalten
 
Zitat:

Zitat von Lemmy (Beitrag 1200261)
klatsch mal ein DBGrid auf dein Formular und schließ die Query an das Grid an. Kommen da die Daten?

Ja, ist alles da. Für das Grid musste ich noch eine IBCDataSource spendieren, hat das eine Bedeutung?
Was muss man anstellen um einen TDBNavigator zum Laufen zu bringen oder funzt der zur Entwurfszeit gar nicht?

Zitat:

Zitat von Lemmy (Beitrag 1200261)
Hi,
Was genau meinst Du damit:
Zitat:

Ergebnis: Gleiche Zeilenzahl aber immer die erste Seriennummer.
Im Report?

Ja. So als würde der Report zwar wissen, wieviele Einträge in der Query stecken, aber immer nur Zeile 1 ausgeben.

Leider bekomme ich die Query auf die stored proc nicht zur Entwurfszeit in die IBCquery. Vielleicht bin ich auch nur zu blöd :stupid:


Grüße, Messie

mkinzler 23. Jan 2013 16:19

AW: Report erstellen - wie Query gestalten
 
SQL-Code:
select
    <Feldliste>
from
    <SP-Name> ( :Param1, ...)
where
    <Bedingung>;

Lemmy 23. Jan 2013 19:36

AW: Report erstellen - wie Query gestalten
 
Zitat:

Zitat von messie (Beitrag 1200269)
Ja. So als würde der Report zwar wissen, wieviele Einträge in der Query stecken, aber immer nur Zeile 1 ausgeben.

Leider bekomme ich die Query auf die stored proc nicht zur Entwurfszeit in die IBCquery. Vielleicht bin ich auch nur zu blöd :stupid:

kann ja nicht anders sein ;-) Du hast doch XE2, damit auch FastReport. Kannst Du nicht den anstelle von QR nehmen?

messie 23. Jan 2013 20:10

AW: Report erstellen - wie Query gestalten
 
Zitat:

Zitat von Lemmy (Beitrag 1200320)
Zitat:

Zitat von messie (Beitrag 1200269)
Ja. So als würde der Report zwar wissen, wieviele Einträge in der Query stecken, aber immer nur Zeile 1 ausgeben.

Leider bekomme ich die Query auf die stored proc nicht zur Entwurfszeit in die IBCquery. Vielleicht bin ich auch nur zu blöd :stupid:

kann ja nicht anders sein ;-) Du hast doch XE2, damit auch FastReport. Kannst Du nicht den anstelle von QR nehmen?

Nö, dazu reicht die Zeit nicht mehr :cry:

Jetzt muss gezaubert werden :stupid:


Zitat:

Zitat von mkinzler (Beitrag 1200277)
SQL-Code:
select
    <Feldliste>
from
    <SP-Name> ( :Param1, ...)
where
    <Bedingung>;

Öhm, was ist die Feldliste? :oops::oops:

Grüße, Messie

mkinzler 23. Jan 2013 20:37

AW: Report erstellen - wie Query gestalten
 
Die Felder, die man abfragen will

Hansa 23. Jan 2013 21:07

AW: Report erstellen - wie Query gestalten
 
Zitat:

Zitat von messie (Beitrag 1200269)
...Ja. So als würde der Report zwar wissen, wieviele Einträge in der Query stecken, aber immer nur Zeile 1 ausgeben.

Das ist doch klar. Der Report muss das DataSet kennen. Also so etwas :

Delphi-Quellcode:
qrDruck.DataSet := DS; // DS aus DataModule, im FormCreate/Show
Dann muss der BandType noch auf rbDetail eingetsellt sein. Ansonsten kommt nur ein DS Zurück.

messie 24. Jan 2013 09:23

AW: Report erstellen - wie Query gestalten
 
Zitat:

Zitat von Hansa (Beitrag 1200342)
Zitat:

Zitat von messie (Beitrag 1200269)
...Ja. So als würde der Report zwar wissen, wieviele Einträge in der Query stecken, aber immer nur Zeile 1 ausgeben.

Das ist doch klar. Der Report muss das DataSet kennen. Also so etwas :

Delphi-Quellcode:
qrDruck.DataSet := DS; // DS aus DataModule, im FormCreate/Show
Dann muss der BandType noch auf rbDetail eingetsellt sein. Ansonsten kommt nur ein DS Zurück.

Code:
  DM.ReportQuery.SQL.Clear;
        //s := 'SELECT * FROM AUSWERTUNG(17)';
        s := 'SELECT * FROM TABLE WHERE ITEM_ID = 17';
        DM.ReportQuery.SQL.Add(s);
        DM.ReportQuery.open;



        DBReport.QRDBText5.DataSet := DM.ReportQuery;
        DBReport.QRDBText5.DataField := 'SERIAL';
        DBReport.QRDBText1.DataSet := DM.ReportQuery;
        DBReport.QRDBText1.DataField := 'ID';

        DBReport.DataReport.Prepare;
        DBReport.DataReport.Preview;
So sieht das bei mir aus - auch das Band ist ein Detailband. Heute bekomme ich auch nur noch die erste Zeile :shock:

Übergebe ich exakt diese Query zur Entwurfszeit an die IBCQuery und öffne den Preview des Reports ist alles da :roll:

Wenn ich den Report ohne eine Änderung öffne klappt es auch. Sobald ich die Zuweisung an die QRDBText-Felder einsetze klappt es nicht mehr.
Hängen da noch Nebenbedingunen dran?

Danke, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Seite 2 von 3     12 3      

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