![]() |
In Fastreport Null-Werte ausgeben
Guten Tag Delphianer,
ich möchte in Fastreport den Wert einer DB-Spalte auf NULL prüfen. Folgender Quellcode funktioniert: Das Feld "AUFGENOMMENAM" ist ein Date-Feld.
Delphi-Quellcode:
Wie kann ich nun aber abfragen ob der Wert NULL ist?
if FormatDateTime('yyyy', <frxDBBrdDaten."AUFGENOMMENAM">) <> '1899' then
begin Memo31.Text := 'Aufgenommen am: ' + FormatDateTime('dd.mm.yyyy' <frxDBBrdDaten."AUFGENOMMENAM">); end else Memo31.Text := 'Aufgenommen: - unbekannt';
Delphi-Quellcode:
liefert einen Fehler.
if <frxDBBrdDaten."AUFGENOMMENAM">) IS NULL
Mit Gruß HPB |
AW: In Fastreport Null-Werte ausgeben
Versuch es dochmal mit
Delphi-Quellcode:
Alternativ kannst du auch einfach im SQL was machen...
if frxDBBrdDaten.FieldByName('AUFGENOMMEN').AsString = '' then
Begin // Mach was End; wie wäre es mit
Code:
und dann Prüfst du auf den Wert von Spalte istLeer ob diese 1 oder 0 ist.
Select *, Case when AUFGENOMMEN is null then 1 else 0 as istLeer from Tabelle
|
AW: In Fastreport Null-Werte ausgeben
Zitat:
Select und Case gehen nicht, da dies Feld Teil einer größeren Abfrage, die über mehre Tabellen geht, ist. Aber es muß doch möglich sein, in Fastreport das Feld auf den Wert NULL zu prüfen. Wenn im Datumfeld kein Wert steht, dann gibt Fastreport immr '30.12.1899' zurück. Vielleicht weis ja noch jemand eine Lösung. Mit freundlichem Gruß HPB |
AW: In Fastreport Null-Werte ausgeben
Oder eine User-Function basteln, die das Ganze übernimmt.
Delphi-Quellcode:
type
THackfrxCustomDBDataSet = class(TfrxDataSet) private FFields: TStringList; end; function TFormValidierung.IsDBFieldNull(index: Integer): Boolean; begin Result := TField(THackfrxCustomDBDataSet(frxDBDatasetAuftrag).FFields.Objects[index]).IsNull; end; ... frxReport.AddFunction('function IsDBFieldNull(index: Integer): Boolean', 'User Function',''); ... function TForm.frxReportUserFunction(const MethodName: String; var Params: Variant): Variant; begin inherited; Result := -1; if (MethodName = 'ISDBFIELDNULL') then begin Result := IsDBFieldNull(Integer(Params[0])); end; end; ... |
AW: In Fastreport Null-Werte ausgeben
Zitat:
Code:
heißt die Abfrage in FR.
if <Table1."Field1"> = Null
|
AW: In Fastreport Null-Werte ausgeben
Jap.
Code:
heißt die Abfrage in FR.[/QUOTE]
if <Table1."Field1"> = Null
Guten Tag MrSpock, die Abfrage wirft keinen Fehler. Trotzdem erkennt FR nicht, das in der DP-Spalte kein Wert steht. Ich habe nachgeschaut, der Wert der Spalte ist mit NULL gekennzeichnet. Kann es sein das FR hier einen Fehle hat? Mit Gruß HPB |
AW: In Fastreport Null-Werte ausgeben
Zitat:
|
AW: In Fastreport Null-Werte ausgeben
Vielen Dank an alle für die rasche Hilfe.
Mit "NIL" klappt es wirklich. Ein erfolgreicher Tag. Wieder etwas dazu gelernt. Mit gruß HPB |
AW: In Fastreport Null-Werte ausgeben
Wenn es mit Nil klappt, ist alles gut. Ich kann es von hier gerade nicht testen.
Laut ![]() |
AW: In Fastreport Null-Werte ausgeben
Wir hatten vor Kurzem das selbe Problem und bei uns ging =NULL auch nicht und sowas wie VarIsNull gab es wohl nicht.
FastReport 4.10 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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