Änderungstrigger reagiert nicht auf Auswahlfeld ???
Hab die Suche bemüht, aber nix gefunden:
Ich habe ein Auswahlfeld mit 4 Optionen. Je Option soll bei Klick eine andere Aktion auslösen. Jetzt stelle ich allerdings fest, dass diese Änderung des Auswahlfeldes weder auf Ebene des Feldes, noch auf Ebene des Datensatzes durch den Änderungstrigger wahrgenommen genommen wird. Sprich, das beispielhafte Skript
if Aktion = 1 then drucken(); end;
if Aktion = 2 then senden(); end;
if Aktion = 3 then bearbeiten(); end;
wird einfach nicht ausgeführt. Packe ich die 4 Skripte aber in einen Button, dann gehts.
Das verstehe ich nicht. Wenn sich der Wert des Auswahlfeldes (1; 2; 3; 4) von Null auf X ändert, sollten die Trigger doch reagieren.
Weiß jemand, was da nicht stimmt? Danke
10 Antworten
-
Wenn ich das Problem richtig verstanden habe dann sollte das eigentlich gehen.
Lies doch sicherheitshalber den Wert des Auswahlfeldes mit einer Funktion aus.
Dann bist du sicher welcher Wert ausgewählt wurden.
Bei mir funktioniert das auf jeden Fall auf beiden Ebenen (Feld und Tabelle)
Allerdings finde ich es einfacher und übersichtlicher wenn man das mit den "Case" Befehlt macht wenn es mehr als zwei mögliche Auswahlwerte gibt:
case 1:
(
Dicke := 3;
'Preis pro m²' := 14.35
)
case 2:
(
Dicke := 4;
'Preis pro m²' := 15.7
)
case 3:
(
Dicke := 6;
'Preis pro m²' := 17.1
)
end
Anmerkung:
Wenn du nur eine Befehlszeile pro kannst du die Klammern weg lassen.
Was meines Wissens nicht geht, ist das Öffnen von anderen Tabellen über ein Auswahlfeld.
Das geht wirklich nur über ein Schalter.
(Leider) -
Das dachte ich auch. Vielleicht habe ich ja auch einen Denkfehler. Hier die Settings von dem Auswahlfeld:
Sowohl im Änderungstrigger des Feldes, als auch des Datensatzes steht folgendes Skript:
switch Aktion do
case 1:
(
"
/ Drucken /";
let layout := null;
if 'Sprünge' != null and 'zus. Gutschriftspositionen' = null then
layout := "1"
end;
if 'Sprünge' = null and 'zus. Gutschriftspositionen' != null then
layout := "2"
end;
if 'Sprünge' != null and 'zus. Gutschriftspositionen' != null then
layout := "3"
end;
printRecord(this, layout);
gedruckt := 2
)
case 2:
(
"
/ Mail versenden /";
send_custom_mail(KundenID, number(this), 2)
)
case 3:
(
"
/ Rechnung nachträglich bearbeiten /";
if 'bezahlt am' = null then
edit := true
else
alert("Die Gutschrift ist bereits als bezahlt markiert und kann daher nicht mehr geändert werden.")
end
)
endKlickt man auf eine der Auswahloptionen, passiert gar nichts
-
Es muss heißen:
–––
switch number(Aktion) do
[...]
–––
Birger
-
Hallo Birger,
vielen Dank für den Hinweis. Ich habe das geändert, aber funktionieren tut es trotzdem nicht.
VG Ralf
-
Moin, die Feldabfrage müsste eigentlich auch ohne number() funktionieren, aber wie Tomi schon richtig gesagt hat, gibt es Funktionen, die nur in Schaltflächen nutzbar sind, nicht in Triggern. Dazu gehören meines Wissens auch auch alert() und printRecord().
-
Also, bei mir funktioniert die Feldabfrage auch ohne number().
switch Material do
case 1:
(
Dicke := 3;
'Preis pro m²' := 14.35
)
case 2:
(
Dicke := 4;
'Preis pro m²' := 15.7
)
case 3:
........
Da es bei mir und bei allen Anderen funktioniert muss die reine Abfrage ja richtig sein.
Es kann also nur an dem liegen was nach der Abfrage passiert.
Folglich hat der Copytexter Recht und es liegt an den alert() und printRecord() Funktionen.
Was sagen denn die Gurus von Ninox dazu? -
Wobei es mir persönlich ohnehin zu heikel wäre, über ein Auswahlfeld komplexe Vorgänge zu starten. Erst recht, wenn vielleicht mehrere Personen damit arbeiten, die nicht damit rechnen, dass bei Änderung der Auswahl etwas derartiges passiert.
Gut, das ist natürlich Geschmacksache, aber was spricht dagegen, statt des Auswahlfeldes drei Buttons namens "Drucken", "Mailen" und "Bearbeiten" zu erstellen? Dann könnte man ggf. auch noch weitere Abfragen einbauen, etwa per dialog(), das auch nur in Schaltflächen funktioniert.
-
'Material' ist ein Auswahlfeld.
–––
switch number(Material) do
case 1:
( [...]
–––
...ist auf jedem Fall richtig und zu bevorzugen.Birger
-
Hi Birger,
das hatte ich auch so schon verstanden.
Es wäre aber mal hilfreich zu wissen welche Funktione/Befehle von davon ausgenommen sind im Auswahlfeld genutzt zu werden.
Ich will jetzt da keine Beispiele nennen um das Ganze nicht vorzuwerten.
So nach dem Motto:
Es geht nicht:
a.)
b.)
c.)
etc.
Ob das jeweils Sinn macht hängt diese Befehle über ein Auswahlfeld anzuwenden hängt ja vom Betrachter/Programmierer/Nutzer ab aber es wäre mal gut zu wissen was geht oder besser was nicht geht. -
Ich wollte schreiben:
Ob das jeweils Sinn macht diese Befehle über ein Auswahlfeld anzuwenden hängt ja auch vom Betrachter/Programmierer/Nutzer ab.
Es wäre aber mal gut zu wissen was geht oder besser was nicht geht.
Content aside
- vor 4 JahrenZuletzt aktiv
- 10Antworten
- 2021Ansichten