View: Wie Datensätze anzeigen, wenn bei denen ein bis vier Termin-Felder nicht gefüllt sind - abhängig von dem Feld "Anzahl_Termine"?

R

Ich habe ein Feld "Anzahl_Termine". Darin stehen die Zahlen 1 oder 2 oder 3 oder 4.

Außerdem habe ich die Felder Termin1, Termin2, Termin3 und Termin4.

Wenn nun z.B. Anzahl_Termine = 3 sollen (nur) Datensätze angezeigt werden, bei denen nicht drei der vier Terminfelder gefüllt sind.

Ich brauche wohl in der View ein Berechnungsfeld, das "if" verschachtelt oder geht es einfacher?

Any ideas?

Grüße
Rembert

Ninox Profile

Hallo Rembert, man könnte in der Ansicht über "Spalte einblenden" eine Funktion mit unten stehendem Code erstellen und dann diese Spalte nach true oder false filtern.

 

let myTZ := if Termin1 and Termin2 and Termin3 and Termin4 then 4 else
   if Termin1 and Termin2 and Termin3 then 3 else
      if Termin1 and Termin2 then 2 else
         if Termin1 then 1 else 0 end
      end
   end
end;
if myTZ < Anzahl_Termine then true else false end

 

Man könnte allerdings darüber nachdenken, die Termine in eine Untertabelle zu schreiben statt mit 4 Datenfeldern zu arbeiten, die nicht immer benötigt werden. Das würde auch viele Auswertungen erleichtern. Nur so als Anregung. 

 

R

Hallo Copytexter,

super, danke. Ich hatte es dann (über ein Hilfsfeld) so gelöst:

let vFertig := 0;
if 'Termin1' != null then 
vFertig := vFertig + 1
end;
if 'Termin2' != null then
vFertig := vFertig + 1
end;
if 'Termin3' != null then
vFertig := vFertig + 1
end;
if 'Termin4' != null then
vFertig := vFertig + 1
end;
if vFertig = 'Anz_Termine' then
"fertig"
else
"unvollständig"
end

Und dann View mit Filter nach "unvollständig".

Deine Lösung ist eleganter. Und ja, eine Tabelle ist immer besser.

Bei meiner Lösung habe ich übrigens nicht verstnaden, warum

vFertig := vFertig + 1

funktioniert und

vFertig + 1

nicht funktioniert.

R

PS: Allerdings ist es bei meiner Lösung egal, in welcher Reihenfolge die Termine gefüllt werden. Und das passt hier besser auf den Sachverhalt, der dahinter steht. Die Reihenfolge ist nämlich unbekannt. 

Ninox Profile

Ja, ich war davon ausgegangen, dass die Felder zumindest der Reihenfolge nach gefüllt würden. Wenn man auch da flexibel sein will, würde ich nochmal anregen, die Termine in einer Untertabelle statt in Einzelfeldern zu erfassen. Dann spielen weder Anzahl noch Reihenfolge eine Rolle und solche Abfragen wären mit einem einfachen cnt() erledigt.

Antworten