0

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

null
    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Korrektur: Es heißt nicht "Sichtbar, wenn", sondern "Nur anzeigen, wenn". Soviel Zeit muss sein ... ;)

    • mynonas
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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"
    end

     

    So gehts nicht:

    switch Hauptwarengruppe != null do
    case Hauptwarengruppe = 1:
    'Untergruppe A'
    case Hauptwarengruppe = 2:
    'Untergruppe B'
    case Hauptwarengruppe = 3:
    'Untergruppe C'
    end

    Gibts weitere Tipps in der Runde?

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ---

    switch number(Hauptwarengruppe)  do
    case 1:
    text('Untergruppe A')
    case  2:
    text('Untergruppe B')
    case 3:
    text('Untergruppe C')
    end

    ---

     

    Leo

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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.

    • mynonas
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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?

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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