0

For schleife auf Anwesenheit.

Ich finde keinen Beitrag, der dieser Frage entspricht. 

Ich habe aber auch selbst keiner Lösung 

 

Ich erstelle jeden Tag einen Datensatz in der Tabelle Anwesenheit(mit dem Feld Datum), mit der Auswahl des Kurses wird automatisch ein neuer Datensatz für jeden Schüler erstellt(ebenfalls mit dem Feld Datum). 

Jetzt möchte ich von jeden Schüler die Anwesenheit in meinem Kalender darstellen.
Leider komme ich mit der folgenden Formel nur zu folgendem Ergebnis. 

Code/Formel:

        for Anwesenheit in select Unterricht where format(Datum, "DD.MMM.YYYY") =
        Teilname.format(Datum, "DD.MMM.YYYY") do    

Anwesenheit.Teilname.'Schüler'.Anrede + " " + Anwesenheit.Teilname.'Schüler'.Name
        + "     " + Teilname.Datum

        end

 

Erwartetes Ergebnis :

Frau Teilnehmer A  01.01.2022 

 

Für das (eigentliche)Ziel:
Kalender export in folgendem Format:

 

8 UE {BILDUNGSTRÄGER} + {KURS}

08:00 bis 16:45Uhr:
{INHALTE}

 
TEILNEHMER:
Frau Teilnehmer A {später gekommen / früher Gegangen}

 

Tatsächliches Ergebnis

Frau Teilnehmer X 28.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.2022 Frau Teilnehmer Y (keinen Bezug zur Anwesenheit)

28.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.2022 Frau Teilnehmer Z (keinen Bezug zur Anwesenheit)

28.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.202228.03.2022 Frau Teilnehmer Q (keinen Bezug zur Anwesenheit)

[...]

 

Was mache ich falsch?

Die 10 Teilnehmer kommen im Ergebnis nichtmal vor?

6 Antworten

null
    • rainless
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Rene,

    es gibt für mich einige offene Punkte - vielleicht hilft Dir das beim Lösen:

    • einerseits sagst Du, es gäbe eine Tabelle Anwesenheit - andererseits ist Anwesenheit aber die Laufvariable über Deine for-Schleife und enthält damit ein Record. Das passt nicht ganz
    • wo kommt denn Datum her? UND: Ich meine, dass Teilname.format(Datum, "DD.MMM.YYYY") nicht geht. Wenn, dann müsste es format(Teilname.Datum, "DD.MMM.YYYY") sein
    • wie ist denn die Tabelle Unterricht aufgebaut? Hat sie ein Feld Datum und eine Referenz (?) Teilname mit einem Feld Datum? Mir ist Dein Filterkriterium für Select nicht ganz klar.
    • Ich vermute ja, dass Teilname.Datum kein Feld, sondern ein Array ist (oder so), deshalb kommen auch so viele Daten im Ausdruck

    Vielleicht kannst Du mal die Struktur Deiner Daten darstellen, damit man erkennen kann, was Du hier mit was vergleichst.

    • Torsten_Stang.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    ich mutmaße mangels Datenmodell-Kenntnis

    for i in (select Unterricht where format(Datum, "DD.MMM.YYYY") =
            Teilname.format(Datum, "DD.MMM.YYYY")).Anwesenheit.Teilname.'Schüler' do
    i.Anrede + " " + i.Name + "     " + i.Teilname.Datum
    end
    

    NS: es ist mir schon schwer gefallen, nicht "Teilnahme" zu schreiben, nicht dass Du auch mal darüber stolperst... :-)

      • rainless
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Torsten Stang  jetzt muss ich aber schon fragen: Was für ein Ergebnis liefert denn

      Teilname.format(Datum, "DD.MMM.YYYY")

      Teilna(h)me wird doch kein Feld haben, das 31.12.2021 oder so heißt - oder verstehe ich was falsch?

      • Torsten_Stang.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      wie ich schrieb "mangels Datenmodell-Kenntnis" - tatsächlich habe ich mich mit dem Code nicht haarklein beschäftigt.

      Du mutmaßt richtig, format(Teilname.Datum, "DD.MM.YYYY") wäre hier angebracht, aber das war nicht die Frage des TO. 🤷🏻‍♂️

      • Rene_Wolff
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Torsten Stang 

       

      Hallo Torsten, die Datenbank ist (riesig).

      Ich habe aber 3 Tabellen.

       

      die erste ist die "Unterricht"Tabelle (jede Unterrichtung erzeugt ein Datum)

      Dazu gibt es die Tabelle Anwesenheit (Bei der Verknüpfung eines Kurses mit einem Unterricht wird für jeden Teilnehmer hier ein Datensatz den im Anhang befindlichen Daten erzeugt. )

       

      die Dritte ist die "Kurs"-Tabelle dort werden die Kurse grob geplant, (Teilnehmer, Lernfeldzeiten, etc.)

       

       

      Dein Code gab folgende ausgabe:

       

      Frau Teilnehmer XYZ 17.11.202130.11.202118.11.202118.11.202126.02.202224.11.202125.11.202101.12.202102.12.202108.12.202126.03.2022,Frau Teilnehmer XYZ 05.01.202206.01.202226.01.202203.02.202230.11.202118.11.202124.11.202125.11.202101.12.202102.12.202108.12.202118.01.202219.01.202220.01.202221.01.202214.01.202117.02.202202.02.022211.01.202224.02.202225.03.202225.03.202225.03.202226.03.202226.03.202226.03.202226.03.202226.03.202226.03.202226.03.202204.01.2022,Frau Teilnehmer XYW 17.11.202130.11.202118.11.202118.11.202126.02.202224.11.202125.11.202101.12.202102.12.202108.12.202126.03.2022,Frau Teilnehmer XYZ 17.11.202130.11.202118.11.202118.11.202126.02.202224.11.202125.11.202101.12.202102.12.202108.12.202126.03.2022,Frau Teilnehmer XYN 17.11.202130.11.202118.11.202118.11.202126.02.202224.11.202125.11.202101.12.202102.12.202108.12.202126.03.2022,

       

      Mein Ziel ist es, wenn Datum Unterricht  und Datum Anwesenheit gleich ist, dann soll er mir die Felder aus Anwesenheit weitergeben. 

      So, dass ich in meinem Kalender folgendes Ergebnis habe:

       

      10 UE {Schule GmbH} {Kursname}

      {08:00 bis 16:45Uhr:}

      {Tagesinhalte}

      TEILNEHMER:

      Herr Teilnehmer XYZ später gekommen 09:00 Uhr 

      Frau Teilnehmer WAD Früher gegangen 15:00 Uhr

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Schreib doch die Daten in eine neue Tabelle.

    Dort ne Verknüpfung rein und ein Datumsfeld, was die im Kalender angezeigt wird. Was angezeigt wird kannst ja einstellen. 

      for i in select Anwesenheit where format(Datum, "DD.MMM.YYYY") =
            Teilname.format(Datum, "DD.MMM.YYYY") do 

    let me:= i. this;

    let Datum:=i.datum;

    let new:= (create Neue tabelle)

    New.(Datum:=Datum)

    New.(verknüpfung:=me)

    Ist am tele geschrieben also bitte richtig schreiben