Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Berechnetes Feld im Unterbericht im Hauptbericht verwenden

Begonnen von risingstar, November 20, 2025, 17:27:52

⏪ vorheriges - nächstes ⏩

risingstar

Hallo Community,
ich habe einen Bericht mit einem Unterbericht (urep). Im urep sind zwei Datensätze mit einem Feld Fläche und ein berechnetes Feld mit =[Fläche] * Kosten als Steuerelementinhalt. Über das berechnete Feld bilde ich die laufende Summe und lasse diese im Berichtsfuß anzeigen. Alles richtig soweit.

Jetzt möchte ich diese Summe im Hauptbericht weiter verwenden. Im Steuerelement habe ich dazu beim Steuerelementinhalt angegeben =[urep].[Bericht]![Text33]. Text33 ist der Name des Felds mit der Summe im Unterbericht.

In der Ansicht des Berichts wird jetzt aber nicht die Summe des urep angezeigt, sondern nur der Wert des 1. Datensatzes des Unterberichts.
Und da bin ich am Ende mit meiner Weisheit.
Lg Friedrich

Normalo0815

Hallo risingstar!

Zitat von: risingstar am November 20, 2025, 17:27:52Über das berechnete Feld bilde ich die laufende Summe und lasse diese im Berichtsfuß anzeigen

Probier mal im Unterbericht-Berichtsfuß nicht eine laufende Summe (betreffende Eigenschaft auf NEIN stellen), sondern ein normales Textfeld mit Steuerelementinhalt:

= Summe( [Fläche] * Kosten )
Freundliche Grüße
Normalo0815   :)

risingstar

#2
Hallo Normalo 0815,
danke für die Hilfe, aber das funktioniert nicht. Da meckert er schon, dass er das Feld nicht findet und zeigt dann den Wert des letzten Datensatzes an.
Die laufende Summe im urep wird richtig berechnet. Nur der Übertrag in den Hauptbericht fuktioniert nicht.

Normalo0815

Hallo risingstar,

die Tabellenfelder [Fläche] und [Kosten] müssen auch im Unterbericht als gebundene Textfelder vorhanden sein, damit die Summe()-Funktion darauf zugreifen kann. Wenn diese Felder nicht angezeigt werden sollen, dann können diese in den Eigenschaften als "nicht sichtbar" eingestellt werden.
Freundliche Grüße
Normalo0815   :)

Bitsqueezer

Hallo,

ein Bericht ist kein Formular. Du mußt immer im Hinterkopf halten, daß Daten ad hoc erzeugt und sofort gedruckt werden. Was einmal gedruckt ist, ist bereits auf Papier und kann nicht mehr verändert oder gelesen werden.
Das gleiche gilt, wenn Du einen Bericht nur anzeigst, der "Drucker" ist hier der Bildschirm.

Wenn Du also die Endsumme der Daten aus dem Unterbericht im Hauptbericht brauchst, dann baue in die Hauptbericht-Abfrage eine Unterabfrage ein, die Dir die Summe liefert. Die kannst Du dann im Hauptbericht in einer Textbox ganz normal ausgeben.

Eine Unterabfrage ist ein SELECT in der Feldaufzählung.

Also:
SELECT ID_Haupttabelle
      , Feld1, Feld2
      , (SELECT SUM(x) FROM MeineUntertabelle AS U
        WHERE H.ID_Haupttabelle = U.ID_Haupttabelle) AS SummeUnterbericht
FROM MeineHaupttabelle AS H

Das mußt Du natürlich an Deine Gegebenheiten anpassen.

Gruß

Christian

risingstar

@ Normalo0815:
In meinem urep habe ich jetzt nur die Fläche x 10 berechnet und über laufende Summe aufsummiert. Die Fläche als auch das berechnete Feld sind Teil des urep. Keine Kosten die von anderwo her kommen. Im urep wird der richtige Wert angezeigt. Im Hauptbericht wird wieder nur der Wert des ersten Datensatzes angezeigt. Die Datensatzherkunft des urep ist eine Tabelle mit Kundennummer, Fläche, Datum Beginn und Datum Ende. Alle Datensätze werden im urep richtig angezeigt und berechnet.

@Bitsqueezer:
Meines Wisens nach kann im Hauptbreicht ein Feld erstellt werden, das die Daten aus einem Unterbericht enthält. Zumindest lässt sich so ein Feld mit dem Assistenten erstellen. Bei den Kosten funktioniert das auch. Die laufende Summe der Kosten wird im Hauptbericht richtig angezeigt und nicht nur der Wert des ersten Datensatzes.

Normalo0815

#6
@risingstar:
Zitat von: risingstar am November 22, 2025, 10:24:41Im Hauptbericht wird wieder nur der Wert des ersten Datensatzes angezeigt.

Vermutlich ist das UFO sowie das Textfeld im Hauptformular in einem Bereich (ev. Detailbereich) platziert. Bei deiner Lösung aus #1 muss das Textfeld im Hauptformular im Berichtsfuß platziert sein, damit der korrekte Wert übergeben wird (das UFO im Detailbereich belassen).

Mit meiner Lösung aus #1 mit der Aggregatfunktion (Summe()) würde es auch im Detailbereich richtige Werte anzeigen. Wenn irgendein Feld dabei nicht gefunden wurde (dein Beitrag #2), dann gibt es irgendwo einen Schreibfehler oder eine Verwechslung Textfeld- zu Tabellendfeldname.

BTW: Steuerelementnamen im Formular sollten immer unterschiedlich zu Tabellenfeldnamen und anderen Datenbankobjekten sein.
Freundliche Grüße
Normalo0815   :)

risingstar

Hallo Normalo0815,
Deine Vermutung war richtig. Alles war im Detailbereich des Hauptberichts. Nach übertragung in den Berichtsfuß funktioniert die Sache. Vielen Dank