Problem mit Code im Trigger
Hallo! Ich bin dabei einen Trigger für ein Textfeld zu erstellen.
Wenn mein Textfeld den String "ec0t0x" enthält, hätte ich gerne, dass zum Textfeld ´Studien´ eines Eintrags in einer anderen Tabelle der ´Titel´ meines Eintrags hinzugefügt wird.
Wenn mein Textfeld jedoch nicht "ec0t0x" enthält, möchte ich, dass, falls der ´Titel´ in ´Studien´ enthalten ist, dieser entfernt wird.
Bevor ich den code nach "else" hinzugefügt habe, hat alles funktioniert. Jetzt erscheint aber die Warnung "Function is not defined: replace(string, string,string) at..."
if contains('Textfeld', "ec0t0x") then
let ecotox_ := (select Tagtabelle where Name = "ecotox");
let studien_current := ecotox_.Studien;
let addstudie := concat(studien_current, Title);
ecotox_.(Studien := addstudie) else
let ecotox_ := (select Tagtabelle where Name = "ecotox");
let studien_current := ecotox_.Studien;
let removestudie := replace(studien_current, Title, "REMOVED");
ecotox_.(Studien := removestudie)
end
Kann mir bitte jemand helfen? Ich würde gerne wissen warum replace(oder jede andere Funktion)ab "else" in meinem code nicht funktioniert.
Lg Elena
4 Antworten
-
Hallo Elenа, ich würde als erstes die Anweisungen hinter then und else "umklammern".
---
if contains('Textfeld', "ec0t0x") then
(let ecotox_ := (select Tagtabelle where Name = "ecotox");
let studien_current := ecotox_.Studien;
let addstudie := concat(studien_current, Title);
ecotox_.(Studien := addstudie)) else
(let ecotox_ := (select Tagtabelle where Name = "ecotox");
let studien_current := ecotox_.Studien;
let removestudie := replace(studien_current, Title, "REMOVED");
ecotox_.(Studien := removestudie))
end
---
ist ecotox_-nur ein Datensatz? wenn Ja-würde ich for select noch first einfügen (first(select....). So ist es eindeutig.
Leo
-
Hallo, Danke wieder für die schnelle Antort!
Habe jetzt replace(text(studien_current),....) verwendet und jetzt funktioniert es. Es hat mich nur gewundert weil es in concat auch ohne text() funktioniert. Tut mir Leid wegen der Umstände und danke für den Tipp mit first()!
Lg Elena
-
Hallo Elena,
ich denke, es hat auch mit first etwas zu tun. (select Tagtabelle where Name = "ecotox") gibt eigentlich ein Array zurük und für Ninox ist ecotox_.Studien auch in erste Linie ein Array, also [String]. mit first() nimmt man die Eckklammern weg.
Leo
-
Achso jetzt verstehe ich den Sinn von first, danke!!
Lg Elena
Content aside
- vor 4 JahrenZuletzt aktiv
- 4Antworten
- 722Ansichten