0

Alert bei doppelter Rechungsnummer

Hallo zusammen,

 

bestimmt kommt diese Frage nicht zum ersten Mal auf, aber ich habe im Forum bislang keine Antwort gefunden.

 

Ich möchte beim erstellen eines Rechnungsdokumentes prüfen, ob die Rechnungsnummer nicht schon vorhanden ist. Mein Versuch klappt nicht (es erscheint auch bei Doppelter RN kein Alert)

if count('Rechnungsnr.') = count(unique('Rechnungsnr.')) then
    let myFileName := 'Rechnungsnr.' + "_" + Kunden.Nachname + ".pdf";
    let me := this;
    let newDoc := (create Dokumente);
    if Projekte then
        importFile(newDoc, printAndSaveRecord(me, "Rechnungen"), myFileName);
        newDoc.(
            Dokument := myFileName;
            Dokumentname := myFileName;
            Dokumenttyp := 3;
            Rechnungen := me
        )
    else
        alert("Rechnungsnummer schon vorhanden")
    end
end

Woran liegt es? Und gibt es noch elegantere Lösungen als "unique"?

 

Vielen Dank im voraus!

2 Antworten

null
    • Kruna
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Hallo MP,

    ich weiß zwar nicht, ob es eine elegantere Lösung ist, aber der folgende Code ist noch eine Lösung:

    let a := 'Rechnungsnr.';
    if cnt((select Rechnungen)['Rechnungsnr.' = a]) > 1 then
        alert("Rechnungsnummer schon vorhanden")
    end

    Zu Deiner Frage nach dem Alert müsste ich mir bei Zeit genauer anschauen, aber vllt wird Dir jemand hier eher helfen :-)

    Gruß Kruna

    • T_Bartzsch
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Krunas Antwort sollte passen...

    Wichtig dabei ist: ein alert wird nicht durch Trigger nach Änderung eines Feldes ausgeführt, sondern nur bei drücken eines Buttons...

    Es sei denn, man stellt das Textfeld in der Zuweisung auf: "Pro Datensatz im Speicher (Browser)" ... dann ist der Inhalt des Textfeldes allerdings beim schließen des Browsers weg... aaaaber, man könnte das als Hilfsfeld benutzen... und wenn keine Rechnungsnummer gefunden wurde, dann das "echte" Rechnungsnummer-Feld beschreiben und das Hilfsfeld leeren.