Auswahl Verknüpfungstabelle Filtern nach Wert in Mehrfachauswahl
Hallo zusammen
Ich habe ein Problem. Für unsere Jugendfachstelle erstelle ich eine Datenbank, welche dabei helfen soll Ferienjobs von Privatpersonen an Jugendliche zu vermitteln.
Die Privatpersonen melden mir ihre Arbeiten. Ich trag diese Arbeiten in einer Tabelle 'Arbeiten' ein. In dieser Tabelle gibt es eine Mehrfachauswahl, in welcher ich die möglichen Einsatztage anwählen kann.
In einer anderen Tabelle 'Arbeitnehmende' trage ich die Jugendlichen ein. Dort ist auch eine Mehrfachauswahl, welche analog zu der der 'Arbeiten'-Tabelle ist und die möglichen Einsatztage eingetragen werden.
Nun habe ich eine Tabelle 'Vermittlungen', in welcher die 'Arbeiten' und die 'Arbeitnehmenden' verknüpft werden. Ich wähle zuerst die 'Arbeit' aus und möchte dann in der Auswahl der 'Arbeitnehmenden' nur die sehen, welche an den möglichen Einsatztagen des verknüpften 'Arbeiten'-Datensatzes zur Verfügung stehen.
Ich denke ich muss dies mit einer Funktion im Feld Einschränkungen machen, aber habe keine Ahnung wie.
Könnt ihr mir helfen?
Danke und liebe Grüsse
Simon
7 Antworten
-
Hallo,
bei Einschränkungen kannst du mit a. und b. die beiden "Seiten" der Verknüpfung wählen.
Wenn dein Mehrfachauswahlfeld "Einsatztage" lautet, dann bei Einschränkungenconcat(numbers(a.Arbeiten.Einsatztage)) = concat(numbers(b.Einsatztage))
eintragen.
Aber Achtung! Das funktioniert jetzt nur, wenn bei 'Arbeiten' und 'Arbeitnehmenden' genau die gleichen Tage ausgewählt sind. Wenn bei 'Arbeiten' z.B. Mo und Fr ausgewählt ist, wird ein Arbeitnehmender mit Mo und Di nicht angezeigt.
In einem Funktionsfeld könnte man jetzt mit Schleifen arbeiten, aber das funktioniert m.E. im Einschränkungen nicht.
Ich geh davon aus, dass früher oder später einer von den Pros vorbei schaut, die werden eine "vollständige" Lösung haben ;-)
VG
-
Hi Simon. Sicher mußt Du noch Anpassungen der Namen im Script vornehmen, dann kannst Du es ja mal versuchen. Gruß Mirko
let filterArray := for i in a.Arbeiten.chosen(mfafArbeiten) do if contains(concat(chosen(b.mfafArbeitnehmende)), i) then 1 end end; cnt(filterArray) > 0
-
Hallo Zusammen,
aus Erfahrung sind die loops in den Einschränkungen nicht besonders schnell und bei größeren Tabellen kommt es oft zu Verzögerungen. Ich würde es so lösencnt(array(numbers(a.Arbeiten.Einsatztage)),numbers(b.Einsatztage)))>cnt(unique(numbers(a.Arbeiten.Einsatztage),numbers(b.Einsatztage)))
Leo
Content aside
- vor 2 JahrenZuletzt aktiv
- 7Antworten
- 111Ansichten
-
5
Folge bereits