Datensätze eines Monats aus Tabelle ausdrucken; Auswahl über Auswahlfeld
Ich möchte aus der Tabelle Fahrten (Feld Datum) alle Datensätze ausdrucken, die dem Monatsnamen aus dem Auswahlfeld "Welcher Monat" in der Tabelle Druckpositionen entspricht.
Ohne die Bedingung zwischen where und do wird alles ausgedruckt. Mit der (falschen ??) Bedingung wird nichts ausgedruckt. Das Problem liegt zwischen den Pfeilen. Kann mir jemand helfen??
let myB := Nr;
for ii in select Fahrten where
>>>>>> monthName(Datum) = Druckpositionen.Drucktabelle.'Welcher Monat' <<<<<<<<<
do
let NT := (create Druckpositionen);
NT.(Drucktabelle := myB);
NT.(Fahrten := ii)
end;
printRecord(this.Nr, "Monatsabrechnung");
delete (select Druckpositionen)
4 Antworten
-
Versuch doch mal, den Vergleichswert des Auswahlfeldes vorher als Text in einer Variablen zwischenzuspeichern:
let myMonat := text(Druckpositionen.Drucktabelle.'Welcher Monat')
... select Fahrten where monthName(Datum) = myMonat
...
-
Super, vielen Dank für die schnelle Antwort. So sieht's jetzt aus und funktioniert auch nicht.
Ich werde noch......
let myMonat := text(Druckpositionen.Drucktabelle.'Welcher Monat');
let myB := Nr;
for ii in select Fahrten where monthName(Datum) = myMonat do
let NT := (create Druckpositionen);
NT.(Drucktabelle := myB);
NT.(Fahrten := ii)
end;
printRecord(this.Nr, "Monatsabrechnung");
delete (select Druckpositionen) -
Hoppala, gut, wenn es eine Referenz gibt, in der man mal schnell nachschauen kann ... ;)
Die Funktion 'montName()' erwartet die Nummer des Monats als Parameter, kein Datum. Es müsste also so lauten:
... where monthName(month(Datum)) ...
Wobei sich in einem solchen Fall natürlich anbietet, gleich mit den numerischen Werten zu arbeiten (sofern die Monatsnamen des Auswahlfeldes in der richtigen Reihenfolge erfasst wurden, also Januar = 1, Februar = 2 usw.), also
let myMonat := number('Welcher Monat')
... where month(Datum) = myMonat
-
Super, das war's. Vielen Dank!!
Content aside
- vor 5 JahrenZuletzt aktiv
- 4Antworten
- 1565Ansichten