Select-Zugriff auf Datumfeld
Hallo miteinander,
ich erstelle in einem Drucklayout mit der select-Methode mehrere Textfelder, die alle prima funktionieren, nur wenn ich Werte aus einem Datumsfeld holen will, bekomme ich kein Ergebnis. Im Editor wird mir kein Fehler angezeigt, das Layoutfeld bleibt einfach leer. Ich verwende diesen Code:
select 'Globale Werte'.'Datum Bescheid'
Wo liegt mein Denkfehler, was ist zu tun, dass ich diese Hürde nehmen kann?
Vielen Dank schon mal,
Th.
7 Antworten
-
Hallo Th., mit "select" greift man auf eine Tabelle zu. Wenn 'Globale Werte' ein Verknüpfungsfeld innerhalb des zu druckenden Datensatzes ist, dann versuch es mal ohne das "select" davor.
-
Hallo Copytexter,
danke dir, aber das Datumsfeld hole ich aus einer anderen Tabelle. Das hätte ich dazu schreiben sollen.
select 'Globale Werte'.'V Name'
==> funktioniert einwandfrei, 'V Name' ist ein Textfeld in der Tabelle "Globale Werte" (nur als Beispiel, da ich das mehrfach mit Feldern der anderen Tabelle mache)select 'Globale Werte'.'Datum Bescheid'
==> funktioniert nicht, 'Datum Bescheid' ist ein Datumsfeld in der Tabelle "Globale Werte"Die Tabelle mit dem Layout ist nicht mit der Tabelle "Globale Werte" verbunden, muss sie ja auch nicht. Aber irgendetwas übersehe ich ... ;-)
Th.
-
Hallo Th,
und wenn du
first(select 'Globale Werte').'Datum Bescheid'
schreibst?
Leo
-
Ach so, und die Tabelle 'Globale Werte' hat nur einen Datensatz? Und das funktioniert (bei 'V Name')? Habe ich so noch nie versucht. Normalerweise gibt "select" ja mehrere Datensätze zurück, weshalb man häufig mit first() gezielt auf den ersten zugreift. Hm, und wenn man einfach mal versucht, das Datumsfeld in Text umzuwandeln?
select 'Globale Werte'.text('Datum Bescheid')
-
Ups ... Ja, Leo, das war auch mein erster Gedanke. Mich hat nur irritiert, dass er schrieb: "select 'Globale Werte'.'V Name' ==> funktioniert einwandfrei".
-
Hallo, das war der richtige Impuls für meinen Neulingskopf! Vielen Dank.
Also,
first()
funktioniert. Und offensichtlich mache ich schon den Fehler, den select-Aufruf ohne Bezug auf einen Datensatz zu nutzen (wie wäre es korrekt gewesen?). Aber in der Tat, habe ich in der Tabelle nur einen Datensatz, wo für mich alle zentral verwendeten "fixen Daten" stehen.Ja, das Datumsfeld in ein Textfeld zu wandeln, hätte sicher funktioniert. Ich wollte aber wissen, was es mit dem Datumsfeld auf sich hat. Nun werde ich das wohl noch mit den anderen Layoutfeldern nachziehen und dort ebenso first() verwenden.
"==> funktioniert einwandfrei" war dann wohl eher ein Glücksfall ...
Ich bin am Lernen, wenn es einen guten Tipp zu dem Thema gibt, dann bin ich sehr froh und dankbar!
Vielen Dank für eure Hilfe, das hat mir sehr geholfen.
Th.
-
Ja, text() hätte in diesem Fall auch funktioniert (hab's ausprobiert). Es ist aber m. E. sinnvoller, überall mit first() zu arbeiten. Denn das Ninox-Verhalten in solchen Fällen ist nicht dokumentiert ("Glücksfall") und kann sich im Zuge der Weiterentwicklung auch mal ändern. Dann funktioniert es auf einmal nicht mehr und man weiß nicht, warum.
Weitere Infos zu "select" finden sich übrigens auch im Handbuch:
https://ninox.com/de/manual/erweiterte-Berechnungen/funktions-und-sprachreferenz
Content aside
- vor 4 JahrenZuletzt aktiv
- 7Antworten
- 771Ansichten