Funktion in Tabellenspalte
Hallo zusammen. Ich bin ein Ninox Neuling und hätte folgede Frage:
Ich habe in meiner Tabelle verschiedene Auswahlfelder erstellt. Deren Inhalt ist in Abhängigkeit voneinander. Mein Ziel ist es Artikel in Hauptwarengruppen und Untergruppen zu kategorisieren. Z.B. Auswahlfeld 1 = Werkzeuge und Auswahlfeld 2 = Bohrmaschinen.
Ich stelle mir das so vor, dass wenn im Auswahlfeld 1 der Datensatz "1" ausgewählt wird, mir dann für die Unterkategorisierung Auswahlfeld 2 zur Verfügung steht. Wenn im Auswahlfeld 1 der Datensatz "2" ausgewählt wird, soll dann für die Unterkategorisierung Auswahlfeld 3 zur Verfügung stehen. Soweit so gut.
Nun wenn ich mir das in der Tabellenansicht darstellen will habe ich ganz viele Spalten mit den Auswahlfeldinhalten. Ich möchte aber eine Funktion einfügen im Stil von:
if Hauptwarengruppe = "1" then
'Untergruppe (1)'
else
if Hauptwarengruppe = "2" then
'Untergruppe (2)'
end
end
Aber leider spielt das so nicht.
Es werden mir immer nur die Werte aus "Untergruppe (1)" angezeigt.
Vielen Dank für eure Tipps?
7 Antworten
-
Hallo, man kann Auswahlfelder entweder auf den numerischen (ohne Anführungszeichen) oder den Textwert (mit Anführungszeichen) der gewählten Option abfragen. Wenn im Auswahlfeld 'Hauptwarengruppe' also bspw. die Option 1 den Text "Werkzeuge" hat, dann lautet die Abfrage entweder
if Hauptwarengruppe = 1 then ...
oder
if Hauptwarengruppe = "Werkzeuge" then ...
Zur Auswertung könnte man statt mehrerer if-Abfragen auch "switch case" nutzen.
Noch besser wäre aber wahrscheinlich, die Anzeige des entsprechenden Unterkategorie-Auswahlfeldes über einen Trigger zu lösen. Dann kann man sich die Abfrage sparen. Man könnte also die verschiedenen Auswahlfelder für die Unterkategorien an derselben Stelle auf dem Formular platzieren und bei jedem in den Optionen unter "Nur sichtbar, wenn" eine entsprechende Bedingung angeben. Auf obiges Beispiel bezogen müsste die Angabe für das Auswahlfeld der Unterkategorien für "Werkzeuge" lauten:
Hauptwarengruppe = "Werkzeug"
Wenn man das für jedes Unterkategorie-Auswahlfeld macht, wird immer jeweils nur das der gewählten Hauptwarengruppe angezeigt.
-
Korrektur: Es heißt nicht "Sichtbar, wenn", sondern "Nur anzeigen, wenn". Soviel Zeit muss sein ... ;)
-
Vielen Dank für die Hilfe. Habe das ausprobiert. Leider besteht mein Problem immer noch.
Wenn ich den Switch Case benütze und einen Textwert ausgeben lassen spielt alles.
Wenn ich jedoch beim Switch Case als Resultat den Inhalt eines Auswahlfeldes ausgeben will, wird immer nur der Wert aus dem Auswahlfeld in der ersten Case Zeile ausgegeben.
So gehts:
switch Hauptwarengruppe != null do
case Hauptwarengruppe = 1:
"test1"
case Hauptwarengruppe = 2:
"test2"
case Hauptwarengruppe = 3:
"test3"
endSo gehts nicht:
switch Hauptwarengruppe != null do
case Hauptwarengruppe = 1:
'Untergruppe A'
case Hauptwarengruppe = 2:
'Untergruppe B'
case Hauptwarengruppe = 3:
'Untergruppe C'
endGibts weitere Tipps in der Runde?
-
---
switch number(Hauptwarengruppe) do
case 1:
text('Untergruppe A')
case 2:
text('Untergruppe B')
case 3:
text('Untergruppe C')
end---
Leo
-
Meine Schuld, sorry. Ich hatte oben das text() vergessen. So ist das manchmal bei Trockenübungen ...
Ein Trigger, der das jeweilige Auswahlfeld für die Unterkategorie sichtbar macht und diese nach Auswahl dann in ein (= 1) Feld namens 'Unterkategorie' schreibt, erscheint mir aber immer noch sinnvoller.
-
Vielen Dank! SUPER! So klappt das nun.
Zu der vorgeschlagenen Triggerlösung habe ich noch eine Frage.
Ich habe den Auswahlfeldern für die Untergruppen (bisher 3 Stück) folgende "Feld nur anzeigen wenn" Bedingung gegeben:
Hauptwarengruppe = "1"
Hauptwarengruppe = "2"
etc...
Kann ich das denn auch mit nur einer Untergruppe lösen?
Da werden mir ja dann auch Unterkategorien aus einer anderen Hauptgruppe zur Auswahl geboten, oder? Das würde ja dann alles in einem Auswahlfeld stehen.
Oder mach ich da ein durcheinander?
-
Man nehme (Beispieldaten):
1 Textfeld namens 'Unterkategorie' sowie
1. Auswahlfeld 'Hauptwarengruppe' mit folgenden Einträgen:
"Audio" 1
"Licht" 2
"Multimedia" 3
...2. Auswahlfeld 'Audio' mit den Optionen
"Lautsprecher" 1
"Mikrofone" 2
Bedingung bei "Nur anzeigen, wenn":
number(Hauptwarengruppe) = 1 ODER text(Hauptwarengruppe) = "Audio"
Trigger bei "Nach Änderung ...":
Unterkategorie := text(Audio)3. Auswahlfeld 'Licht' mit den Optionen
"Scheinwerfer" 1
"Lichtsteuerung" 2
Bedingung bei "Nur anzeigen, wenn":
number(Hauptwarengruppe) = 2 ODER text(Hauptwarengruppe) = "Licht"
Trigger bei "Nach Änderung ...":
Unterkategorie := text(Licht)4. Auswahlfeld 'Multimedia' mit den Optionen
"Playbacksysteme" 1
"Videomonitore" 2
Bedingung bei "Nur anzeigen, wenn":
number(Hauptwarengruppe) = 3 ODER text(Hauptwarengruppe) = "Multimedia"
Trigger bei "Nach Änderung ...":
Unterkategorie := text(Multimedia)Hoffe, habe nicht wieder einen Fehler eingebaut ...
Der Vollständigkeit halber: Bei vielen Kategorien oder häufigen Änderungen kann es sinnvoll sein, mit Verknüpfungen zu arbeiten, aber für den Anfang würde ich es erst mal so versuchen.
Content aside
- vor 5 JahrenZuletzt aktiv
- 7Antworten
- 1985Ansichten