Einzeltage aus Termin für Ansicht
Brauch schon wieder eure Hilfe.
Wie oder warum bekomm ich kein Ergebnis? Die Einzelschritte (Ausgaben passen ja)
aber beim versuch das array zu vergleichen scheitere ich.
(Hab für jeden Arbeitstag eine Ansicht, hier sollen dementsprechend auch die Kunden angezeigt werden wenn der Termin diese Tage beinhaltet )
--- kontrolle wochentag für ansicht----
let suchJahr := Jahr;
let suchKW := KW;
let suchWochentag := date(number(suchJahr), 1, 4) - weekday(date(number(suchJahr), 1, 4)) + number(suchKW) * 7 - 6;
date(suchWochentag)
---- Kontrolle array von Termin -----
for i in select 'Aufträge' where 'Termin lieferung' do
let anfang := date(year(start(i.'Termin lieferung')), month(start(i.'Termin lieferung')), day(start(i.'Termin lieferung')));
let ende := date(year(endof(i.'Termin lieferung')), month(endof(i.'Termin lieferung')), day(endof(i.'Termin lieferung')));
join(for p from anfang to ende + 1 step 1000 * 60 * 60 * 24 do
text(p)
end, "
")
end
---- versuch für Ansicht (in dem fall für Dienstag) -----
let suchJahr := Jahr;
let suchKW := KW;
let suchWochentag := date(number(suchJahr), 1, 4) - weekday(date(number(suchJahr), 1, 4)) + number(suchKW) * 7 - 6;
for i in select 'Aufträge' where 'Termin lieferung' do
let anfang := date(year(start(i.'Termin lieferung')), month(start(i.'Termin lieferung')), day(start(i.'Termin lieferung')));
let ende := date(year(endof(i.'Termin lieferung')), month(endof(i.'Termin lieferung')), day(endof(i.'Termin lieferung')));
for p from anfang to ende + 1 step 1000 * 60 * 60 * 24 do
let Datumarray := p;
let ausgabe := (select 'Aufträge')[date(suchWochentag) = date(Datumarray)];
ausgabe
end
end
7 Antworten
-
habs glaube ich. Aber vielleicht gehts ja besser
let suchJahr := Jahr; let suchKW := KW; let suchWochentag := date(number(suchJahr), 1, 4) - weekday(date(number(suchJahr), 1, 4)) + number(suchKW) * 7 - 6; for i in select 'Aufträge' where 'Termin lieferung' do let anfang := date(year(start(i.'Termin lieferung')), month(start(i.'Termin lieferung')), day(start(i.'Termin lieferung'))); let ende := date(year(endof(i.'Termin lieferung')), month(endof(i.'Termin lieferung')), day(endof(i.'Termin lieferung'))); for p from anfang to ende + 1 step 1000 * 60 * 60 * 24 do if contains(concat(text(p)), text(suchWochentag)) then select 'Aufträge' where Nr = i.Nr end end end
-
AHHHH doch falsch....
jetzt zeigt es mir die Termine in der Ansicht an, aber ich komm bei klick auf den Datensatz in der Ansicht nicht auf den Kunden. Da macht mir Ninox nen komplett neuen leeren Record auf.
-
hab mal eine beispiel DB hier. Vieleicht kann mir ja einer helfen. Problem ist in Tabelle Planung
-
bin echt zu blöd und verstehe es nicht.
warum bekomm ich den Datensatz zwar angezeigt in der Ansicht, jedoch bei klick nicht mehr. Der vergleich sagt doch es ist "wahr" daher zeig es an.
let suchJahr := Jahr; let suchKW := KW; let such := date(number(suchJahr), 1, 4) - weekday(date(number(suchJahr), 1, 4)) + number(suchKW) * 7 - 6; for r in select 'Aufträge' do let aa := [text(r.ausgabe)]; (select 'Aufträge')[contains(text(aa), text(such))] end
-
Hi Michi. Meinst Du so?
-
Was hab ich denn da falsch gemacht, so das mir zwar das Ergebnis angezeigt wird aber ein Record als Antwort ohne abrufbare "Nr" geöffnet wird.
Dein Script liefert ein Array von Recordarrays, quasi ein Doppelarray. Die Ansicht hätte gar nicht ausgegeben werden dürfen. Ist wohl ein Bug. Du kannst das ganze Schleifenkonstrukt mal in DebugValueInfo() packen, das zeigt Dir den Ausgabewert und -typ des Resultats. Hilft manchmal, wenn man sich verprogrammiert hat;-). Mirko
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 7Antworten
- 81Ansichten
-
2
Folge bereits