0

Erzeugung mehrerer Untertabellen-Datensätze per trigger ohne dublikate

Hallo Zusammen,

bisher war ich immer stiller Mitleser und konnte so meine Ninox-probleme weitestgehend lösen. Vielen dank dafür. Gerade komme ich leider nicht weiter:

Ich habe eine Datenbank die eine Qualifikationsmatrix darstelt. Da werden unterschiedliche Qualifikationen, die wiederum Stellen zugeordnet werden dann für die einzelnen Personen bewertet.

Ordne ich einer Person eine Stelle zu, kann ich mir per Trigger in der Untertabelle die zugehörigen Qualifikationen vorausgefüllt auflisten lassen und dann bewerten.

Hier der Code zur Schaltfläche:

let mystelle := Person_Stelle;
let myuser := this;
let myKoennen := (select Anforderung where Stellen = mystelle);
for i in myKoennen do
let neuereintrag := (create 'Können Status');
neuereintrag.(Personen := myuser);
neuereintrag.('Können für Bewertung' := i.'Können');                   (das wäre quasi das Feld mit den Dublikaten)
void
end

funktioniert auch schön. So weit so gut.

Wenn ich nun aber die zugeordnete Stelle ändere und den trigger starte, kann es sein, dass er mir in der Untertabelle dublikate erzeugt.

Kann ich das direkt ausschließen oder muss ich einen weiteren trigger zum dublikate entfernen setzen und wenn ja wie?

vielen Dank schonmal.

4 Antworten

null
    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Sollen denn die bisherigen Einträge in der Untertabelle enthalten bleiben beim wechseln der Stelle?

    sonst setze doch zusätzlich eine if-Abfrage in die Schleife.....

    for i in myKoennen

    ...

    ...

    if 'Können für Bewertung'.i.'Können' then neuereintrag.('Können für Bewertung' := i.'Können'); end

     

    usw...

    Oder du löschst den Eintrag in der Untertabelle..

    Nur so als Idee..

    • MD
    • Christian_Braunlich
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hi Tobias,

    ja wäre super wenn die bisherigen Einträge erhalten blieben.

    • MD
    • Christian_Braunlich
    • vor 3 Jahren
    • Gemeldet - anzeigen

    mit 2 Buttons hab ichs jetzt. Gibts die Möglichkeit das nacheinander über einen trigger laufen zu lassen? 

    anbei der zweite code:

    let mypers := this;
    for i in select 'Können Status' where Personen = mypers do
    delete (select 'Können Status' where 'Können für Bewertung' = i.'Können für Bewertung' and Nr != i.Nr)
    end

    • MD
    • Christian_Braunlich
    • vor 3 Jahren
    • Gemeldet - anzeigen

    haha wenn ich Held einfach ein + dazwischen schreib, hab ichs schon. :D

    schönes Wochenende.