Ansicht in Drucklayout übernehmen
Hallo zusammen
Da ich bis anhin noch keine Antwort bzw. Rückmeldung erhalten habe, wende ich mich nochmals an Euch...
Ich habe eine Ansicht erstellt, in der ich sehen kann welcher Teilnhemer welchen Kurs Beuscht hat let myName := Name;
select Kurse where contains(text(Teilnehmer), myName)
Dies funtioniert und gibt mir eine gute Überscicht. Nun will ich das ganze noch ausdrucken können. Wie ich gelesen habe können Ansichten leider nicht im Drucklayout integriert werden, sehr Schade. Hat jemand eine Lösung für mein Problem?
Besten Dnak und Grüsse Clive
7 Antworten
-
Hallo Clive, du kannst auch im Drucklayout ein Funktionsfeld erstellen und dort per "select" auf die andere Tabelle zugreifen. Zum Beispiel so (Darstellung des Feldes "Kurs"):
let myName := Name;
concat((select Kurse)[contains(text(Teilnehmer), myName)].Kurs)
-
Hallo Copytexter
Danke für deine Hilfe. Habs so gemacht. Jetzt zeigt es mir lediglich die Nr. des Datensatzes an.
Zudem wird alles n einer Reihe mit Kommas aufgelistet. Kann dies mit dem Joinstring untereineander gebracht werden? Dies da ich ja das Datum, Thema etc. ebenfalls auf dem Ausdruck haben möchte.
Diese Ansicht habe ich aus einer Tabelle erstellt und möchte wie erwähnt dies im Ausdruck ebenfalls so darstellen. Gibt es allenfalls eine Möglichkeit anstatt die Ansicht eine Tabelle zu egenrieren, diese kann ja dann ohne Probleme im Ausdruck ausgegeben werden. Ich habs aber nihct hinbekommen da ich aus einer Mehrfachausawahl einen Zusammenzug mahcen muss.
Grüsse Clive
-
Hallo Clive, klar, du kannst mit "join" auch einen Zeilenwechsel einfügen. Und auch mehrere Datenfelder pro Zeile anzeigen lassen. Als Beispiel:
let myName := Name;
join(for i in (select Kurse)[contains(text(Teilnehmer), myName)] do
i.Datum + ", " + i.Zeitdauer + ", " + text(Thema)
end, "
")
Wenn du jedoch eine "richtige" Tabelle ausdrucken willst, die der Ansicht entspricht, wirst du um eine Verknüpfung wohl nicht herumkommen. Im Gegensatz zu Ansichten kann man verknüpfte Tabellen auch ins Drucklayout übernehmen.
Allerdings würde ich dann das Datenmodell ändern, mit einer N:M-Verknüpfung arbeiten und darüber auch die teilnehmenden Personen zuordnen (statt über das Mehrfachauswahlfeld). Wobei das, rein technisch gesehen, wohl sowieso die bessere Lösung wäre.
-
Hallo Copytexter
Da hasst du recht, eine N:M Verknüpfung wäre sicher besser. Ich muss dir sagen, dass ich erst kürzlich mit Ninox angefangen habe und nicht genau weiss, wie diese zustande kommt. Ich habe die Lösung mit dem Mehrfachauswahlfeld gewählt, da ich die Teilnehmer in einer Switchbix (siehe Bild) anwählen kann. Wenn du eine andere Lösung hast, mit der genannten Verknüpfung wäre isch natürlich sehr froh. Will dich aber nicht beüben:)
Danke und Gruss Clive
-
Hallo Clive, kein Problem. Je konkreter die Frage, desto einfacher ist sie zu beantworten. Für N:M-Verknüpfungen benötigt man eine Hilfs- oder Verbindungstabelle, welche die beiden "Haupttabellen" indirekt miteinander verknüpft.
Man erstellt also eine dritte Tabelle ('A-B_Hilfstabelle') und verknüpft diese jeweils N:1 mit TabelleA und TabelleB. Im Datenmodell sieht das dann so aus:
Nun hat man in TabelleA und TabelleB jeweils eine Verknüpfungstabelle zu 'A-B_Hilfstabelle' und kann über die darunter befindliche Schaltfläche "+ Neuer Datensatz" einen neuen Eintrag in der Hilfstabelle erzeugen. Das funktioniert aus beiden Haupttabellen heraus. Die Verknüpfung zu dem Datensatz, aus dem heraus der Eintrag angelegt wurde, ist im Formular der Hilfstabelle bereits eingetragen. Man wählt dann nur noch die Verknüpfung zur jeweils anderen Tabelle.
In der Hilfstabelle 'A-B_Verbindung' besteht also jeder Datensatz aus einer Verknüpfung zu den beiden Haupttabellen. Dieses Vorgehen ist bei der Zuordnung von Teilnehmern zu Kursen erst mal etwas aufwändiger als mit dem Mehrfachauswahlfeld in einer der Tabellen, dafür aber viel flexibler und beliebig skalierbar. Der Zahl an Teilnehmern und Kursen sind damit keine Grenzen gesetzt.
Weitere Vorteile: Man benötigt keine zusätzliche Ansichtstabelle und sieht in beiden Haupttabellen sofort immer alle verknüpften Datensätze. Außerdem lässt sich die Verknüpfungstabelle direkt ins Drucklayout übernehmen. Und spätere Auswertungen werden durch die Verknüpfung auch erleichtert.
Man kann das Ganze noch weiter ausbauen und Teilschritte automatisieren, aber das hängt im Detail natürlich von den tatsächlichen Abläufen und Anforderungen ab. Deshalb habe ich mich hier auf das Kernproblem der N:M-Verknüpfung an sich konzentriert.
-
Halle Copytexter
Ohh oke interessant... Das seh ich absolut, dass dies eine bessere Lösung ist und somit auch besser ausgebaut werden kann. Sehe ich dies richtig, dass dann aber ein Auswahlfeld mit den verschiedenen Teilnehmern nicht mehr möglich ist? Es sind immer die glecihen Teilnehmer, jedoch besuchen nicht immer alle den Kurs. Somit hat sich ein Auswahlfeld perfekt geeignet, für eine shcnelle Auswahl.
Grüsse Clive
-
Moin, Verknüpfungen sind prinzipiell die beste Lösung, aber nicht zwingend in jedem Einzelfall. Wenn du tatsächlich nur eine Gruppe mit einer festen, überschauren Anzahl bestimmter Personen hast, die ein paar Kurse durchlaufen, dann kann für dich natürlich auch die Variante mit dem Mehrfachauswahlfeld die bessere, weil einfachere Lösung sein. Nur für den Druck der Kursdaten in Tabellenform statt als Liste (per "join", s. o.) ist eine N:M-Verknüpfung vielleicht etwas überdimensioniert.
Es gäbe noch die Möglichkeit, beide Varianten zu kombinieren und die Verknüpfungen über einen Trigger "Nach Änderung" im Mehrfachauswahlfeld 'Teilnehmer' scriptgesteuert vorzunehmen. Aber da Mehrfachauswahlfelder mit Arrays arbeiten, kriege ich das ehrlich gesagt auch nicht so aus dem Stegreif hin, zumal man die entsprechende Verknüpfung bei Abwahl des Teilnehmers ja auch wieder löschen müsste. Vielleicht hat jemand anderes sowas schon mal gemacht und eine Lösung dafür parat (oder noch eine ganz andere Idee).
Content aside
- vor 4 JahrenZuletzt aktiv
- 7Antworten
- 1144Ansichten