0

Untertabelle erscheinen lassen, nur über Mehrfachauswahl

Hey, Ich will mit meiner Mehrfachauswahl Unterschiedliche Untertabellen erscheinen lassen, ist das möglich?

z.B: Sagen wir ich hab in der Mehrfachauswahl: Katze Hund Huhn drin stehen und zu allen 3 eine Untertabelle erstellt.

Jetzt möchte ich aber das dies nur erscheinen wenn ich das jeweilige Tier ( in diesem Beispiel ) ausgewählt habe.

Lg Sören

11 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Sören,

    du kannst bei der Untertabelle mit Katzen im Feld "nur anzeigen wenn" folgende Formel schreiben:

    contains(text('MEHRFACHAUSWAHL',"Katze")

    bei anderen Tabellen entsprechend "Hund" und "Huhn"

    Leo

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Oh, Klammer vergessen:

    contains(text('MEHRFACHAUSWAHL'),"Katze")

    • Peer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo.

    Ich habe eine Tabelle, das als Gestaltungselement Ansicht alle Datensätze der Tabelle "Arbeitstage" mit select Arbeitstage anzeigt und oberhalt ein Auswahlfeld "Monat".

    Wie kann ich es bei mir realisieren, wenn ich mit dem Mehrfachauswahl-Feld "Monat" alle Datensätze anhand des "Beginndatum" filtere?

    Muss ich hier mit select case jeden Monat einzeln 

    contains(text('Monat'),"Januar")...

    schreiben?

    LG

    Peer

    • Robert_K
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn Du in dem Mehrfachauswahlfeld jeden Monat einzeln angibst (Januar, Februar, März,..), dann könnte das hier ggf. weiterhelfen (code ist bei dem Gestaltungselement Ansicht einzutragen):

     

    let myMonat := text(MONAT);
    select Arbeitstage where text(SPALTE WO DER MONAT ENTHALTEN IST) =
    myMonat

     

    Vorausgesetzt, in der Tabelle wo die Monate hinterlegt sind, stehen diese auch als Name (Januar, Februar, März,..). Hoffe ich habs richtig verstanden ;-)

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn ich richtig gelesen habe, ist Monat-ein Mehrfachauswahlfeld. Da würde ich es so angehen:

    ---

    let myARR := numbers(Monat);
    (select Arbeitstage)[let myFlag := false;
    for i in myARR do
    if month(Beginndatum) = i then
    myFlag := true
    end
    end;
    myFlag = true]

    ---

    Leo

    • Peer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke, Robert und Leo.

    Ich habe mir erstmal Leo's Beispiel zu Brust genommen.

    Wennich Leo's Code annähernd richtig verstehe, wird das Auswahllfeld in einen Array gelesen und in der Schleife die Auswahl des Monats mit dem Monat von "Beginndatum" aus "Arbeitstage" verglichen.

    Es passiert aber nichts.

    Ich habe in einer Ansichtstabelle "Tabelle" (die heißt momentan wirklich nur so) alle Tage von "Arbeitstage" gelistet.

    Mit dem Mehrfachauswahlfeld möchte ich die Monate filtern. Später möchte ich das selbe mit dem Jahr auch noch bewerkstelligen.

    Beginndatum ist ein fx-Feld, dass nur das Datum aus dem Datums/Zeit-Feld "Arbeitsbeginn" ausliest und in der Liste anzeigt.

    Gruß

    Peer

    • Peer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Bei dem Beispiel von Robert funktioniert es auch (noch) nicht.

    Wie du schon geschrieben hast ist Voraussetzung, das "Beginndatum" auch nur den Monatsname hat. Aber eigentlich ist und soll es so sein.

    Daher habe ich gedacht, ich ändere es in...

    let myMonat := text(Monat);
    select Arbeitstage where month(Beginndatum) = myMonat

    oder auch

    let myMonat := text(Monat);
    select Arbeitstage where monthName(Beginndatum) = myMonat

    Aber leider führt es nicht zum Erfolg.

    • Peer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ahh. Ich sehe gerade, dass Leo von einem Mehrfachauswahlfeld schreibt. Dem ist nicht so. Jeder Monat wird einzeln gewählt.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Peer,

    1. Die ID- im Feld Monat sollten den Monaten entsprechen

    2. Die Formel soll bei der Ansichtstabelle geschrieben werden

    3. Da ich nicht weiß wie dein fx Feld geschrieben ist, würde ich die Formel so schreiben:

    ---

    let myARR := numbers(Monat);
    (select Arbeitstage)[let myFlag := false;
    for i in myARR do
    if month(date(Arbeitsbeginn)) = i then
    myFlag := true
    end
    end;
    myFlag = true]

    ---

     

    Leo

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ok, wenn es ein Auswahlfeld ist (obwohl du selbst anders geschrieben hast) dann ist die Formel von Robert richtig oder, wenn die IDs stimmen:

    ---

    let myCHOICE := number(Monat);
    (select Arbeitstage)[ month(date(Arbeitsbeginn)) = myCHOICE]

    --

    Leo

    • Peer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Stimmt, Leo. Mein Fehler. Sorry

    Jetzt funktioniert es.

    Vielen Dank euch beiden.