0

Button mit Befehl zum Löschen funktioniert nicht.

Hallo zusammen,

ich habe ein Berechnungsfeld das mir anzeigt ("Duplikat!") ob es eine Link bereits gibt und mir bei den records mit höherer 'Nr' zudem angibt, das dieser Eintrag gelöscht werden kann ("Duplikat löschen!") Das funktioniert soweit mit den unten angegebenen select-Abfragen.

Beim anklicken des Berechnungsfeldes soll nun, wenn es das erste Duplikat ist ("Duplikat!") einfach nur ein Hinweis angezeigt werden. Wenn es ein Duplikat mit höherer 'Nr' ist ("Duplikat löschen!") dann soll ein Dialog zum Löschen aufgehen.

Es wird aber immer nur der untere Hinweis angezeigt. Im Code wird das erste IF sozusagen ignoriert, obwohl es die reine Textausgabe richtig macht.

 

folgender Code des Buttons bzw. "'beim Anklicken':

-----

let myURL := URL;

let myNr := Nr;

if cnt(select Favoriten where myURL = URL and Nr < myNr) > 0 then

   let result := dialog("ACHTUNG", "Datensatz wirklich löschen?", ["Ja", "Nein"]);

   if result = "Ja" then

      alert("gelöscht!");

      delete this

   else

      alert("nicht gelöscht!")

   end

else

   if cnt(select Favoriten where myURL = URL) > 1 then

      alert("Bitte den zuletzt angelegten Datensatz löschen!")

   end

end

-----

 

Folgender Code liefert hingegen das gewünschte Ergebnis:

-----

let myURL := URL;

let myNr := Nr;

if cnt(select Favoriten where myURL = URL and Nr < myNr) > 0 then

   "Duplikat löschen!"

else

   if cnt(select Favoriten where myURL = URL) > 1 then

      "Duplikat!"

   end

end

-----

 

Was mach ich falsch? Können dialog() und alert() etwa nicht "parallel" genutzt werden? Ich arbeite mit der Mac-App.

Vielen Dank im Voraus!

VG
Johannes

1 Antwort

null
    • john_eans
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hab es mal mit weniger möglichen Fehlerquellen versucht...: 

    Folgender Code - mit alert() - funktioniert wie gewünscht. Je nach dem, welches Duplikat ich anklicke kommt IF2 oder IF1...

    -----

    let myURL := URL;
    let myNr := Nr;
    let myCNT1 := cnt(select Favoriten where myURL = URL and myNr > Nr);
    let myCNT2 := cnt(select Favoriten where myURL = URL);
    if myCNT1 > 0 then
       alert("IF1: " + myCNT1 + " " + myCNT2)
    else
       if myCNT2 > 1 then
          alert("IF2: " + myCNT1 + " " + myCNT2)
       end
    end

    -----

     

    Der selbe Code, jedoch mit dialog() funktioniert nicht, es wird immer IF2 angezeigt.

    -----

    let myURL := URL;
    let myNr := Nr;
    let myCNT1 := cnt(select Favoriten where myURL = URL and myNr > Nr);
    let myCNT2 := cnt(select Favoriten where myURL = URL);
    if myCNT1 > 0 then
       dialog("IF1: " + myCNT1 + " " + myCNT2, "", ["Hallo", "Test"])
    else
       if myCNT2 > 1 then
          dialog("IF2: " + myCNT1 + " " + myCNT2, "", ["Hallo", "Test"])
       end
    end

    -----

    Es scheint an dem dialog() zu liegen...
    Hat jemand einen Rat?

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 1Antworten
  • 88Ansichten