0

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

null
    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    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
    
    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    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. 

    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    hab mal eine beispiel DB hier.  Vieleicht kann mir ja einer helfen. Problem ist in Tabelle Planung

    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    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
    
    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hi Michi. Meinst Du so?

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Mirko Danke dir, jetzt komm ich weiter.

      Dachte ich muss irgendwie einen Termin erstellen, den in Tage zerlegen, in ein Array packen und vergleichen. 

      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. 

    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    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
  • 79Ansichten
  • 2 Folge bereits