0

Funktion Dialog mit popuprecord als Antwortaktion

Hallo zusammen,

ich hänge in folgendem Problem. Ich hab Schulungen mit Schulungsnummer und Teilnehmern.Dann erfass ich pro Teilnehmer, dass er dabei war in einer neuen Tabelle, sodass ich dort dann die Wirksamkeit beurteilen kann. für den Fall die Schulung war nicht wirsam, muss nachgeschult werden. dafür hab ich gedacht einen button zu verwenden, der den dialog öffnet "Nachschulung erzeugen?" => ja  /nein

und wollte jetzt dialog als Formel verwenden

und falls ja, soll er mir die Schulungsnummer vom Teilnehmer vergleichen mit der Schulungsnummer aus den Schulungen, und wenn die identisch sind den Datensatz der Schulungen öffnen

wenn nicht, nur ein anderes Feld auf "ja" umstellen

Aber geht popuprecord als eine der beiden case dann überhaupt?

ich hab folgende nicht funktionierende Formel =>(evtl ist auch oben bei der definierung der Fehler... ich weiß es gerade nicht)

let myid := 'teilgenommene Schulung'.Schulungsnummer;
let myfact := (first(select Schulungen where Schulungsnummer = myid).number(Nr);
let titel := "Die getroffene Wirksamkeitsstufe macht eine Nachschulung des Mitarbeiters erforderlich";
let nachricht := "Nach Bestätigung mit OK öffnet sich das Fenster der ursprünglichen Schulung erneut. Tätigen Sie den Button 'Nachschulung erforderlich' und wählen Sie alle notwendigen Mitarbeiter aus.";
let antwortOption := ["OK", "Nein. Später"];
let Auswahl := dialog(titel, nachricht, antwortOption);
switch antwortOption do
case "OK":
    popupRecord(myfact)
case "Nein. Später":
    text('Nachschulungstermin noch offen') = "ja"
end

3 Antworten

null
    • Developer by Smartplanung
    • smartplanung
    • vor 11 Monaten
    • Gemeldet - anzeigen

    Du fragst im Switch den Array "antwortOptionen" ab. Du musst aber "Auswahl" abfragen.

    let myid := 'teilgenommene Schulung'.Schulungsnummer;
    let myfact := (first(select Schulungen where Schulungsnummer = myid).number(Nr);
    let titel := "Die getroffene Wirksamkeitsstufe macht eine Nachschulung des Mitarbeiters erforderlich";
    let nachricht := "Nach Bestätigung mit OK öffnet sich das Fenster der ursprünglichen Schulung erneut. Tätigen Sie den Button 'Nachschulung erforderlich' und wählen Sie alle notwendigen Mitarbeiter aus.";
    let antwortOption := ["OK", "Nein. Später"];
    let Auswahl := dialog(titel, nachricht, antwortOption);
    switch Auswahl do
    case "OK":
        popupRecord(myfact)
    case "Nein. Später":
        text('Nachschulungstermin noch offen') = "ja"
    end
    
      • Schu_Mel
      • vor 11 Monaten
      • Gemeldet - anzeigen

      ja geil, just as simple.

      Vielen herzlichen Dank!

    • Ninox-Professional
    • planoxpro
    • vor 11 Monaten
    • Gemeldet - anzeigen

    Kleiner Tipp: Wenn man Optionen mit längeren/komplizierteren Zeichenfolgen hat, kann man den dialog()-Rückgabewert auch gleich auf ein oder zwei Zeichen beschränken. Damit lässt sich das Fehlerpotenzial durch (bspw. tippfehler-bedingte) Nicht-Übereinstimmung von Option und Abfragewert deutlich verringern:

    let antwortOption := ["OK", "Nein. Später"];
    let Auswahl := substr(dialog(titel, nachricht, antwortOption), 0, 1);

    Beim ‚case‘ würde dann nur noch auf „O“ oder „N“ abgefragt.