Bedingt sichtbare Felder im Formular-Modus von Figurendatenbanken

Guten Tag,
ich erstelle momentan eine neue Figurendatenbank im Formular-Modus. Dabei bin ich mal wieder auf das Problem gestoßen, dass ich eigentlich gerne nicht immer alle Eingabefelder sichtbar haben möchte, sondern diese je nach Datensatz gerne austauschen würde. Hier mal ein paar Beispiele:

Bei einer Datenbank, in der ich verschiedene Vogelarten eintrage, fände ich es sehr praktisch, wenn ich bei dem Aussehen zwischen männlich/weiblich hin und her wechseln könnte, damit zum Beispiel Amseln vernünftig eingetragen werden können. Bisher gibt es nur die Möglichkeit entweder zwei Datensätze anzulegen oder eben immer zwei Felder zum Aussehen sichtbar zu haben.
Beide Lösungen finde ich allerdings nicht optimal: Bei zwei Datensätzen reiße ich zusammengehörige Daten auseinander, bei der Dopplung von Feldern wird das Formular schnell sehr unübersichtlich. Man kann die Daten zwar mit Sprungmarken schneller finden, praktischer fände ich es allerdings, wenn ich alles sofort übersichtlich gestalten könnte. Auch die doppelten Datenfelder ans Seitenende zu verschieben und oben welche zu erstellen, die sich bedingt Daten holen, finde ich nicht optimal. Hier kann ich nicht mehr die Daten dort bearbeiten, wo ich sie mir ansehe.

In vielen Fällen funktionieren die genannten Lösungen auch nicht mehr. Sobald ich nicht mehr zwei gleiche Felder miteinander austauschen möchte: Das passiert mir immer wieder, wenn ich mit übernatürlichen Wesen arbeite. Je nach Art möchte ich unter „magisches“ andere Dinge eintragen. Bei Hexen gehe ich vielleicht auf ihren Zauberstab ein, bei Feen auf ihre Flügel, etc. Hier muss ich mich sogar zwischen mehreren Tabellen oder eben einem überfüllten Formular entscheiden.

Daher fände ich es sehr praktisch, wenn man im Formularmodus die Sichtbarkeit von Datenfeldern mithilfe einer Bedingung im Rechenfeld an den Inhalt von einem Feld knüpfen könnte oder eben Teile des Formulars ähnlich wie beim Kartenmodus mithilfe von Tabs austauschen könnte.

Nicht hauen, aber ich verstehe das Problem nicht. Du kannst doch ein Bild einfügen und darunter ein Popup-Menü, in dem zwischen weiblich und männlich umgeschaltet werden kann.

Das Beispiel mit den übernatürlichen Wesen und ihren magischen Fähigkeiten übersteigt meine Vorstellungskraft. Was spricht dagegen, alle magischen Dinge in ein einziges Textfeld einzutragen? Braucht man wirklich für jede Kleinigkeit ein eigenes, ggf. ausblendbares, Datenfeld?

Erstmal geht es im oberen Beispiel nicht nur um ein Bild, sondern ggf. um mehr Felder. Wie du das genau mit dem Popup-Menü meinst, verstehe ich allerdings nicht.
Also mein Ziel ist es, dass ich je nachdem, was ich im Popup-Menü ausgewählt habe, auch ein anderes Bild sehe. Das heißt, wenn ich „männlich“ auswähle, sehe ich das einer männlichen Amsel, bei „weiblich“ entsprechend das andere. Das heißt, das Feld soll sich eigentlich mehrere Datensätze merken, nicht nur einen, welche bedingt angezeigt werden.
Bisher habe ich es nicht geschafft, das Feld dazu zu bringen. Ich habe schon vorher im Forum gefragt, da sind wir aber auch nicht zu einer wirklichen Lösung gekommen.
Dort kam die Idee auf, in dem Beispiel mit drei Feldern zu arbeiten: „Bild“, „Bild-männlich“ und „Bild-weiblich“. Je nachdem, was ich im Popup-Menü ausgewählt habe, zeigt das Feld „Bild“ den Inhalt aus dem Feld „Bild-männlich“ oder „Bild-weiblich“. Das hat aber zur Folge, dass ich den Inhalt auch nur noch in „Bild-männlich“/„Bild-weiblich“ bearbeiten kann. Da ich diese Datensätze aber gerade nicht dort haben will, wo ich mir „Bild“ ansehe, müsste ich woanders hinspringen. Beispielsweise ans Ende meines Formulars oder in eine andere Tabelle. Egal, wohin, ich habe immer einen nervigen Zwischenschritt, um meine Datensätze zu verwalten.

