Seite+Ansicht mit Formel -> Wie referenziere ich in meiner Formel auf Feld
Hallo zusammen,
folgende Herausforderung des Tages:
Eine Seite hat ein Dropdown mit den Werten "Dieser Monat", "Letzter Monat", "Dieses Jahr", "Letztes Jahr".
Ebenso hat die Seite eine Ansicht. In dieser Ansicht gibt es Spalten die berechnet werden. Folgendes ist die Formel für "vorletzter Monat". Da habe ich nun 4 Ansichten gebaut, die Formeln einzeln angepasst und lasse diese nun einblenden auf Basis des Dropdowns. Das kann ja nicht der Weisheit letzter Schluss sein.
Wie kann ich in der Formelspalte innerhalb der Ansicht auf das Dropdown auf der Seite referenzieren?
Besten Dank!
let me := this;
let jahr := year(today());
let monat := month(today()) - 2;
if monat < 1 then
jahr := jahr - 1;
monat := monat + 12
else
monat := monat
end;
sum((select Belege
where Steckbrief = me and year(Monate.Startdatum) = jahr and
month(Monate.Startdatum) = monat ).A) /
sum(TabelleB.B)
4 Antworten
-
Servus !
Also sinngemäß (wenn ich alles richtig verstehe) gehe ich das bei mir in etwa so an:
Um in EINER Ansicht mit Aufträgen entweder alle, oder nur die für heute, morgen, übermorgen, etc. geplanten Aufträge anzuzeigen und es somit jetzt im einfachsten Fall erst einmal nur ein Filterfeld, also ein Kriterium gibt (und wenn man mal vom 23.05.24 als "Heute" ausgeht)...
...dann funktioniert das z.B. problemlos so - vorausgesetzt es gibt dazu wie in meinem kleinen Beispiel in der Auftragstabelle ein berechnetes Feld "In Tagen" mit der Differenz zwischen aktuellem Tagesdatum und dem geplanten Auftragsdatum. Script, bzw. Formel in der Ansicht...
if 'Geplant für Datum' then let myD := number('Geplant für Datum') - 1; select Auftrag where 'In Tagen' = myD else select Auftrag end
Kann man natürlich ausdehnen auf weitere (Filter-) Kriterienfelder, wie z.B. noch nicht erledigte Aufträge, nur Aufträge in einem bestimmten Gebiet, etc.
Ist dann da natürlich etwas mehr "Gefummel", bleibt aber problemlos bei einer einzigen Ansicht für unterschiedliche Filter und / oder Kombinationen. Script in der Ansicht in diesem Fall...
let myG := 'Geplant für Gebiet'; if not 'Geplant für Datum' and not 'Geplant für Gebiet' then select Auftrag else if 'Geplant für Datum' then let myD := number('Geplant für Datum') - 1; if not 'Geplant für Gebiet' then select Auftrag where 'In Tagen' = myD else select Auftrag where 'In Tagen' = myD and Gebiet = myG end else if 'Geplant für Gebiet' then select Auftrag where Gebiet = myG end end end
... ergibt dann als Resultat...
Vielleicht hilft's ja als kleine Anregung irgendwie schon ein wenig weiter.
Grüße
Horst
-
ich würde auch Horsts Ansatz verfolgen, alle Zeitbereiche in einer einzigen Ansicht anzuzeigen und diese entsprechend zu filtern. Eine Möglichkeit wäre, mit Datumswerten zu arbeiten:
let vonD := date(1970, 1, 1);
let bisD := date(2050, 12, 31);
switch text(AUSWAHLFELD) do
case "Dieser Monat":
(
vonD := date(year(today()), month(today()), 1);
bisD := date(year(today()), month(today()) + 1, 0)
)
case "Letzter Monat":
(
vonD := date(year(today()), month(today()) - 1, 1);
bisD := date(year(today()), month(today()), 0)
)
case "Vorletzter Monat":
(
vonD := date(year(today()), month(today()) - 2, 1);
bisD := date(year(today()), month(today()) - 1, 0)
)
case "Dieses Jahr":
(
vonD := date(year(today()), 1, 1);
bisD := date(year(today()), 12, 31)
)
case "Letztes Jahr":
(
vonD := date(year(today()) - 1, 1, 1);
bisD := date(year(today()) - 1, 12, 31)
)
end;
select Belege where Datum >= vonD and Datum <= bisD -
Hallo zusammen,
danke für euren Input. Ich habe scheinbar mein Problem noch nicht genau erklärt.
Ich möchte in der Zeile meine Steckbriefe aufgeführt haben und dann in der jeweiligen Zeile von den mit den Steckbriefen verknüpften Belegen die Summe bilden.
Oder in Horsts Beispiel: Ich möchte z.B. jedes Projekt sehen und dann die Summe der Arbeitsstunden der in den diese Woche geplanten Aufträgen angezeigt bekommen.-----
Ich habe eine Ansicht die wird erzeugt mit:select Steckbriefe
Innerhalb dieser Ansicht habe ich Spaltenformeln die nun folgendes machen
let me:=this; sum((select Belege where Steckbrief = me and Monat = DROPDOWNFELD).Betrag)
Ich bekomme nur auf die Ebene "Spaltenformel" den Wert "Dropdownfeld" nicht als gültige Variable.
Das Problem tritt auf, da Ninox derzeit noch kein "Gruppieren nach A und dann nach B" erlaubt.
Content aside
- Status Answered
- vor 5 MonatenZuletzt aktiv
- 4Antworten
- 78Ansichten
-
3
Folge bereits