0

Bei Klick - Datensätze anlegen.

Hallo. 

Ich stehe auf dem Schlauch. 

Es sind zwei Tabellen vorhanden:

Prüfeinheit_L und Prüfkriterium_L

 Unter Prüfeinheit_L befinden sich die Prüfeinheiten: 

 Unter Prüfkriterium_L befinden sich die Prüfkriterien:

 Unter Sprossen/ Stufen/Plattform natürlich andere Kriterien. 

In einer weiteren Tabelle habe ich unter anderem die Registerkarte: 

Pruefobjekte_Leiter

Hier befinden sich drin die Verknüpfung zu der Tabelle: Leiterkomponenten-Prüfung

Ich möchte nun über das Auswahlfeld die Prüfeinheiten wählen und bei KLICK auf HINZUFÜGEN soll er 
in der Tabelle: Leiterkomponenten-Prüfung die Datensätze anlegen. Zum Beispiel bei der Auswahl HOLME dann 5 Datensätze (Einheit: Holme,  Prüfkriterium: Verformung,    Einheit: Holme, Prüfkriterium: Beschädigung usw....)

 

Bislang legt er mir bei Klick nur ein Datensatz mit dem ersten Kriterium (Verformung) an. 

 Hinter dem Button Übernehmen steht folgende Funktion:

let me := this;
for i in numbers('Prüfkriterien1') 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',i).'Prüfkriterium'
    )
end

 

Bislang legt er bei der Auswahl von mehreren Einheiten auch beide an aber immer nur mit dem ersten in der Tabelle stehenden Kriterium und nicht mit allen.  

 

Hat jemand eine Idee was hier fehlt und wie ich das umsetzen kann? Schon jetzt vielen Dank. 

 

Viele Grüße, Jens

5 Antworten

null
    • Gotje_Ing
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Moin,
    du brauchst zwei for-Schleifen. 
    Eine läuft durch die Mehrfachauswahl "Prüfkriterien1", die andere durch die zugehörigen Prüfkriterien zu den z.B. Holmen.
    die zweite Schleife könnte so aussehen:
     

    for i in numbers('Prüfkriterien1') do
        let newRecord := (create 'Leiterkomponenten-Prüfung');
        let Pruefkriterien_L := select Prüfkriterien_L where Prüfeinheit = i;
        --- den Filter in der vorherigen Zeile natürlich genau anpassen, auf deine Struktur---;
    
        newRecord.(
            'Prüfobjekte-Leiter' := me;
            Einheit := record('Prüfeinheit_L',i).'Prüfeinheit');
            for j in Pruefkriterien_L do
            newRecord.(Kriterium := record('Prüfkriterium_L',j).'Prüfkriterium')
        end
    end

    Könnte sein, dass ich nicht alles 100% korrekt geschrieben habe, aber die grundsätzliche Struktur sollte funktionieren.

      • Jens_Waschwill
      • vor 2 Monaten
      • Gemeldet - anzeigen

       Vielen Dank für die schnelle Hilfe irgendwie geht es noch nicht. 

      Also Prüfobjekte-Leiter ist der Name des Formulars. (Richtig?)

       

      Prüfeinheit befindet sich in der Tabelle: Prüfeinheit_L und Prüfkriterium ist im Formular: Prüfobjekte-Leiter kein Feld. Es befindet sich nur in der Tabelle: Prüfkriterium_L.

      Diese Formel geht aber nicht. Findest du den Fehler? 

      SORRY

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

    so geht es auch nicht. Verstehe das nicht. 

    for i in numbers('Prüfeinheit') do
        let newRecord := (create 'Leiterkomponenten-Prüfung');
        let Pruefkriterien_L := select 'Prüfeinheit_L' where 'Prüfeinheit' = i;
        --- den Filter in der vorherigen Zeile natürlich genau anpassen, auf deine Struktur---;
    
        newRecord.(
            'Prüfobjekte-Leiter' := me;
            Einheit := record('Prüfeinheit_L',i).'Prüfeinheit');
            for j in Pruefkriterien_L do
            newRecord.(Kriterium := record('Prüfkriterium_L',j).'Prüfkriterium')
        end
    end
    

    puhhh 

    • Jens_Waschwill
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Hallo Zusammen. 
    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

     

    Prüfkriterium_L

    Prüfkriterium

     

    Leiterkomponenten-Prüfung

     

    Tabelle die gefüllt werden soll

    Prüfobjekte-Leiter

     

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

    Und hier der Code den ich versucht habe. Aber nichts passiert. 

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

     

    Vielen lieben für Eure Hilfe.

     

    Jens

    • Jens_Waschwill
    • vor 2 Monaten
    • Gemeldet - anzeigen

    Hallo nochmals.

    Es lässt mir einfach keine Ruhe. Schlimm.

    Habe aber das Gefühl, dass die Lösung nicht so weit entfernt ist.
    Bin mir auch nicht sicher, ob ich nicht einfach eine neue Frage aufrufen soll. Aber ich versuche es mal so.

    ICH HABE DAS GEFÜHL, dass die zweite for-Schleife überhaupt nicht angesprochen wird.

    Die erste soll  die ausgewählte Prüfeinheit als neuen Datensatz anlegen. Deshalb der Bezug auf die Prüfeinheit. Zu einer Einheit gibt es mehrere Prüfkategorien. Die soll er eben alle anlegen. 

    Die zweite Schleife bezieht sich doch auf die Prüfkategorien. Also solange bis keine Kategorie zur ausgewählten Einheit vorhanden ist. 

    Mit diesem Script legt er aktuell ein Datensatz an (Einheit) ohne die Kategorie zu benennen.

    Könnt ihr den Fehler erkennen? Ich hoffe es so sehr.

    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);
        newRecord.(
            'Prüfobjekte-Leiter' := me;
            Einheit := record('Prüfeinheit_L',i).'Prüfeinheit'
        );
        for j in Kriterien do
            newRecord.(Kriterium := record('Prüfkriterium_L',j).'Prüfkriterium')
        end
    end
    

    Schon jetzt vielen vielen Dank für die Hilfe. 

    Viele Grüße, Jens

Content aside

  • vor 2 MonatenZuletzt aktiv
  • 5Antworten
  • 59Ansichten
  • 2 Folge bereits