Zu dem großen Textfeld: Ja, ich brauche vernünftig untergliederte Datenfelder. Große Datenfelder mit verschiedenen Informationen sind mir zu unübersichtlich.

Anbei ein Beispiel dazu.

Wenn man ganz viel trickst, dann geht das. Im Beispiel kann man im Popup-Menü unter dem Bild zwischen weiblich, männlich und divers auswählen und das Bild passt sich entsprechend an. Das ganze beruht darauf, dass „Bild“ ein Rechenfeld ist und seinen Dateinamen abhängig vom „Geschlecht“ anpasst.

DB-Formular-Bildwechsel.zip (6,5 KB)

2 „Gefällt mir“

Ich hatte mir eine eigene Figuren-DB aufgebaut. Die werde ich allerdings gegen die aktuelle Anzeige von Papyrus austauschen und nicht mehr fortführen.

Dort aber hatte ich bspw. neben der Figurentabelle auch eine Rassentabelle und eine Übersetzungstabelle. Und in meiner Figurentabelle wurden Daten aus der Rassentabelle eingefügt und außerdem die Übersetzung eines Namens mit Bedeutung ebenfalls verknüpft.

Dies könnte ein Weg sein, das unliebsame Eingabeformular aus der gewünschten Anzeige herauszuhalten.

Durch meine Rassentabelle hätte ich die Möglichkeit gehabt, beliebig viele Geschlechter anhand der Rasse meiner Figur zuzuordnen. Weiß nicht, ob das deutlich genug ist. Aber mit einer weiteren Tabelle zu experiementieren könnte hier zumindest einen kleinen Fortschritt bringen.

Deine „Lösung“ ist damit meiner sehr ähnlich, funktioniert aber leider überhaupt nicht. Du hast im Rechenfeld festgelegt, welche Daten in die Felder eingetragen werden sollen. Das hat zur Folge, dass jetzt bei jedem Datensatz der gleiche Inhalt eingetragen wird.
Selbstverständlich will ich die Datensätze noch bearbeiten können und vor allem unterschiedliche anlegen können.
Da ich momentan auch nicht das Gefühl habe, du verstehst meine Texte, hier mal die Lösung, die ich versucht habe, dir in meiner letzten Antwort zu beschreiben:
DB-Formular-Bildwechsel.zip (7,1 KB)

Wie schon in meiner ersten Antwort von diesem Vorschlag beschrieben: Die Datenfelder befinden sich beispielsweise am Ende des gleichen Formulars oder in einer anderen Tabelle. Also genau diese Idee hatte ich schon.

Oh, ich verstehe dich ganz genau. Du willst etwas, das nicht geht. Und damit es so funktioniert, wie du es dir vorstellst, bist du bereit, unbegrenzt Zeit zu investieren.

Wenn du also unbegrenzt Zeit investieren willst, hätte ich folgende Empfehlung:

Du verwendest mindestens zwei Tabellen. Eine für die Eingabe und eine für die Ausgabe.

In deiner Eingabetabelle hast du für deine Amsel zwei komplett eigene Stränge an Daten für die Mädels und die Jungs. Und wenn es diverse Vögel geben sollte, dann für die eben auch noch. Diese Daten stehen allerdings alle in EINEM Satz – also so, wie du es für die Ausgabe NICHT haben willst.

In deiner Ausgabetabelle verknpüfst du dann halt den Satz der Eingabetabelle. Und über die Formeln, die du ja in deinem Beispiel schon richtig verwendet hast, kannst du zwischen allen Amselgeschlechtern wechseln.

Der Aufwand zum Anlegen einer neuen Vogalart ist damit etwas größer. Und auch das Pflegen bedarf eines Schrittes mehr. Da ich sowas allerdings mit den Fantasyrassen hatte und dort immer mal eine neue anlegen oder ändern musste, ist das vertretbar.

