0

Zwei For-In Schleifen

Hallo Community. 

Ich benötige Eure Hilft bei den For-Schleifen. 

Zur besseren Übersicht habe ich mal die gesamten Variablen zusammengestellt. Vielleicht ist da die Übersicht etwas einfacher und ihr findet den Fehler ? 

Tabelle

Felder

Bemerkung

Prüfobjekte-Leiter

Prüfeinheit

Greift auf die Tabellen Prüfeinheit_L und Prüfkriterium_L zu. Ein Feld mit mit Prüfkriterium befindet sich aber nicht in der Tabelle Prüfobjekte-Leiter

Prüfeinheit_L

Prüfeinheit

z.B. Holme, Sprossen etc.

Prüfkriterium_L

Prüfkriterium

z.B. Verformung, Abnutzung etc..

Leiterkomponenten-Prüfung

 

Tabelle die gefüllt werden soll. Beziehungsweise in der die Datensätze bei KLICK auf den Button angelegt werden sollen

Prüfobjekte-Leiter

 

Tabelle in dem sich auch der Button befindet und mit der Tabelle Leiterkomponenten-Prüfung verknüpft ist.

Leiterkomponenten-Prüfung

Einheit

Hier soll die Prüfeinheit aus Prüfobjekte-Leiter bzw. Prüfeinheit_L stehen

Leiterkomponenten-Prüfung

Kriterium

Hier soll das Prüfkriterium aus Prüfkriterium_L bezogen auf die ausgewählte Prüfeinheit stehen

Das ist der Button und das Feld Prüfeinheit in der Tabelle Prüfobjekte-Leiter 

 Und hier der Code den ich ausprobiert habe. Hierbei wird aber nur der Datensatz Holme nur einmal angelegt und Kriterium wird nicht gefüllt. Er soll aber so oft angelegt werden wie Prüfkriterien vorhanden sind. 

Ich habe das Gefühl, dass die zweit for-Schleife nicht angesprochen wird. Findet ihr hier einen Fehler? 

let me := this;
for i in numbers('Prüfeinheiten') do
    let newRecord := (create 'Leiterkomponenten-Prüfung');
    let Kriterien := (select 'Prüfkriterium_L' where 'Prüfkriterium' = i);
    let Einheiten := (select 'Prüfeinheit_L' where 'Prüfeinheit' = i);
    newRecord.(
        'Prüfobjekte-Leiter' := me;
        Einheit := record('Prüfeinheit_L',i).'Prüfeinheit'
    );
    for j in Kriterien do
        newRecord.(Kriterium := record('Prüfkriterium_L',i).'Prüfkriterium')
    end
end

Und vielen vielen Dank für die Hilfe.

Jens

11 Antworten

null
    • Michi.1
    • vor 2 Monaten
    • Gemeldet - anzeigen
    newRecord.( ) alles in die klammer. Du Sprichst newRecord 2 mal an.
      • Jens_Waschwill
      • vor 2 Monaten
      • Gemeldet - anzeigen

       Vielen Dank. Und wie sieht das dann aus? Habe es gerade versucht, komme aber nicht weiter. 

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

      pack das ganze mal in ein FX und lass dir die Ergebnisse ausgeben, um zu sehen ob überhaupt ein Kriterium zutrifft

      • Jens_Waschwill
      • vor 2 Monaten
      • Gemeldet - anzeigen

       Dann steht da das ? 

      Aber ja, hinter jeder Einheit stehen mehrere Kriterien. 

      Meinst Du das mit den Klammern so? 

      let me := this;
      for i in numbers('Prüfeinheiten') do
          let newRecord := (create 'Leiterkomponenten-Prüfung');
          let Kriterien := (select 'Prüfkriterium_L' where 'Prüfkriterium' = i);
          let Einheiten := (select 'Prüfeinheit_L' where 'Prüfeinheit' = i);
          (newRecord.(
              'Prüfobjekte-Leiter' := me;
              Einheit := record('Prüfeinheit_L',i).'Prüfeinheit'
          );
          for j in Kriterien do
              newRecord.(Kriterium := record('Prüfkriterium_L',i).'Prüfkriterium')
          end)
      end
      

      Sorry für die blöden Fragen.

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

      stell doch mal ne Dummy DB ins Forum, da kann man bestimmt besser helfen

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

       

      für die erste Schleife um die Ergebnisse zu sehen

       

      let me := this;
      for i in numbers('Prüfeinheiten') do
          let Kriterien := (select 'Prüfkriterium_L' where 'Prüfkriterium' = i);
          let Einheiten := (select 'Prüfeinheit_L' where 'Prüfeinheit' = i);
      
      
           let ausgabe:= record('Prüfeinheit_L',i).'Prüfeinheit';
          formatJSON(ausgabe)
      
      • Jens_Waschwill
      • vor 2 Monaten
      • Gemeldet - anzeigen

       Das geht. Ergebnis kommt zurück

      • Jens_Waschwill
      • vor 2 Monaten
      • Gemeldet - anzeigen

       Hi. Hier mal die Dummy DB.

       

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

      meinst du das so? Für deinen Button

      let me := this;
      for i in numbers('Prüfeinheiten') do
          let Pruefkriterien_L := (select 'Prüfkriterium_L' where 'Prüfeinheit_L' = i);
          for j in Pruefkriterien_L do
              let newRecord := (create 'Leiterkomponenten-Prüfung');
              newRecord.(
                  'Prüfobjekte-Leiter' := me;
                  Einheit := record('Prüfeinheit_L',i).'Prüfeinheit';
                  Kriterium := record('Prüfkriterium_L',j).'Prüfkriterium'
              )
          end
      end
      
      • Jens_Waschwill
      • vor 2 Monaten
      • Gemeldet - anzeigen

       Ja genau!. WOW, du bist echt der Hammer. 

      Vielen Dank. 

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

      ist nur das Script von umgebaut. Daher solltest du mal eine DB hereinstellen, sodass es einfacher wird, nachzuvollziehen was du möchtest.

Content aside

  • Status Answered
  • vor 2 MonatenZuletzt aktiv
  • 11Antworten
  • 58Ansichten
  • 2 Folge bereits