![]() |
Datenbank: Interbase • Version: 6.0 • Zugriff über: IBX
Ich möchte nur einen Report!!!
Hallo zusammen,
mein Problem besteht darin, dass ich eine Tabelle mit Haushaltsstellen(HhST) habe und eine Haupttabelle, in der Einnahmen zu den HhSt stehen. Nun möchte ich die Einnahmen HhSt-weise zusammenaddieren und mein Report soll dann wie folgt aussehen: HhST 1 enthält 100,00 Euro HhSt 2 enthält 150,00 Euro etc. Im Moment habe ich nur eine Lösung, dass für jede HhSt ein Report gedruckt wird.
Delphi-Quellcode:
Im Rave-Report werden dann die Beträge aus der Tabelle zusammenaddiert.
// Auszug mit etwas vereinfachter SQL-Abfrage
// Report ausführen DataModule2.IBTableHhst.First; While not DataModule2.IBTableHhst.Eof do begin HHSTNR := DataModule2.IBTableHhst.FieldByName('HHST').AsString; DataModule2.IBQueryMonatsabschluss.Active := false; DataModule2.IBQueryMonatsabschluss.SQL.Clear; DataModule2.IBQueryMonatsabschluss.SQL.Text := 'SELECT STRBETRAG FROM TMAIN WHERE HHST = ' + QuotedStr(HHSTNR); DataModule2.IBQueryMonatsabschluss.Active := true; DataModule2.RvProjectMonatsabschluss.ExecuteReport('Report1'); DataModule2.IBTableHhst.Next; end; Kann mir jemand helfen? |
Re: Ich möchte nur einen Report!!!
Ich verstehe nicht so recht, was Du hast und was Du willst.
Könntest Du mal ein Beispiel zusammenstellen, das zeigt, was in deinen beiden Tabellen drin ist, und wie es nachher aussehen soll? |
Re: Ich möchte nur einen Report!!!
Hallo Glühwürmchen,
in der Tabelle HHST habe ich die Spalten HHST und BEZEICHNUNG_DER_HHST. Als Daten sind dann z. B. enthalten : HHST >>> BEZEICHNUNG_DER_HHST 1234 >>> Verwaltung 1236 >>> Kopierkosten 1258 >>> sonstige Umlagen etc. in der Tabelle MAIN habe ich die Spalten HHST (über die verknüpfe ich die Tabellen), BETRAG und USER (ist nur ein Auszug aus den Tabellen). Als Daten sind dann z. B. enthalten : HHST >>> BETRAG >>> USER 1234 >>> 100,00 Euro >>> X 1236 >>> 050,00 Euro >>> Y 1234 >>> 010,00 Euro >>> Z 1258 >>> 020,00 Euro >>> X 1258 >>> 050,00 Euro >>> y etc. Bislang gehen ich jetzt angefangen bei der HHST 1234 die Tabelle MAIN durch, suche da die Beträge raus und addiere sie im Report. Ich bekomme aber für jede HHST einen Report. Ich brauche aber einen Report, in dem steht HHST 1234 hat 110,00 Euro, HHST 1236 hat 50,00 Euro etc. Ich hoffe ich, mein Problem ist verständlicher für Dich geworden?! |
Re: Ich möchte nur einen Report!!!
Also ich würde die Query wie folgt abändern:
'Select A.HHST, B.STRBETRAG from HhST A join TMAIN B on A.HHST=B.HHST' und fertig. Dadurch ersparst Du Dir das Durchlaufen der HhST - Tabelle. Hendrik |
Re: Ich möchte nur einen Report!!!
Hallo,
ich melde mich nach Krankheit wieder zurück. Danke Hendrik, ist eine Vereinfachung, aber sie löst mein Problem nicht ganz. Ich benötige Zwischensummen der einzelnen HHST und dies ist (zumindest mit meinen bescheidenen Verstand) nicht möglich?! |
Re: Ich möchte nur einen Report!!!
Hallo Sorry,
habe ein SUM vergessen
SQL-Code:
so sollte es aber gehen.
Select A.HHST, SUM(B.STRBETRAG) as STRBETRAG from HhST A
join TMAIN B on A.HHST=B.HHST Hendrik |
Re: Ich möchte nur einen Report!!!
noch was vergessen
SQL-Code:
Select A.HHST, SUM(B.STRBETRAG) as STRBETRAG from HhST A
join TMAIN B on A.HHST=B.HHST Group by A.HHST |
Re: Ich möchte nur einen Report!!!
Danke für Deine super schnelle Antwort Hendrik, bei mir verursacht die Änderung einen Dynamic SQL Error.
SQL error code = -104, invalid Column reference! Meine Abfrage sieht so aus:
Delphi-Quellcode:
// Query für Report und Report ausgeben
DataModule2.IBQueryMonatsabschluss.Active := false; DataModule2.IBQueryMonatsabschluss.SQL.Clear; DataModule2.IBQueryMonatsabschluss.SQL.Text := 'select A.HHST, B.USERNAME, B.NAME, B.VERWENDUNG, B.Datum, SUM(B.SSTRBETRAG) as STRBETRAG from THHST A join TMAIN B on (A.HHST = B.HHST) and (B.DATUM >= ' + QuotedStr(DateMin) + ') and (B.DATUM < ' + QuotedStr(DateMax) + ') and (B.STORNO = ' + QuotedStr(Storn) + ') group by A.HHST'; DataModule2.IBQueryMonatsabschluss.Active := true; DataModule2.RvProjectMonatsabschlussUser.ProjectFile := RepPath + '\' + RepMU; DataModule2.RvProjectMonatsabschlussUser.ExecuteReport('Report1'); |
Re: Ich möchte nur einen Report!!!
Hallo, Dein jetziges select sieht ja auch ganz anders aus als Dein erstes!
Da war nur von HHST und der Summe von SSTRBetrag die Rede. Wenn Du jetzt noch all die anderen Angaben drin haben willst, mußt Du diese auch in die Group BY Klausel aufnehmen. Also z.B.
SQL-Code:
Hendrik
...
Group by A.HHST, B.USERNAME, B.NAME, B.VERWENDUNG, B.Datum |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 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