Auf diese Weise sieht die Ausgabe genauso aus, wie du es haben willst. Außerdem sind die Sätze weiter pflegbar, aber die Eingabefelder nerven dich nicht irgendwo am Ende des Ausgabeformulars.

Erstmal, die zitierte Stelle ist aus meiner Antwort auf „glucoses Lösung“. Und bei der hatte ich nun einmal nicht das Gefühl, dass das Problem und die für mich nicht zufriedenstellenden Lösungsmethoden verstanden wurden.

Mittlerweile kann man den Satz aber auch gut auf dich beziehen: Ich weise dich gerade zum zweiten Mal daraufhin, dass ich die Lösung mit getrennten Tabellen für Eingabe/Ausgabe schon längst in Betracht gezogen habe, sie aber aufgrund des erhöhten Aufwands bei Erstellung und Verwaltung ebenfalls nicht zufriedenstellend finde.

Aufgrund meines Kritikpunktes kannst du dir vielleicht auch schon denken: Nein, ich bin eben nicht bereit, unendlich viel Zeit in eine Lösung zu investieren. Das ist der Grund, warum ich mich bei einem Update über eine neue Funktion freuen würde.
Deshalb schreibe ich ganz oben, dass ich es praktisch fände, wenn es möglich wäre.
Deshalb habe ich erst bei „Hilfe&Fragen“ gefragt, ob jemand vielleicht schon einen Weg gefunden hat, mein Problem zufriedenstellend zu lösen. Als ich gemerkt habe, das ist nicht der Fall, bin ich hierher zu „Vorschläge&Feedback“ gewechselt, damit es beim nächsten Update vielleicht eine Lösung gibt.

Du brauchst dich nicht angegriffen zu fühlen. Ich hab zig Stunden in meine Figuren-DB gesteckt. Wahrscheinlich über 100. War ja irgendwie auch Spaß und ich hab viel gelernt. Würde ich heute aber so nicht mehr machen.

Wenn ich deine Beiträge so lese, hab ich den Eindruck, dass du zwei Möglichkeiten hast: Entweder mit dem leben, was Papyrus bietet oder ein anderes Tool suchen, das sich besser zur Verwaltung deiner Eigenschaften eignet.

Ich weiß, dass Papyrus sich irgendwie so als die eierlegende Wollmilchsau sieht. Ich will damit aber einfach nur schreiben. Wenn es Funktionen gibt, die mich unterstützen, verwende ich die. Dazu gehört für mich jetzt auch mal die Figuren-DB. Programmteile, die mir nicht liegen, verwende ich einfach nicht oder setze stattdessen was anderes ein. Ich kenn das Gefühl auch, dass man sich über manche Dinge ärgert, weil man es unbedingt anders haben will.

Ich glaube schon, dass wir dich richtig verstanden haben. Die einzige Lösung, die mir einfällt, wäre eben diese Krücke.

Ich fühle mich von euch nicht angegriffen. Es geht mir nur auf die Nerven, dass eure Antworten den Eindruck erwecken, ihr würdet immer nur die Hälfte von dem lesen, was ich schreibe.

Einmal ganz deutlich: Ich erwarte von der Community keine Lösung, die mich zufriedenstellt. Wir befinden uns bei „Vorschläge&Feedback“. Ich finde die bisherigen Lösungsmöglichkeiten für die oben genannten Probleme nicht ausreichend, weil ich mich immer zwischen zwei Nachteilen entscheiden muss. Daher schlage ich hier vor, in einer neueren Papyrus-Version könnte man neue Funktionen einführen, die eben diese Problematik umgehen. Bisher bin ich davon ausgegangen, genau für solche Rückmeldungen gibt es diesen Bereich.
Mir ist bewusst, dass diese Funktion nicht unbedingt eingeführt wird und wenn, dann auch nicht heute. Es geht aber auch nicht um eine sofortige perfekte Lösung, sondern eben um Feedback an die Entwickler, damit sie die Möglichkeit haben, meine Kritikpunkte zu lösen.

