0

chosen dmulti

Hallo zusammen,
ich benötige mal wieder hilfe.

Ich habe in einem Feld folgenden Code:

let Liste := numbers(Termine.Mitarbeiter);
let AnzMa := count(Liste);
count(chosen(Termine.'Mitarbeiter alt'))

 

'Mitarbeiter alt' ist eine Auswahlliste.
Diese Liste habe ich jetzt auf eine dynamische Auswahlliste geändert.
Jetzt bekomme ich einen Fehler angezeigt: Die Funktion ist nicht definiert (chosen(dmulti)

Wie kann ich die o.g. Funktion mit meinem dynamischen Auswahlfeld 'Mitarbeiter' realisieren?
 

let Liste := numbers(Termine.Mitarbeiter);
let AnzMa := count(Liste);
count(chosen(Termine.'Mitarbeiter'))

 

Vielen lieben Dank

2 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 6 Monaten
    • Gemeldet - anzeigen

    Hallo Stefan, mir ist nicht ganz klar, was genau da wo gezählt werden soll, aber davon abgesehen: Ist 'Termine.Mitarbeiter' auch ein dynamisches Mehrfachauswahlfeld (DMAF) oder ein normales/statisches (MAF)?

    So oder so: numbers() gibt immer ein Array zurück. Bei normalen MAF enthält es die IDs, bei dynamischen die Datensatznummern der gewählten Einträge.

    chosen() wiederum benötigt als zweiten Parameter den Wert eines ganz bestimmten Eintrags, auf den geprüft werden soll. Das heißt, wenn man ein Mehrfachauswahlfeld (MAF) mit den Einträgen "A" (1), "B" (2) und "C" (3) hat und abfragen will, ob "B" (2) gewählt wurde, dann hat man dazu zwei Möglichkeiten:

    chosen(MAF, "B")
    

    oder

    chosen(MAF, 2)
    

    Bei DMAF werden statt dessen die Datensatznummern der gewählten Einträge zurückgegeben. Deshalb muss im chosen() als zweiter Parameter die zu überprüfende Datensatznummer angegeben werden. Die kann aus einem anderen DMAF kommen oder bspw. über ein "select" ermittelt werden.

    Angenommen, es soll geprüft werden ob im DMAF der Mitarbeiter "Schulze" ausgewählt wurde. Dann könnte man das folgendermaßen machen:

    let myM := first(select Mitarbeiter where Name = "Schulze").number(Nr);
    if chosen(DMAF, myM) then ...
    

    Im Fall, dass sich das abzufragende DMAF in einer 1:N vernüpften Tabelle befindet, und man alle Datensätze zählen will, bei denen im DMAF der Mitarbeiter "Schulze" augewählt wurde, könnte das so aussehen:

    let myM := first(select Mitarbeiter where Name = "Schulze").number(Nr);
    cnt(VTABELLE where chosen(DMAF, myM))
    
    • Stefan_Otten
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Super,
    vielen lieben Dank.
    Sorry für die Verwirrung, habe aus versehen zu viele Codezeilen eingefügt.

    Liebe Grüße

Content aside

  • vor 5 MonatenZuletzt aktiv
  • 2Antworten
  • 56Ansichten
  • 2 Folge bereits