![]() |
Im FastReport eine Datensatz mit <null>-Werten ausgebe
Hallo zusammen,
in einem FastReport gebe ich in einem GroupFooter verschiedene Werte aus. Dabei kann es vorkommen, dass eine komplette Reihe bei der SQL-Abfrage keine Werte findet und nur NULL als Ergebnis ausgibt. Im Moment ist es so, dass dann diese Reihe im Report nicht angezeigt wird. Ich möchte diese Reihe aber anzeigen. Für jedes NULL-Ergebnis soll dann 0,00 stehen. Wie und was muss ich einstellen, dass die leere Reihe angezeigt wird ? |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Ersetzt die werte am Besten in der Abfrage
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Hallo Markus,
danke erstmal für Deine Antwort. Es gibt dabie nur leider ein Problem, es ist eine variable Select-Abfrage. Das soll heißen, genachdem welche Werte vorher im Programm ermittelt wurden, ändert sich die Select-Abfrage in den Spalten, die ermittelt werden sollen. Dabei gibt es nur zwei Zustände, entweder sind alle 12 Spalten mit <null> oder in allen Spalten steht eine Zahl drin. Deshalb hatte ich nach einem Weg über FastReport gesucht. |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
FastReport reagiert leider recht empfindlich auf NULL-Werte. Deshalb sorge ich in der Abfrage durch IIF() Konstrukte für "richtige" Werte
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Das muss ich mir nochmal genauer anschauen bei mir. Danke erstmal für den Hinweis mit IIF-Abfragen. Es ist in meinem Fall doch etwas komplizierter als ich dachte. Ich werde es mir genauer anschauen, wenn ich etwas wacher bin.
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Wenn du noch mitgeteilt hättest welche DB dahinter liegt ...
es gibt da nämlich das nette
SQL-Code:
das hilft dir, die NULL-Werte mit einem definierten Inhalt zu füllen.
COALESCE( Wert1, Wert2, ... )
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Hallo Sir Rufo,
danke erstmal für Deine Anwtort. Es ist eine Firebird Datenbank, woraus sich der Report die Daten zieht. |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Oder halt IIF(), NullIf(), Case..When, ...
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Guten Morgen...
[OT] genau aus diesem Grund mag ich keine NULL Werte :zwinker: [/OT] Zwischenfrage: wie soll das optisch aussehen ? Quasi die Reihen mit NULL als Lücken ? Idee: Jeder DS hat doch eine ID (oder einen Wert an dem du die DS unterscheiden Kannst) welche eindeutig ist oder ? Lad die ID mit, damit du auch einen DS für die NULL in der Ergebnismenge bekommst und zeig die ID nicht an. :hi: |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Die Null-Werte werden ja nur dann angezeigt, wenn die Select-Abfrage kein Ergebnis bringt. Die Select-Abfrage summiert verschiedene Werte zusammen, die dann wiederum in einem Endergebnis im Report angegeben werden. Das ganze mache ich 6 mal. So kommt jetzt bei einer der 6 Abfragen kein Ergebnis raus, so soll die leere Zeile im Report mit 0,00 angezeigt werden.
Hier ein konkretes Beispiel :
SQL-Code:
Wie bekomme ich ein Ergebnis mit 0,00 bei den Spalten mit SUM, wenn die WHERE-Clausel nicht zutrifft ?
select T.KTO, T.KTOTEXT, sum(T."1") as Q1_1, sum(T."2") as Q1_2, sum(T."3") as Q1_3,
sum(T."4") as Q1_4, sum(T."5") as Q1_5, sum(T."6") as Q1_6, sum(T."7") as Q1_7, sum(T."8") as Q1_8, sum(T."9") as Q1_9, sum(T."10") as Q1_10, sum(T."11") as Q1_11, sum(T."12") as Q1_12 from TEMP as T where KTOARTNR = :KTOARTNR group by T.KTO, T.KTOTEXT; |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
verstehe ich das richtig:
du machst 6 Abfragen, jede Abfrage liefert 1 DS, im Report willst du 6 Zeilen obwohl 1 Abfrage "leer" ist. Diese Zeile soll dann jeweils 0,00 in jedem Feld enthalten. Du übergibst dem Report 6 Datenmengen a 1 DS ? |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Zitat:
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Liefert die "leere" Abfrage einen Datensatz mit NULL in den Summen oder ist der leere Datensatz nicht vorhanden ?
ist der Datensatz da und leer... Zitat:
:hi: |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Liste der Anhänge anzeigen (Anzahl: 1)
Im Report gibt es keine IIF-Abfragen. Dort werden die Werte 1:1 übergeben, so wie Sie im Datensatz stehen. Im Anhang ist ein Bild, was mir IBExpert und auch mein Programm zurückgibt, wennn die WHERE-Clausel kein Ergebnis findet. Aber statt <null> in den Spalten Q1_1 bis Q1_12 soll jetzt dort 0,00 stehen und somit als gültiger Datensatz an den Report übergeben werden.
Edit: Anhang nachgeschoben. |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
wieso denn kein COALESCE ???
![]() btw: ich weiß nicht wie der firebird reagiert, aber bei mysql und mssql liefert sum ein NULL zurück, wenn mind. eine zeile dabei ist, wo ein NULL-Wert vorkommt. Wenn soetwas passiert, dann würde ich immer mit COALESCE arbeiten
SQL-Code:
SELECT SUM( COALESCE( FooField, 0 ) ) FROM FooTab
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Zitat:
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Zitat:
Memo -> Bearbeiten - > Ausdruck einfügen -> im Ausdruckseditor Reiter Daten -> runterblättern bis Andere -> Ausdruck IIF wählen und ausfüllen. Dann wird der Inhalt des Memos abhängig einer Bedingung angezeigt. IIF(Bedingung,Wahr Wert,Falsch Wert) |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Zitat:
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
wenn ich den IBExpert Screenshot richtig interpretiere hast du gar keinen Datensatz. Die Datenmenge ist leer. IBExpert zeigt immer 1 Zeile an.
Hättest du einen Datensatz würde zumindest in KTO was drinstehen. Trifft diese Bedingung (aus deiner SQL) nicht zu hast du keinen Datensatz. Wie willst du was auswerten, was nicht da ist ? :gruebel: Da mußt du mit der Datenmenge tricksen. Wenn nach der Abfrage die Datenmenge IsEmpty ist, fügst du einfach einen ein der in den Feldern 0,00 stehen hat. |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
jo, bei gar nix hilft auch coalesce nicht weiter :mrgreen:
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Ok, das habe ich verstanden.
Ich habe den Report aus einem bestehenden Programm übernommen. Der einzigen drei Unterschiede sind, der FastReport ist neuer und die Query's werden im Sourcecode zugeordnet und nicht fest wie vorher und das ganze läuft jetzt über Firebird und nicht über BDE. |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Zitat:
Weil dann würde ich sagen, fehlt da was im Aufbau der TEMP-Tabelle :mrgreen: |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Dann trickse doch im Sourcecode, damit dein Report Datensätze bekommt. Den Report brauchst du dann nicht verändern.
|
Re: Im FastReport eine Datensatz mit <null>-Werten aus
So, ich habe das Problem gelöst. Danke für Eure Hilfe. Ich habe erst jetzt festgestellt, dass ich einem Band einen falschen Dataset zugeordnet hatte. Hinzu kam noch, das ich ein Dataset vergessen hatte beim übernehmen. :wall:
Jetzt funktioniert alles so wie ich will und ich bin Happy :firejump: |
Re: Im FastReport eine Datensatz mit <null>-Werten aus
Na, besser ein eigener Fehler, als wenn das Grundsystem ne Macke hat :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 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