Natürlich hätte ich mich auch gefreut, wenn jemand auf diesen Vorschlag aufmerksam geworden wäre, der mir erklärt hätte, es gibt dafür schon die perfekte Lösung. Ständig Lösungen zu wiederholen, die ich selbst erwähne, ergibt allerdings keinen Sinn. Auch dann nicht, wenn ich hier wirklich gerade nach einer besseren Lösung gesucht hätte.

Ich brauchte ein Testobjekt, um zu sehen, ob eine Rechenformel auch Bilder austauschen kann, was ja eine der Fragestellungen war. Als Lösung habe ich das nicht aufgefasst, eher als Spielwiese.

Das habe ich gemacht, weil es für den Test einfacher war. Um bei jedem Datensatz andere Bilder anzuzeigen, könnte man ein eigenes Datenfeld für den Namen der Bilddatei anlegen. Die Rechenformel würde diesen Namen dann z.B. um „-w.jpg“ oder „-m.jpg“ erweitern, um die weibliche und männliche Variante des Bildes anzuzeigen. Voraussetzung für das Funktionieren ist dann natürlich, dass sich im Bilder-Ordner Dateien mit passenden Namen befinden, die sich an diese Konvention der Namensgebung halten.

Also ich verstehe das Problem so, dass du Datensätze hast, die manchmal ein, zwei, oder mehr Bilder haben. Dafür legst du entsprechende Datenfelder an, die die Bilder aufnehmen können. Manch mal sind das zu viele und manchmal vielleicht zu wenige Datenfelder. Abhängig von einem anderen Datenfeld (z.B. Geschlecht), sollen außerdem bestimmte Bilder und Eigenschaften angezeigt und andere ausgeblendet werden.

Das mit dem Ein- und Ausblenden geht in Papyrus nicht, weil es keine eingebaute Programmiersprache hat, mit der man so etwas bewerkstelligen könnte.

Das Problem der variablen Anzahl von Bildern und Eigenschaften kann man wie in jeder anderen relationalen Datenbank durch 1:n- oder m:n-Relationen lösen.

Bilder und Eigenschaften müssten demnach in eigene Tabellen verlagert werden und würden per Relation auf einen Stammdatensatz verweisen. In Papyrus kann man solche Verweise per Rechtsklick auf den Stammdatensatz und Auswahl von «Zeige Relationen aus ‹Tabellenname›» aufrufen. Es zeigt sich dann die entsprechende Tabelle mit den Einträgen, die auf den Stammdatensatz verweisen.

Die Möglichkeit, solche Verweise direkt im Formular des Stammdatensatzes anzuzeigen, kennt Papyrus nicht.

Nein, ich habe nie danach gefragt, ob ein Austausch von Bildern funktioniert. Ich hatte mich am Anfang nur gewundert, was du als Lösung des Problems siehst. Damals bin ich noch davon ausgegangen, du würdest die Popup-Liste anders nutzen und deshalb meine Kritikpunkte zu meinen drei Lösungsmöglichkeiten - darunter die Lösung mit den Relationen - umgehen.
Ich habe diesen Beitrag auch nicht erstellt, um Hilfe von der Community zu kriegen. Ich hatte einen Tag vorher mal bei „Hilfe&Fragen“ nachgefragt, ob jemand eine bessere Lösung hat. Als sich dort gezeigt hat, dass es nicht der Fall ist, habe ich beschlossen, die Kategorie zu wechseln.
Wir befinden uns hier bei „Vorschläge&Feedback“. Ich habe festgestellt, dass mir eine Funktion fehlt und wollte den Entwicklern vorschlagen, bei einem Update diese einzuführen. Mehr nicht. Mir ist durchaus bewusst, dass es gute Gründe gibt, das nicht zu tun. Wenn ich aber nicht darum bitte, gibt es keine Chance für eine Umsetzung.
Wenn du dir meine Antworten ganz angesehen hättest, wäre dir auch aufgefallen, dass dein letzter Vorschlag von mir vorher mehrmals beschrieben wurde und in der hochgeladenen Datei umgesetzt ist. Zugegeben, dort war ich zu faul, das Ganze in mehrere Tabellen zu splitten, weshalb ich die Eingabefelder nur nach unten geschoben habe, mit der Anmerkung, man könnte auch eine extra Tabelle erstellen.
TomP hat deinen Lösungsweg hier übrigens auch schon zweimal beschrieben.