Seite 1 von 1

Bedingung im Bericht

Verfasst: Mi 4. Mai 2016, 15:22
von OrionVII
Hallo zusammen,

habe eine kleine Rechnungs-DB erstellt. Darin auch ein Bericht, der eben die Rechnung darstellt. Im Bericht ein Feld "MwSt". Es kann sein, dass bei einer Rechung keine MwSt ausgewiesen werden muss, dann steht im Feld 0,00€. Wenn dieses Feld also 0,00€ anzeigt, möchte ich im Berichtsfuß ein Textfeld sichtbar machen.
Ich dache an sowas:
IF(VALUE([MwSt]>0);"wahr";"falsch")

Leider ziemlich erfolglos. Der Wert bleibt immer bei wahr egal ob MwSt 0 oder >0 ist.

Wer kann helfen?

Re: Bedingung im Bericht

Verfasst: Mi 4. Mai 2016, 18:21
von gogo
für den eingebauten Oracle-Report Builder kann ich Dir nicht helfen - die Bedingungen dort waren mir immer zu strange. Ich vermute aber, dass es geht.

Wenn Du die BaseReportExtension (Rechnungen sind die Spezialität dieser Extension) verwendest:

Mach' in der Rechnungsvorlage dort wo das Textfeld sein soll eine Tabelle mit einer Zelle. Nenne die Tabelle z.B. MwStTxtFeld
Leg' in der Berichtsvorlage eine "benutzerdefinierte Eigenschaft" an mit dem
Namen: "MwStTxtFeld" und dem
Wert: SELECT CASE WHEN "MwSt" = 0 THEN '' ELSE 'Text hier' END from "Rechnungsabfrage" WHERE ...

Dann sollte in dieser Tabellenzelle "Text hier" stehen, wenn die MWSt >0 ist. Kannst Du vorher auch testen indem Du das SQL-Statement unter "Extras/SQL" oder im Abfrageeditor ausprobierst.

Re: Bedingung im Bericht

Verfasst: Mi 4. Mai 2016, 21:08
von RobertG
Hallo OrionVII,
OrionVII hat geschrieben: IF(VALUE([MwSt]>0);"wahr";"falsch")
Ich würde zuerst den Code verkürzen:

Code: Alles auswählen

IF([MwSt]>0;"wahr";"falsch")
Dann würde ich im Berichtsfuß testweise auch einmal MwSt abfragen.
Ich habe das gerade gemacht und kam genau zu dem gewünschten Ergebnis: Wenn der Wert 0 war, dann wurde "falsch" angezeigt.

Gruß

Robert

Re: Bedingung im Bericht

Verfasst: Mi 4. Mai 2016, 23:16
von gogo
... du kannst das "CASE WHEN "MwSt" = 0 THEN '' ELSE 'Text hier' END" auch als Feld in Deine Abfrage einbauen - blendet zwar das Textfeld nicht aus, aber gibt dann zumindest den gewünschten String aus.